You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2011/04/21 02:38:06 UTC

[jira] [Assigned] (TS-739) Crash in ::write

     [ https://issues.apache.org/jira/browse/TS-739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leif Hedstrom reassigned TS-739:
--------------------------------

    Assignee: Leif Hedstrom

> Crash in ::write
> ----------------
>
>                 Key: TS-739
>                 URL: https://issues.apache.org/jira/browse/TS-739
>             Project: Traffic Server
>          Issue Type: Bug
>            Reporter: Leif Hedstrom
>            Assignee: Leif Hedstrom
>            Priority: Critical
>             Fix For: 2.1.8
>
>
> Opening another bug for this, it can still happen regardless of ccache on or off.
> My setup is fairly simple, mostly standard configs, but setup as a forward proxy. When pointing my browser to use ATS as the proxy, and I go to search.google.com and start typing in the search box, we sometimes segfault.
> {code}
> (gdb) bt
> #0  0x0000003f2e60e1fd in write () from /lib64/libpthread.so.0
> #1  0x00000000006102d8 in write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, total_wrote=@0x7ffff6c11c80, 
>     buf=<value optimized out>) at ../../iocore/eventsystem/P_UnixSocketManager.h:207
> #2  UnixNetVConnection::load_buffer_and_write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, 
>     total_wrote=@0x7ffff6c11c80, buf=<value optimized out>) at UnixNetVConnection.cc:833
> #3  0x000000000061443b in write_to_net_io (nh=0x7ffff6d15628, vc=0x7fffe000bd70, thread=0x7ffff6d14010)
>     at UnixNetVConnection.cc:439
> #4  0x000000000060c42a in NetHandler::mainNetEvent (this=0x7ffff6d15628, event=<value optimized out>, e=<value optimized out>)
>     at UnixNet.cc:419
> #5  0x00000000006325e4 in handleEvent (this=0x7ffff6d14010, e=0xe846a0, calling_code=5) at I_Continuation.h:146
> #6  EThread::process_event (this=0x7ffff6d14010, e=0xe846a0, calling_code=5) at UnixEThread.cc:140
> #7  0x0000000000632f73 in EThread::execute (this=0x7ffff6d14010) at UnixEThread.cc:262
> #8  0x000000000063142a in spawn_thread_internal (a=0xe770f0) at Thread.cc:85
> #9  0x0000003f2e6068e0 in start_thread () from /lib64/libpthread.so.0
> #10 0x0000003f2dee0c9d in clone () from /lib64/libc.so.6
> #11 0x0000000000000000 in ?? ()
> (gdb) frame 1
> #1  0x00000000006102d8 in write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, total_wrote=@0x7ffff6c11c80, 
>     buf=<value optimized out>) at ../../iocore/eventsystem/P_UnixSocketManager.h:207
> 207	    if (likely((r =::write(fd, buf, size)) >= 0))
> (gdb) print fd
> $3 = 45
> (gdb) print buf
> $4 = (void *) 0x7fffc9860b14
> (gdb) print size
> $5 = <value optimized out>
> (gdb) frame 2
> #2  UnixNetVConnection::load_buffer_and_write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, 
>     total_wrote=@0x7ffff6c11c80, buf=<value optimized out>) at UnixNetVConnection.cc:833
> 833	      r = socketManager.write(con.fd, tiovec[0].iov_base, tiovec[0].iov_len);
> (gdb) print con.fd
> $6 = 45
> (gdb) print tiovec[0].iov_base
> $7 = (void *) 0x7fffc9860b14
> (gdb) print tiovec[0].iov_len
> $8 = 1260
> (gdb) frame 1
> #1  0x00000000006102d8 in write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, total_wrote=@0x7ffff6c11c80, 
>     buf=<value optimized out>) at ../../iocore/eventsystem/P_UnixSocketManager.h:207
> 207	    if (likely((r =::write(fd, buf, size)) >= 0))
> (gdb) print buf
> $9 = (void *) 0x7fffc9860b14
> (gdb) print *buf
> Attempt to dereference a generic pointer.
> (gdb) frame 2
> #2  UnixNetVConnection::load_buffer_and_write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, 
>     total_wrote=@0x7ffff6c11c80, buf=<value optimized out>) at UnixNetVConnection.cc:833
> 833	      r = socketManager.write(con.fd, tiovec[0].iov_base, tiovec[0].iov_len);
> (gdb) print tiovec[0].iov_base
> $10 = (void *) 0x7fffc9860b14
> (gdb) print *((char*)tiovec[0].iov_base)
> $11 = 120 'x'
> (gdb) frame 1
> #1  0x00000000006102d8 in write (this=0x7fffe000bd70, towrite=1260, wattempted=@0x7ffff6c11c78, total_wrote=@0x7ffff6c11c80, 
>     buf=<value optimized out>) at ../../iocore/eventsystem/P_UnixSocketManager.h:207
> 207	    if (likely((r =::write(fd, buf, size)) >= 0))
> (gdb) print *((char*)buf)
> $12 = 120 'x'
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira