[ 
https://issues.apache.org/jira/browse/TS-3950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14933697#comment-14933697
 ] 

Sudheer Vinukonda commented on TS-3950:
---------------------------------------

An example of an (timeout) event being delivered to a continuation that did not 
register for it.

{code}
(gdb) 
#0  0x00000038fb432625 in raise (sig=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00000038fb433e05 in abort () at abort.c:92
#2  0x00002ad27ce81018 in ink_die_die_die (retval=1) at ink_error.cc:43
#3  0x00002ad27ce810e5 in ink_fatal_va(int, const char *, typedef __va_list_tag 
__va_list_tag *) (return_code=1, message_format=0x2ad27ce8fd78 "%s:%d: failed 
assert `%s`", ap=0x2ad27f7159f0)
    at ink_error.cc:65
#4  0x00002ad27ce811ae in ink_fatal (return_code=1, 
message_format=0x2ad27ce8fd78 "%s:%d: failed assert `%s`") at ink_error.cc:73
#5  0x00002ad27ce7fd20 in _ink_assert (expression=0x770ba0 "!\"Plugin tries to 
use a continuation which is deleted\"", file=0x770b3d "InkAPI.cc", line=990) at 
ink_assert.cc:37
#6  0x000000000050d6bc in INKContInternal::handle_event (this=0x2ad37b27e500, 
event=106, edata=0x2ad3d0000ad0) at InkAPI.cc:990
#7  0x00000000004f8d4c in Continuation::handleEvent (this=0x2ad37b27e500, 
event=106, data=0x2ad3d0000ad0) at ../iocore/eventsystem/I_Continuation.h:146
#8  0x000000000053478b in PluginVC::process_timeout (this=0x2ad3d00009d0, 
e=0x2ad360081ef0, event_to_send=106, our_eptr=0x2ad3d0000b88) at PluginVC.cc:762
#9  0x00000000005327b1 in PluginVC::main_handler (this=0x2ad3d00009d0, event=2, 
data=0x2ad360081ef0) at PluginVC.cc:193
#10 0x00000000004f8d4c in Continuation::handleEvent (this=0x2ad3d00009d0, 
event=2, data=0x2ad360081ef0) at ../iocore/eventsystem/I_Continuation.h:146
#11 0x000000000076080a in EThread::process_event (this=0x2ad27eb0b010, 
e=0x2ad360081ef0, calling_code=2) at UnixEThread.cc:145
#12 0x0000000000760b25 in EThread::execute (this=0x2ad27eb0b010) at 
UnixEThread.cc:224
#13 0x000000000075fd7c in spawn_thread_internal (a=0x2fc9f80) at Thread.cc:88
#14 0x00002ad27d4009d1 in start_thread (arg=0x2ad27f716700) at 
pthread_create.c:301
#15 0x00000038fb4e88fd in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:115
{code}

The continuation that registered for timeout event is a different one that was 
destroyed already, and the timeout event (106) got delivered to a different 
continuation, likely coz, it was reassigned.

> PluginVC receives events after it's already closed.
> ---------------------------------------------------
>
>                 Key: TS-3950
>                 URL: https://issues.apache.org/jira/browse/TS-3950
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, Plugins
>            Reporter: Sudheer Vinukonda
>
> This is a follow up to TS-3949. It looks like PluginVC receives events (read, 
> write, timeout etc) even after it's already closed. It currently ignores 
> those events by checking the *closed* state. However, this looks to be 
> inherently incorrect, since, accessing the data inside an already closed 
> pluginVC is fraught with bugs (e.g. it could have been reallocated etc).
> Opening this jira to track the problem and see if it can be fixed better.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to