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)