You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "James Peach (JIRA)" <ji...@apache.org> on 2013/03/21 18:39:15 UTC

[jira] [Updated] (TS-1746) Crash report: UnixNetVConnection::reenable > ink_atomiclist_push > ink_atomic_cas

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

James Peach updated TS-1746:
----------------------------

    Fix Version/s: 3.3.2
    
> Crash report:  UnixNetVConnection::reenable > ink_atomiclist_push > ink_atomic_cas
> ----------------------------------------------------------------------------------
>
>                 Key: TS-1746
>                 URL: https://issues.apache.org/jira/browse/TS-1746
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core
>            Reporter: Zhao Yongming
>            Assignee: Brian Geffon
>             Fix For: 3.3.2
>
>
> I think the recent changes cause this crash, and here is the stack trace:
> {code}
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7ffff2492700 (LWP 23610)]
> 0x00007ffff7bb30a5 in ink_atomic_cas<__int128> (mem=0x7ffff3cae288, prev=0x00000000000000000000000000000001, next=0x000000000000000000007fffd4014501)
>     at ink_atomic.h:153
> 153       return __sync_bool_compare_and_swap(mem, prev, next);
> (gdb) bt
> #0  0x00007ffff7bb30a5 in ink_atomic_cas<__int128> (mem=0x7ffff3cae288, prev=0x00000000000000000000000000000001, next=0x000000000000000000007fffd4014501)
>     at ink_atomic.h:153
> #1  0x00007ffff7bb2e29 in ink_atomiclist_push (l=0x7ffff3cae288, item=0x7fffd4014500) at ink_queue.cc:481
> #2  0x00000000006d8961 in AtomicSLL<UnixNetVConnection, UnixNetVConnection::Link_read_enable_link>::push (this=0x7ffff3cae288, c=0x7fffd4014500)
>     at ../../lib/ts/List.h:477
> #3  0x00000000006d6767 in UnixNetVConnection::reenable (this=0x7fffd4014500, vio=0x7fffd4014610) at UnixNetVConnection.cc:721
> #4  0x00000000005195d5 in VIO::reenable (this=0x7fffd4014610) at ../iocore/eventsystem/P_VIO.h:124
> #5  0x00000000005c73b1 in HttpTunnel::consumer_handler (this=0x7fffdbefb888, event=101, c=0x7fffdbefb8c8) at HttpTunnel.cc:1237
> #6  0x00000000005c7c1f in HttpTunnel::main_handler (this=0x7fffdbefb888, event=101, data=0x7fffc4008870) at HttpTunnel.cc:1481
> #7  0x00000000004f8aa6 in Continuation::handleEvent (this=0x7fffdbefb888, event=101, data=0x7fffc4008870) at ../iocore/eventsystem/I_Continuation.h:146
> #8  0x000000000050a612 in TSContCall (contp=0x7fffdbefb888, event=TS_EVENT_VCONN_WRITE_READY, edata=0x7fffc4008870) at InkAPI.cc:4400
> #9  0x000000000055f302 in handle_transform (contp=0x7fffc40087c0) at InkAPITest.cc:6435
> #10 0x000000000055f4be in transformtest_transform (contp=0x7fffc40087c0, event=TS_EVENT_IMMEDIATE, edata=0x1166920) at InkAPITest.cc:6501
> #11 0x0000000000501922 in INKVConnInternal::handle_event (this=0x7fffc40087c0, event=1, edata=0x1166920) at InkAPI.cc:1045
> #12 0x00000000004f8aa6 in Continuation::handleEvent (this=0x7fffc40087c0, event=1, data=0x1166920) at ../iocore/eventsystem/I_Continuation.h:146
> #13 0x00000000006f823d in EThread::process_event (this=0x7ffff3aa9010, e=0x1166920, calling_code=1) at UnixEThread.cc:142
> #14 0x00000000006f8491 in EThread::execute (this=0x7ffff3aa9010) at UnixEThread.cc:193
> #15 0x00000000006f744c in spawn_thread_internal (a=0x1090810) at Thread.cc:88
> #16 0x00007ffff793dea7 in start_thread () from /lib64/libpthread.so.0
> #17 0x00007ffff51c114d in clone () from /lib64/libc.so.6
> (gdb) l
> 148     // ink_atomic_cas(mem, prev, next)
> 149     // Atomically store the value @next into the pointer @mem, but only if the current value at @mem is @prev.
> 150     // Returns true if @next was successfully stored.
> 151     template <typename T> static inline bool
> 152     ink_atomic_cas(volatile T * mem, T prev, T next) {
> 153       return __sync_bool_compare_and_swap(mem, prev, next);
> 154     }
> 155
> 156     // ink_atomic_increment(ptr, count)
> 157     // Increment @ptr by @count, returning the previous value.
> (gdb) f 1
> #1  0x00007ffff7bb2e29 in ink_atomiclist_push (l=0x7ffff3cae288, item=0x7fffd4014500) at ink_queue.cc:481
> 481            result = ink_atomic_cas((__int128_t*) & l->head, head.data, item_pair.data);
> (gdb) p head.data
> $1 = 0x00000000000000000000000000000001
> (gdb) p head
> $2 = {s = {pointer = 0x1, version = 0}, data = 0x00000000000000000000000000000001}
> (gdb) 
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira