At 7/22/07 05:48 PM, Casualty wrote:
It's possible that time outs would be the cause of all this... I have no function implanted that detects them, and if you receive a blank or unrelated page (as trough a time out) PG just doesn't react anymore.
This also fits with the "press the button and it'll work again". PG is stuck, and when you order it to start all over by pressing the button, it just retrieves the page as usual, no problem.
I don't know if I could fix this, and I won't be trying for now. I'm really sorry, but it's late today and I feel like chillaxing on the BBS a bit. (Yes, this is an awesome word indeed). Monday, all my efforts will be put into NG Log, and I have no idea how long it might take to adjust it.
That's OK - take your time. :)
I can confirm that it's indeed DNS issues, BTW. I did a packet capture; the dump file is here, and it's quite telling. There's several working pulls, in intervals of about 15 to 17 seconds; the last one is at around 83 seconds into the capture. At ~99 seconds, PG attempts another pull, but the DNS requests receive no answer, and after 4 tries, around 107 seconds, it apparently gives up on the name resolution. I manually restart it at ~157 seconds, then, and it starts working again just fine.
Given all this, I would suggest
a) making sure that all possible errors are, indeed, handled gracefully;
b) doing a resolution of the NG hostname once, when the program is started, and using the obtained IP address from then on. (Also, if this initial resolution fails, fall back down to 38.119.130.61; chances are this will still be correct.)
b) is probably the more important one for getting this fixed, as well as the one that should be easier to implement, but a) should also be part of any kind of software development, so if you get around to it eventually, it's probably a good idea to make sure errors, exceptions etc. are handled properly, too. :)