Thread: [Noffle-devel] Re: [Noffle-users] how to make noffle NOT switch to offline mode
Brought to you by:
bears
From: Jim H. <jim...@ac...> - 2003-01-28 11:40:28
|
On 27-Jan-2003 Miernik wrote: > That is not the timeout of noffle, but a 10 second receive timeout at > the upstream server, which I can't change. Oh, I see. I misunderstood you. Sorry. >> You can't force it not to switch to offline mode. Noffle take the view that >> if the connection failed, something is pretty seriously wrong with your >> network connection or the server, and it should take action to ensure it >> doesn't keep pointlessly retrying. So it resets itself back to a mode >> where user action is required to initiate more network activity. > > But here the _only_ thing that was wrong, was that the upstream server > disconnected me because of it's 10 second receive timeout. There is > nothing more wrong. > > Retrying isn't pointless, because at the next, or second next try it > will manage to transmitt packets to the upstream server without a 10 > second gap. The timeout here happens only during the initial connection, > after that I can have gaps of more than 10 seconds without the upstream > server timeouting. That makes sense. I think what we need here is for Noffle to have a mechanism for automatically retrying operations that fail due to timeout or connection lost issues up to some configurable number of times before deciding to sound the alarms. I'll add to the TODO.... >> I'll put it on the TODO list, but it's not that easy to do given Noffle's >> present structure. *Cough* As Mirko noted, when I got to the TODO list, exactly that item was already there. I'm not going to start handing round TODO items to folk, but if anybody feels like having a crack at some of them, patches are always welcome. :-) A post stating intent to the noffle-devel list might be a good idea first, to prevent duplicated effort. I've got a small paper to write and a frame buffer driver to port to 2.5, so I'm going to be a bit busy on other matters for a while. -- Jim Hague - jim...@in... (Work), ji...@be... (Play) Never trust a computer you can't lift. |
From: Mirko L. <mir...@we...> - 2003-01-28 18:55:11
|
Jim Hague wrote: > On 27-Jan-2003 Miernik wrote: > > That is not the timeout of noffle, but a 10 second receive timeout at > > the upstream server, which I can't change. > That makes sense. I think what we need here is for Noffle to have a mechanism > for automatically retrying operations that fail due to timeout or connection > lost issues up to some configurable number of times before deciding to sound > the alarms. I'll add to the TODO.... The remote host returned the status 503, a general error that says nothing more than "Function not performed, closing connection". An INN with a corrupt database might return just the same status code when trying to fetch articles. AFAIK, there aren't any status codes notifying a timeout or just any kind of temporary error. I have no idea how to determine timeout or connection lost issues. regards, Mirko |
From: Jim H. <jim...@ac...> - 2003-01-28 23:11:03
|
On 28-Jan-2003 Mirko Liss wrote: > Jim Hague wrote: >> On 27-Jan-2003 Miernik wrote: >> > That is not the timeout of noffle, but a 10 second receive timeout at >> > the upstream server, which I can't change. > >> That makes sense. I think what we need here is for Noffle to have a >> mechanism >> for automatically retrying operations that fail due to timeout or connection >> lost issues up to some configurable number of times before deciding to sound >> the alarms. I'll add to the TODO.... > > The remote host returned the status 503, a general error that says > nothing more than "Function not performed, closing connection". > An INN with a corrupt database might return just the same status code > when trying to fetch articles. AFAIK, there aren't any status codes > notifying a timeout or just any kind of temporary error. I'm thinking keeping it purely within client.c. When reading a status currently in getStat(), we return a fake status if the connection is lost. What I'm proposing would be to cache sufficient info in the client module that we could re-connect and repeat the last transaction if we get a failure of either STAT_CONNECTION_LOST (Noffle special) or STAT_PROGRAM_FAULT (503). Yes, an upstream server might well return the latter for a genuine fault, like a corrupt database, but in that case there won't be any harm (other than a delay) in retrying, reconnecting if necessary. You count the number of retries and stop after a threshold. By default I suggest never retrying. It would be fiddly and rather tedious to actually do this, but I think possible. I am unlikely to volunteer in the near future. -- Jim Hague - jim...@in... (Work), ji...@be... (Play) Never trust a computer you can't lift or you don't control. |