You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "hahayaoniming (JIRA)" <ji...@apache.org> on 2016/11/28 08:51:58 UTC

[jira] [Commented] (TS-3950) PluginVC receives events after it's already closed.

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

hahayaoniming commented on TS-3950:
-----------------------------------

As [Sudheer Vinukonda|https://issues.apache.org/jira/secure/ViewProfile.jspa?name=sudheerv] said, I reproduce the same problem on a read/write:
{noformat}
FATAL: InkAPI.cc:993: failed assert `!"Plugin tries to use a continuation which is deleted"`
/usr/bin/traffic_server - STACK TRACE: 
/usr/lib64/trafficserver/libtsutil.so.3(ink_fatal+0x88)[0x2b6de25b72d8]
/usr/lib64/trafficserver/libtsutil.so.3(_ink_assert+0x1f)[0x2b6de25b594f]
/usr/bin/traffic_server(INKContInternal::handle_event(int, void*)+0xf4)[0x4cdcc4]
/usr/bin/traffic_server(PluginVC::process_read_side(bool)+0x392)[0x4f5122]
/usr/bin/traffic_server(PluginVC::process_write_side(bool)+0x56a)[0x4f4baa]
/usr/bin/traffic_server(PluginVC::main_handler(int, void*)+0x2fe)[0x4f5f3e]
/usr/bin/traffic_server(EThread::process_event(Event*, int)+0xb4)[0x71c3e4]
/usr/bin/traffic_server(EThread::execute()+0x713)[0x71cfc3]
/usr/bin/traffic_server[0x71b312]
/lib64/libpthread.so.0(+0x7aa1)[0x2b6de27f0aa1]
/lib64/libc.so.6(clone+0x6d)[0x2b6de50eeaad]
{noformat}
In version 6.2.0 only the timeout event was patched. On a read/write, should I make a patch as process_timeout()?
{noformat}
if (closed) {
    // already closed, ignore the timeout event
    // to avoid handle_event asserting use-after-free
    return;
}
{noformat}
This bug is because ATS itself or plugin?

> 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
>            Assignee: Sudheer Vinukonda
>             Fix For: sometime
>
>
> 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)