On Thu, 19 Jun 2003, David McKee wrote:
Folks, I've been using dillo for a number of months now, and it has become my first choice browser--I switch to mozilla or opera only when I have to java, javascript, http/1.1 authentication, ssl and the like.
That's the idea!
Of late dillo has started getting into a state where all progress stop in all open windows, and it sits on the CPU---keeping my load average at 1.0
Sometimes it recovers after a while, sometime I get fed up and close all windows at the WM manager level. Stopping all the active windows doesn't cure it, nor does closing them. I haven't tried using the `Exit Dillo' menu item, but I'll do so on the next occurrence.
Closing the Dillo instance "solves" it.
This has been with the CVS version(s) over the last few weeks. Two systems, one running redhat 6.2 (I know, I know...), the other Debian GNU/Linux 3.0r1.
So, two questions:
-- Has anyone else observed this behavior?
Yes, I've noticed, and have been on it a few times, but I still don't know how to reproduce it reliably (I haven't devoted much time to it though).
-- Can anyone suggest a good way to diagnose the problem so I can submit a decent bug report? As things stand my understanding is horribly vague.
Well I think it has to do with a socket connection in an "exceptional" state of some class (every image in a page, and the page itself, open socket connections). Attaching GDB to the hogging Dillo instance inmediatly stops the problem (and "cont" resumes :-), the interesting thing is that you can't break the code into a function inside Dillo. It seems to get trapped in a busy wait between GTK+ and the kernel signals. * Sometimes de-attaching GDB magically solves the problem. !?
N.B. I seems to happen most when I have opened several links in new windows in rapid succession.
Finding a reliable way to reproduce the problem is KEY to solving it. If you can do that it'd be of great help! I'd try to bring the socket connection into exceptional conditions, and refine from there to find the bug. For instance, what happens when the connection is aborted just before the remote server is contacted? Or maybe what if it is aborted after the remote server is contacted but before Dillo gets notified? It sounds more complex than it is. Just try to find a busy server and play hard on it! Start with the sites you were visiting. I'll check the code for exception handling. Any help is highly appreciated. Cheers Jorge.-