lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (PATCH) strange HTTP/HTCheckForInterrupt() bug lynx-dev


From: Leonid Pauzner
Subject: Re: (PATCH) strange HTTP/HTCheckForInterrupt() bug lynx-dev
Date: Mon, 19 Apr 1999 12:38:48 +0400 (MSD)

18-Apr-99 01:24 Leonid Pauzner wrote:
> 29-Mar-99 16:50 Bela Lubkin wrote:
>> This fixes one of the reported problems (characters other than INTERRUPT
>> causing the DNS lookup delay to be shortened).  It also fixes a serious
>> problem that I noticed while looking into the other reports: if fork()
>> failed, we were blindly going ahead and doing who knows what, including
>> kill(-1, SIGTERM)!  On my system, that means "send SIGTERM to every
>> process with my UID" -- bad news indeed.

>> But I don't think that's what Leonid was running into.  That's something
>> else, possibly the need to signal((various signals), quench) *before*
>> fork().

>> CHANGES:

>>   * Behave sanely if NSL_FORK fork() fails. -BL
>>   * NSL_FORK try for dns_patience *seconds*, not dns_patience select()
>>     calls, which might have been shortened by keyboard input. -BL
>>   * Fix some screwy comment indentation.

>> uuencoded (and gzip'd) to try to preserve spaces/tabs.

>>>Bela<

> Today I got the same strange buged behaviour, now with dev22.
> Perhaps I press "z" in a "bad" moment (during DNS search or a little later).
> ^Z spawn me to a shell and "fg" return me back without visible problems.


Looking into trace log more carefully I found out that we use two DNS calls:
first to resolve anchor and the second for making TCP connection.
In case of local proxy we have the second DNS call for proxy address.
Probably, interrupting the first call we crash the second by some means?


                Lynx Trace Log (2.8.2dev.22)

User message: Trace ON!
 'lynx.browser.org' is not a URL
Converted 'lynx.browser.org' to '/home/pauzner/lynx.browser.org'
Can't stat() or fopen() '/home/pauzner/lynx.browser.org'
Looking up lynx.browser.org first.
LYGetHostByName: parsing `lynx.browser.org'.
CHILD gethostbyname: 0x400e6ef4 { h_name = 0x400e6fa5 "lynx.browser.org",
         h_aliases = 0x400e6f08 { 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x400e6e64 { 0x400e6fb8 "195.40.122.44", 0x0 } }
CHILD fill_rehostent: 0x811c360 { h_name = 0x811c384 "lynx.browser.org",
         h_aliases = 0x811c37c { 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c380 "195.40.122.44", 0x0 } }
 'lynx.browser.org' is not a URL
Converted 'lynx.browser.org' to '/home/pauzner/lynx.browser.org'
Can't stat() or fopen() '/home/pauzner/lynx.browser.org'
Looking up lynx.browser.org first.
LYGetHostByName: parsing `lynx.browser.org'.
Read from pipe: 0x811c360 { h_name = 0x811c384 "lynx.browser.org",
         h_aliases = 0x811c37c { 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c380 "195.40.122.44", 0x0 } }
LYGetHostByName: NSL_FORK child 2379 exited, status 0x0.
End of LYGetHostByName: 0x811c360 { h_name = 0x811c384 "lynx.browser.org",
         h_aliases = 0x811c37c { 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c380 "195.40.122.44", 0x0 } }
LYGetHostByName: Resolved name to a hostent.
Trying: 'http://lynx.browser.org'
HTParse: aName:http://lynx.browser.org   relatedName:
1
HTParse: result:http://lynx.browser.org/

LYpush[0]: address:http://www.mccme.ru/home.html
        title:MCCME: Bookmarks
getfile: getting http://lynx.browser.org/

HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:lynx.browser.org

HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:
Entered HTAnchor_findAddress
New anchor 0x8154b40 has hash 57 and address `http://lynx.browser.org/'
HTAccess: loading document http://lynx.browser.org/
HTParse: aName:http://lynx.browser.org/   relatedName:file:
HTParse: result:http
HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:lynx.browser.org
HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:http
proxy server found: http://proxy.mccme.ru:3128/
HTParse: aName:http://proxy.mccme.ru:3128/http://lynx.browser.org/   relatedNam
e:http:
HTParse: result:http
HTParse: aName:http://proxy.mccme.ru:3128/http://lynx.browser.org/   relatedNam
e:
HTParse: result:proxy.mccme.ru:3128
Looking up proxy.mccme.ru:3128.
HTParseInet: parsing `proxy.mccme.ru:3128'.
LYGetHostByName: parsing `proxy.mccme.ru'.
CHILD gethostbyname: 0x400e6ef4 { h_name = 0x400e6fc1 "bsd18.mccme.ru",
         h_aliases = 0x400e6f08 {  0x400e6fa3 "proxy.mccme.ru", 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x400e6e64 { 0x400e6fd4 "195.133.68.18", 0x0 } }
CHILD fill_rehostent: 0x811c360 { h_name = 0x811c388 "bsd18.mccme.ru",
         h_aliases = 0x811c37c {  0x811c397 "proxy.mccme.ru", 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c384 "195.133.68.18", 0x0 } }
LYGetHostByName: Resolved name to a hostent.
Trying: 'http://lynx.browser.org'
HTParse: aName:http://lynx.browser.org   relatedName:
1
HTParse: result:http://lynx.browser.org/

LYpush[0]: address:http://www.mccme.ru/home.html
        title:MCCME: Bookmarks
getfile: getting http://lynx.browser.org/

HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:lynx.browser.org

HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:
Entered HTAnchor_findAddress
New anchor 0x8154b40 has hash 57 and address `http://lynx.browser.org/'
HTAccess: loading document http://lynx.browser.org/
HTParse: aName:http://lynx.browser.org/   relatedName:file:
HTParse: result:http
HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:lynx.browser.org
HTParse: aName:http://lynx.browser.org/   relatedName:
HTParse: result:http
proxy server found: http://proxy.mccme.ru:3128/
HTParse: aName:http://proxy.mccme.ru:3128/http://lynx.browser.org/   relatedNam
e:http:
HTParse: result:http
HTParse: aName:http://proxy.mccme.ru:3128/http://lynx.browser.org/   relatedNam
e:
HTParse: result:proxy.mccme.ru:3128
Looking up proxy.mccme.ru:3128.
HTParseInet: parsing `proxy.mccme.ru:3128'.
LYGetHostByName: parsing `proxy.mccme.ru'.
Read from pipe: 0x811c360 { h_name = 0x811c388 "bsd18.mccme.ru",
         h_aliases = 0x811c37c {  0x811c397 "proxy.mccme.ru", 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c384 "195.133.68.18", 0x0 } }
LYGetHostByName: NSL_FORK child 2380 exited, status 0x0.
End of LYGetHostByName: 0x811c360 { h_name = 0x811c388 "bsd18.mccme.ru",
         h_aliases = 0x811c37c {  0x811c397 "proxy.mccme.ru", 0x0 },
         h_addrtype = 2, h_length = 4,
         h_addr_list = 0x811c374 { 0x811c384 "195.133.68.18", 0x0 } }
LYGetHostByName: Resolved name to a hostent.
HTParseInet: Parsed address as port 3128, IP address 195.133.68.18
Making HTTP connection to proxy.mccme.ru:3128.

...
Composing Proxy Authorization for proxy.mccme.ru:3128/http://lynx.browser.org/
HTAASetup_lookup: No template matched `http://lynx.browser.org/' (so probably n
ot protected)
HTTP: Not sending proxy authorization (yet).
Writing:
GET http://lynx.browser.org/ HTTP/1.0
Host: lynx.browser.org



> Exiting via interrupt: 15


> [1]+  Stopped                 lynx
> address@hidden pauzner]$ ps -a
>   PID TTY STAT  TIME COMMAND
>    94   2 S    0:00 /sbin/mingetty tty2
>   230   5 S    0:00 /sbin/mingetty tty5
>   231   6 S    0:00 /sbin/mingetty tty6
> 19434   3 S    0:00 /sbin/mingetty tty3
> 28384   1 S    0:00 /sbin/mingetty tty1
> 32691   4 S    0:00 /sbin/mingetty tty4
> 22774  a0 S    0:00 /bin/bash
> 22776  a0 S    0:00 lynx
> 28310  q0 S    0:00 bash
>  2995  p1 S    0:00 -bash
> 16098  p9 S    0:00 bash
>  3203  p0 S    0:00 -bash
>  3215  p0 T    0:03 lynx
>  7156  p0 Z    0:00 (lynx <zombie>)
>  7261  p0 R    0:00 ps -a
> address@hidden pauzner]$


>> --ATTACHMENT-- Binary file <patch.gz>







reply via email to

[Prev in Thread] Current Thread [Next in Thread]