GNOME Bugzilla – Bug 110790
socket error messages from idle disconnected sockets
Last modified: 2009-08-15 18:40:50 UTC
I've simply upgraded to 0.13.94 from 0.13.93. If I retrieve new articles and then start Pan, I see no new articles in any subscribed group. Selecting retrieve new articles does nothing apparent. Selecting the groups then causes the total count to increase, but unread remains at zero for each group. Turning off the read article filter shows the new articles are present but marked read. The server article numbering is unchanged so I don't know what is happening exactly, please ask for a run log if required.
Right, here is an excerpt of a run log of what Pan is doing when I try to retrieve new articles. I've found that going back to 0.13.93 does not help either, it used to work! Mon, 14 Apr 2003 22:49:45 - MODE READER check failed: 503 Timeout after 10 seconds, closing connection. Mon, 14 Apr 2003 22:49:45 - Disconnecting one connection from `Ickx' after 60 seconds idle Mon, 14 Apr 2003 22:49:45 - GLib - giounix.c:395:g_io_unix_get_flags()Error while getting flags for FD: Bad file descriptor (9) Mon, 14 Apr 2003 22:49:45 - GLib - Invalid file descriptor. Mon, 14 Apr 2003 22:49:45 - GLib - Invalid file descriptor. Mon, 14 Apr 2003 22:49:45 - GLib - Error flushing string: Bad file descriptor Mon, 14 Apr 2003 22:49:45 - News server connection count: 3 Looks like something fails in the mode reader command attempt and then that socket is gone. Every time I try to get new articles the error symbol appears at bottom right.
Looks like your newsserver isn't responsing to the MODE READER command. Could you attach the output of the following trace: pan --debug-sockets > logfile Attach it to this bugreport: http://bugzilla.gnome.org/createattachment.cgi?id=110790 A simple test of your newsserver may also shed some light: $ telnet localhost nntp MODE READER ^D
> Mon, 14 Apr 2003 22:49:45 - MODE READER check failed: > 503 Timeout after 10 seconds, closing connection. You've got your INN server set to timeout after just 10 seconds! Pan only sends keepalive messages to idle connections every 60 seconds. Since the keepalive message is, in fact, "mode reader" (because it only has a one-line transmit and a one-line reply, it's a good low-bandwidth keepalive) probably what's happened here is that your INN server has hung up on you, and then Pan came along and tried to send a keepalive and read the 503 message. > Mon, 14 Apr 2003 22:49:45 - Disconnecting one connection from > `Ickx' after 60 seconds idle > Mon, 14 Apr 2003 22:49:45 - GLib giounix.c:395:g_io_unix_get_flags() > Error while getting flags for FD: Bad file descriptor (9) > Mon, 14 Apr 2003 22:49:45 - GLib - Invalid file descriptor. > Mon, 14 Apr 2003 22:49:45 - GLib - Invalid file descriptor. > Mon, 14 Apr 2003 22:49:45 - GLib - Error flushing string: Bad file descriptor I haven't checked the gio code for this, but I suspect it's that Pan is trying to write to a closed socket because the news server has hung up on us. Brian, could you open up your INN server for awhile so that Chris and I can connect to it and test Pan on it a bit?
*** Bug 109359 has been marked as a duplicate of this bug. ***
*** Bug 110672 has been marked as a duplicate of this bug. ***
--- shadow/110790 Mon Apr 14 18:46:24 2003 +++ shadow/110790.tmp.16839 Mon Apr 14 18:48:03 2003 @@ -96,6 +96,9 @@ the news server has hung up on us. Brian, could you open up your INN server for awhile so that Chris and I can connect to it and test Pan on it a bit? This is going to be tricky, my server is playing up on me this evening too, I've had to rebuild some of my hardware today because of an overheating processor. At present I can't get new articles into the database, might be cos the filesystem got a bit upset this morning. No time to fix it now. The server is an out of the box INN 2.3.2 as comes with RedHat 7.3, and I am online very little so it will be nearly impossible to sort out connections for you. Sorry and all that! I might be able to lengthen the timeout though, not sure where to do that but inn.conf would be a likely spot. Hmm, can't see anything obvious there...... -- Brian Morrison bdm at fenrir dot org dot uk
OK gents, I have now sorted this one out, it turned out to be that INN was refusing new artciles because my machine upset (write 100 lines of "I must not allow my processor heatsink to be clogged with dust") had corrupted the newsbase. This is now fixed and Pan can see new articles again. Sorry for the bum steer.....
From Brian in mail: Just to add to this for your information and assistance. INN has a client timeout of 1800 seconds in my case, however this is only true once a further command has been sent after the mode reader command. In that intervening period their is a 10 second timeout that appears to be hard coded, or at least difficult to change. I've checked and once the group command has been sent I can leave a telnet session sitting for ages without being timed out. You have to be quick with the typing though. When I see Pan fall over it appears to be because the group command is sent too long after the mode reader command and hence Pan sees a 503 timeout error. It then appears to recover and do the right thing in most cases. What I can't work out is why this happens, I wonder if somehow things get mixed up between the different connections, or is this a feature of gnet? Hope this comment is of use....
Brian's comments made me realize what was going on, the gio error messages are because Pan is making extra unnecessary connections -- like when you start up Pan and read a single article, and see that you have two connections. The second connection never does anything except log in, so if it doesn't get used in 10 seconds then it will get the kinds of errors that Brian described. I've checked in code to limit the number of pending connections per server to one -- after the connection is made, a task can request a new connection, so startup for the first four-connection task may take a few beats longer, but it should keep down unwanted extra connections. http://cvs.gnome.org/bonsai/cvsview2.cgi?root=/cvs/gnome&subdir=pan/pan&files=queue.c&command=DIRECTORY http://cvs.gnome.org/bonsai/cvsview2.cgi?root=/cvs/gnome&subdir=pan/pan&files=socket-pool.c&command=DIRECTORY http://cvs.gnome.org/bonsai/cvsview2.cgi?root=/cvs/gnome&subdir=pan/pan&files=socket-pool.h&command=DIRECTORY http://cvs.gnome.org/bonsai/cvsview2.cgi?root=/cvs/gnome&subdir=pan&files=ANNOUNCE.html&command=DIRECTORY
I've been trying out 0.13.95 Charles, I am still seeing errors appearing of the same type, usually when selecting an article in a new group. Errors look like this: Tue, 22 Apr 2003 20:09:29 - Saved 1454 articles in "uk.radio.amateur" in 0.2 seconds (9058 art/sec) Tue, 22 Apr 2003 20:09:29 - Scored 93 entries in 0.0 seconds (93000 articles/sec) Tue, 22 Apr 2003 20:09:32 - Loaded 604 articles for group "alt.satellite.gps" in 0.0 seconds (49794 art/sec) Tue, 22 Apr 2003 20:09:32 - Scored 604 entries in 0.0 seconds (604000 articles/sec) Tue, 22 Apr 2003 20:10:12 - Unable to set group "alt.satellite.gps": 503 Timeout after 10 seconds, closing connection. Tue, 22 Apr 2003 20:11:41 - MODE READER check failed: Error reading from socket. Tue, 22 Apr 2003 20:11:41 - Disconnecting one connection from `Ickx' after 89 seconds idle Tue, 22 Apr 2003 20:11:41 - pan - file sockets.c: line 263 (pan_socket_putline): assertion `!sock->error' failed Tue, 22 Apr 2003 20:11:41 - GLib - giounix.c:395:g_io_unix_get_flags()Error while getting flags for FD: Bad file descriptor (9) Tue, 22 Apr 2003 20:11:41 - GLib - Invalid file descriptor. Tue, 22 Apr 2003 20:11:41 - GLib - Invalid file descriptor. Tue, 22 Apr 2003 20:11:41 - GLib - Error flushing string: Bad file descriptor Tue, 22 Apr 2003 20:11:41 - News server connection count: 3
STAY DEAD YOU 0.14.0 BUGS!!!!1!
please attach the germane section of a similar Pan session started with --debug.
Log files sent by email to you Charles, sorry they are quite large and rather undecipherable to mere mortals.
Moving stale `needinfo' bugs from 0.14.0 milestone to `closed'.
hm, looks like there's no `closed' in this new version of bugzilla?