[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gnus stuck in select/gettimeofday loop
From: |
Kim F. Storm |
Subject: |
Re: Gnus stuck in select/gettimeofday loop |
Date: |
Mon, 13 Mar 2006 10:52:14 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Romain Francoise <romain@orebokech.com> writes:
>> Actually, I have seen this too occasionally with CVS Emacs.
>
> Do you use article prefetching?[1]
No.
> I had never managed to reproduce this bug after seeing it reported a few
> times, and after enabling prefetching a few days ago suddenly I keep
> running into it... And I can confirm that C-g has absolutely no effect
> when it happens.
>
> The backtrace looks like the following:
>
> #0 0xffffe410 in __kernel_vsyscall ()
> #1 0xa7756d6d in select () from /lib/tls/i686/cmov/libc.so.6
> #2 0x081ee002 in wait_reading_process_output (time_limit=0, microsecs=100,
> read_kbd=0, do_display=0, wait_for_cell=137976009, wait_proc=0x92b2190,
> just_wait_proc=0) at process.c:4496
> #3 0x081eceef in Faccept_process_output (process=153821588, timeout=0,
> timeout_msecs=800, just_this_one=137976009) at process.c:3895
> #4 0x081ac24c in Ffuncall (nargs=4, args=0xafa6f860) at eval.c:2889
> #5 0x081e4608 in Fbyte_code (bytestr=151252459, vector=151256380,
> maxdepth=56)
> at bytecode.c:694
> [...]
>
> (I'm not sure if there is really a bug, or if it's just a manifestation
> of the flakiness of my nntp server.)
>
>> In all cases it seems like it is stuck (or just dead slow) reading the
>> active file from the news server.
>
> Do you think it could be related to adaptive read buffering?
I don't know...
In the original report, select is called with a timeout value of 30
and 31 usecs, which is quite odd.
select(8, [3 5 6 7], NULL, NULL, {0, 30}) = 0 (Timeout) <0.000640>
select(8, [3 5 6 7], NULL, NULL, {0, 31}) = 0 (Timeout) <0.000641>
Adaptive read buffering uses usec values of 10000 - 70000 and the call
to accept-process-output in nnheader-accept-process-output has a timeout
of 100 msec corresponding to 100000 usecs.
So why is select called with such short timeout values?
I don't have time right now to look into this, so if someone else
would take a look, I would appreciate it.
Anyone want analyze this further?
--
Kim F. Storm http://www.cua.dk