On Tue, 2008-12-23 at 02:44 +0100, Teresa wrote:> Adam Tauno Williams wrote:> >> Does "dmesg" show anything odd?> Another thing i get sometimes connecting hanging cyrus process with > strace is a lot of :> select(0, NULL, NULL, NULL, {0, 25000}) = 0 (Timeout)> few per second, and it never ends... This above should be pretty normal. Select polls for any I/O, times out(because there is nothing to do), and then the process re-issues theselect. Many services/servers use such a method to handle async I/O. I'd guess the above is a call to: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); - so the last value, the {0, 25000} is the timeout timeval struct - struct timeval { __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec; /* Microseconds. */ }; - so you get one of the select(...) calls roughly every 25,000microseconds since. ----Cyrus Home Page: http://cyrusimap.web.cmu.edu/Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twikiList Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html