You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Jeff Elsloo (JIRA)" <ji...@apache.org> on 2013/08/22 17:39:54 UTC

[jira] [Updated] (TS-2147) rfc5861 plugin causes a segfault

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

Jeff Elsloo updated TS-2147:
----------------------------

    Attachment: rfc5861_shared_session.patch
    
> rfc5861 plugin causes a segfault
> --------------------------------
>
>                 Key: TS-2147
>                 URL: https://issues.apache.org/jira/browse/TS-2147
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Plugins
>            Reporter: Corey Cossentino
>         Attachments: rfc5861_shared_session.patch
>
>
> When using the rfc5861 plugin, the server will segfault when a cache lookup is stale.
> To reproduce: using the Node.js test server provided with the plugin, make a request, then make a second request for the same URL after at least five seconds.
> [TrafficServer] using root directory '/usr/local'
> [Aug 22 17:04:55.334] Server {0x7f01dfe617e0} DIAG: (rfc5861) Plugin registration succeeded.
> [Aug 22 17:04:55.334] Server {0x7f01dfe617e0} DIAG: (rfc5861) Plugin Init Complete.
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Event: TS_EVENT_HTTP_READ_REQUEST_HDR
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) External Request
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering create_request_info
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving create_request_info
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) state after TSmalloc: 0x2ab4ae0
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) before TSHttpTxnReenable
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Event: TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) state after arg get: 0x2ab4ae0
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Not Stale!
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering free_request_info
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Free effective URL
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Release Http Header
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Destroy Buffer
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Free Client Addr
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Free Request Info
> [Aug 22 17:04:57.443] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving free_request_info
> [Aug 22 17:04:57.444] Server {0x7f01dfe617e0} DIAG: (rfc5861) TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE Event Handler End
> [Aug 22 17:04:57.444] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving rfc5861_plugin
> [Aug 22 17:04:57.444] Server {0x7f01dfe617e0} DIAG: (rfc5861) after TSHttpTxnReenable
> [Aug 22 17:04:57.444] Server {0x7f01dfe617e0} DIAG: (rfc5861) TS_EVENT_HTTP_READ_REQUEST_HDR Event Handler End
> [Aug 22 17:04:57.444] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Event: TS_EVENT_HTTP_READ_REQUEST_HDR
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) External Request
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering create_request_info
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving create_request_info
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) state after TSmalloc: 0x2ae5b20
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) before TSHttpTxnReenable
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Event: TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) state after arg get: 0x2ae5b20
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) CacheLookupStatus is STALE
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Inside get_cached_header_info
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Found a date
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Found cache-control
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Found max-age
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Found stale-while-revalidate
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Found stale-on-error
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving get_cached_header_info
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Looks like we can return fresh info and validate in the background
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) set state as async
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TSHttpTxnCacheLookupStatusSet()
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TSContCreate()
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TSContDataSet()
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) state: 0x2ae5b20
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TSHttpTxnReenable()
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Event: TS_EVENT_HTTP_SEND_RESPONSE_HDR
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) set warning header
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TS_EVENT_HTTP_SEND_RESPONSE_HDR Event Handler End
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE Event Handler End
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) after TSHttpTxnReenable
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) TS_EVENT_HTTP_READ_REQUEST_HDR Event Handler End
> [Aug 22 17:05:03.971] Server {0x7f01dfe617e0} DIAG: (rfc5861) Leaving rfc5861_plugin
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Entering fetch_resource
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) state: 0x2ae5b20
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Lets do the lookup
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Locking URL
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Set Connection: close
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Creating Connection hdr
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Create Buffers
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) HdrPrint()
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) TSHttpConnect()
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) TSVConnRead()
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) TSVConnWrite()
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Leaving fetch_resource
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Entering consume_resource
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Write Complete
> [Aug 22 17:05:03.971] Server {0x7f01d2cab700} DIAG: (rfc5861) Leaving consume_resource
> [Aug 22 17:05:03.972] Server {0x7f01d2cab700} DIAG: (rfc5861) Entering rfc5861_plugin
> [Aug 22 17:05:03.972] Server {0x7f01d2cab700} DIAG: (rfc5861) Event: TS_EVENT_HTTP_READ_REQUEST_HDR
> [Aug 22 17:05:03.972] Server {0x7f01d2cab700} DIAG: (rfc5861) Internal Request
> [Aug 22 17:05:03.972] Server {0x7f01d2cab700} DIAG: (rfc5861) after TSHttpTxnHookAdd
> [Aug 22 17:05:03.972] Server {0x7f01d2cab700} DIAG: (rfc5861) before TSHttpTxnReenable
> NOTE: Traffic Server received Sig 11: Segmentation fault
> traffic_server - STACK TRACE:
> /lib64/libpthread.so.0(+0xf500)[0x7f01ddddf500]
> traffic_server(_Z16_acquire_sessionP13SessionBucketPK8sockaddrR7INK_MD5P6HttpSM+0x46)[0x518b56]
> traffic_server(_ZN18HttpSessionManager15acquire_sessionEP12ContinuationPK8sockaddrPKcP17HttpClientSessionP6HttpSM+0x37c)[0x519b2c]
> traffic_server(_ZN6HttpSM19do_http_server_openEb+0x490)[0x52ba90]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x4e4)[0x533bb4]
> traffic_server(_ZN6HttpSM22state_cache_open_writeEiPv+0x143)[0x526993]
> traffic_server(_ZN6HttpSM12main_handlerEiPv+0xd8)[0x52fe28]
> traffic_server(_ZN11HttpCacheSM22state_cache_open_writeEiPv+0xfa)[0x50a0ba]
> traffic_server(_ZN7CacheVC8callcontEi+0x53)[0x5ed853]
> traffic_server(_ZN7CacheVC18openWriteStartDoneEiP5Event+0x5c3)[0x660383]
> traffic_server(_ZN5Cache10open_writeEP12ContinuationP7INK_MD5P8HTTPInfolS3_13CacheFragTypePci+0x72e)[0x65fd1e]
> traffic_server(_ZN14CacheProcessor10open_writeEP12ContinuationiP3URLbP7HTTPHdrP8HTTPInfol13CacheFragType+0xb5)[0x6336e5]
> traffic_server(_ZN11HttpCacheSM10open_writeEP3URLP7HTTPHdrP8HTTPInfolbb+0xa0)[0x50a420]
> traffic_server(_ZN6HttpSM23do_cache_prepare_actionEP11HttpCacheSMP8HTTPInfobb+0x10e)[0x51b85e]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x6bc)[0x533d8c]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM16do_hostdb_lookupEv+0x282)[0x51c6e2]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0xbad)[0x53427d]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM21state_cache_open_readEiPv+0xfe)[0x52cdfe]
> traffic_server(_ZN6HttpSM12main_handlerEiPv+0xd8)[0x52fe28]
> traffic_server(_ZN11HttpCacheSM21state_cache_open_readEiPv+0x1b2)[0x50a7d2]
> traffic_server(_ZN7CacheVC8callcontEi+0x53)[0x5ed853]
> traffic_server(_ZN7CacheVC17openReadStartHeadEiP5Event+0x8c5)[0x656a85]
> traffic_server(_ZN5Cache9open_readEP12ContinuationP7INK_MD5P7HTTPHdrP21CacheLookupHttpConfig13CacheFragTypePci+0x383)[0x6535e3]
> traffic_server(_ZN14CacheProcessor9open_readEP12ContinuationP3URLbP7HTTPHdrP21CacheLookupHttpConfigl13CacheFragType+0xad)[0x63102d]
> traffic_server(_ZN11HttpCacheSM9open_readEP3URLP7HTTPHdrP21CacheLookupHttpConfigl+0x94)[0x50a224]
> traffic_server(_ZN6HttpSM24do_cache_lookup_and_readEv+0xf3)[0x51bb63]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x722)[0x533df2]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1e2)[0x5338b2]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM17handle_api_returnEv+0x3ba)[0x532a2a]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x52a940]
> traffic_server(_ZN6HttpSM18state_api_callbackEiPv+0x8b)[0x53001b]
> traffic_server(TSHttpTxnReenable+0x404)[0x4b86e4]
> /usr/local/libexec/trafficserver/rfc5861.so(+0x2f91)[0x7f01d823af91]
> traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x114)[0x52a7a4]
> traffic_server(_ZN6HttpSM14set_next_stateEv+0x1f2)[0x5338c2]
> traffic_server(_ZN6HttpSM32state_read_client_request_headerEiPv+0x289)[0x529559]
> traffic_server(_ZN6HttpSM12main_handlerEiPv+0xd8)[0x52fe28]
> traffic_server(_ZN8PluginVC17process_read_sideEb+0x375)[0x4cffa5]
> traffic_server(_ZN8PluginVC18process_write_sideEb+0x57a)[0x4d08fa]
> traffic_server(_ZN8PluginVC12main_handlerEiPv+0x372)[0x4d2122]
> traffic_server(_ZN7EThread13process_eventEP5Eventi+0x8f)[0x6a38ef]
> traffic_server(_ZN7EThread7executeEv+0x63b)[0x6a446b]
> traffic_server[0x6a278a]
> /lib64/libpthread.so.0(+0x7851)[0x7f01dddd7851]
> /lib64/libc.so.6(clone+0x6d)[0x7f01dd17090d]

--
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