Re: another crash

From: Adrian Chadd <adrian@dont-contact.us>
Date: Mon, 16 Feb 2004 01:32:52 -0700

On Mon, Feb 16, 2004, Adrian Chadd wrote:
>
> Another crash, this time, reproducable:
>
> 2004/02/16 16:27:31| assertion failed: comm.cc:2558: "fdc_table[fd].active && !fdc_table[fd].half_closed"
>
> Program received signal SIGABRT, Aborted.
> 0x40186da9 in raise () from /lib/tls/libc.so.6
> (gdb)
> (gdb) bt
> #0 0x40186da9 in raise () from /lib/tls/libc.so.6
> #1 0x40293110 in ?? () from /lib/tls/libc.so.6
> #2 0xbfffd5c0 in ?? ()
> #3 0x40188601 in abort () from /lib/tls/libc.so.6
> (gdb)

.. by replacing the assert with an if and fatal and then breaking
on the fatal in gdb, I have:

Breakpoint 1, commMarkHalfClosed(int) (fd=14) at comm.cc:2559
2559 fatal("badness");
(gdb) bt
#0 commMarkHalfClosed(int) (fd=14) at comm.cc:2559
#1 0x08076244 in clientReadRequest (fd=14, buf=0x405d00aa "HEAD ftp://ftp.uwa.edu.au/%2Fmirrors/linux/fedora/severn-i386-disc3.iso;type=i HTTP/1.1\r\nHost: ftp.uwa.edu.au\r\nUser-Agent: lftp/2.6.11\r\nConnection: keep-alive\r\n\r\n", size=0, flag=COMM_OK, xerrno=0, data=0x84c3268) at client_side.cc:2325
#2 0x08081c9b in CommReadCallbackData::callCallback() (this=0x84cf160) at comm.cc:491
#3 0x08081dfc in CommCallbackData::callACallback() (this=0x84cf160) at comm.cc:530
#4 0x08081e70 in comm_calliocallback() () at comm.cc:565
#5 0x080b9ec2 in main (argc=2, argv=0xbfffee34) at main.cc:1140
(gdb)

(gdb) print fdc_table[fd]
$1 = {active = 1, fd = 14, CommCallbackList = {head = 0x0, tail = 0x0}, read = {fd = 14, buf = 0x405d00aa "HEAD ftp://ftp.uwa.edu.au/%2Fmirrors/linux/fedora/severn-i386-disc3.iso;type=i HTTP/1.1\r\nHost: ftp.uwa.edu.au\r\nUser-Agent: lftp/2.6.11\r\nConnection: keep-alive\r\n\r\n", len = 3933, callback = {handler = 0, data = 0x0}}, write = {buf = 0x0, size = 0, curofs = 0, handler = 0, handler_data = 0x0}, accept = {accept = {check_delay = 0, callback = {handler = 0, data = 0x0}, static MAX_ACCEPT_PER_LOOP = 10, count = 0, finished_ = false}, connDetails = {me = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0}, sin_zero = "\000\000\000\000\000\000\000"}, peer = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0}, sin_zero = "\000\000\000\000\000\000\000"}}}, fill = {requestedData = {flags = {error = 0}, length = 0, offset = 0, data = 0x0}, amountDone = 0, handler = 0, handler_data = 0x0}, half_closed = true}

...

Adrian
Received on Mon Feb 16 2004 - 01:32:53 MST

This archive was generated by hypermail pre-2.1.9 : Mon Mar 01 2004 - 12:00:04 MST