Skip to content

reloading remap.config with causing a segmentation fault #6246

Description

@jrushford

While load testing a 'master' branch build using a remap with the cachkey plugin enabled, traffic server crashed due to a segmentation fault after making changes to remap.config followed by traffic_ctl config reload.

I tracked it down to the cachekey plugin. After removing the plugin configuration and repeating the test, edit remap.config; traffic_ctl config reload, its no-longer crashes.

Here is my remap.config with the cachekey plugin:

map http://foo.com:8080 http://cache-01.foo.com:8080/ @strategy=bar.com @plugin=cachekey.so @pparam=--separator= @pparam=--remove-all-params=true @pparam=--remove-path=true @pparam=--capture-prefix-uri=/^([^?]*)/$1/

Here are the stack traces:

traffic_server: received signal 11 (Segmentation fault) traffic_server - STACK TRACE: /opt/trafficserver/bin/traffic_server(crash_logger_invoke(int, siginfo_t*, void*)+0xc3)[0x6394db] /lib64/libpthread.so.0(+0xf5d0)[0x2ac8695555d0] /lib64/libc.so.6(+0x155866)[0x2ac86a2da866] /opt/trafficserver/bin/traffic_server(std::char_traits<char>::copy(char*, char const*, unsigned long)+0x3e)[0x63179a] /opt/trafficserver/bin/traffic_server(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_copy(char*, char const*, unsigned long)+0x47)[0x634f66] /opt/trafficserver/bin/traffic_server(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_clone(std::allocator<char> const&, unsigned long)+0x84)[0x6354f2] /opt/trafficserver/bin/traffic_server(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_grab(std::allocator<char> const&, std::allocator<char> const&)+0x64)[0x634552] /opt/trafficserver/bin/traffic_server(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x72)[0x633a30] /opt/trafficserver/var/trafficserver/3a39165c-3815-405e-8621-a9b0c1111b4c/opt/trafficserver/libexec/trafficserver/cachekey.so(+0x3b909)[0x2ac9122de909] /opt/trafficserver/var/trafficserver/3a39165c-3815-405e-8621-a9b0c1111b4c/opt/trafficserver/libexec/trafficserver/cachekey.so(TSRemapDoRemap+0x3a)[0x2ac9122deec7] /opt/trafficserver/bin/traffic_server(RemapPluginInfo::doRemap(void*, tsapi_httptxn*, _tm_remap_request_info*)+0x57)[0x767d3d] /opt/trafficserver/bin/traffic_server(RemapPluginInst::doRemap(tsapi_httptxn*, _tm_remap_request_info*)+0x34)[0x74e88e] /opt/trafficserver/bin/traffic_server(RemapPlugins::run_plugin(RemapPluginInst*)+0xfd)[0x76ab13] /opt/trafficserver/bin/traffic_server(RemapPlugins::run_single_remap()+0x1fe)[0x76ad6c] /opt/trafficserver/bin/traffic_server(RemapProcessor::perform_remap(Continuation*, HttpTransact::State*)+0x318)[0x753bfc] /opt/trafficserver/bin/traffic_server(HttpSM::do_remap_request(bool)+0x499)[0x6d18c3] /opt/trafficserver/bin/traffic_server(HttpSM::set_next_state()+0xa7)[0x6dec35] /opt/trafficserver/bin/traffic_server(HttpSM::call_transact_and_set_next_state(void (*)(HttpTransact::State*))+0x1b8)[0x6deb84] /opt/trafficserver/bin/traffic_server(HttpSM::handle_api_return()+0x1ac)[0x6c7552] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callout(int, void*)+0xc95)[0x6c7261] /opt/trafficserver/bin/traffic_server(HttpSM::do_api_callout_internal()+0x218)[0x6d6a50] /opt/trafficserver/bin/traffic_server(HttpSM::do_api_callout()+0x27)[0x6e707f] /opt/trafficserver/bin/traffic_server(HttpSM::set_next_state()+0x60)[0x6debee] /opt/trafficserver/bin/traffic_server(HttpSM::call_transact_and_set_next_state(void (*)(HttpTransact::State*))+0x1b8)[0x6deb84] /opt/trafficserver/bin/traffic_server(HttpSM::handle_api_return()+0x1ac)[0x6c7552] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callout(int, void*)+0xc95)[0x6c7261] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callback(int, void*)+0x1e4)[0x6c6550] /opt/trafficserver/bin/traffic_server(TSHttpTxnReenable+0x109)[0x65489d] /opt/trafficserver/libexec/trafficserver/remap_stats.so(+0xcb5e)[0x2ac910972b5e] /opt/trafficserver/bin/traffic_server(INKContInternal::handle_event(int, void*)+0x13a)[0x6479de] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(APIHook::invoke(int, void*) const+0xe9)[0x6483af] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callout(int, void*)+0x922)[0x6c6eee] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callback(int, void*)+0x1e4)[0x6c6550] /opt/trafficserver/bin/traffic_server(TSHttpTxnReenable+0x109)[0x65489d] /opt/trafficserver/libexec/trafficserver/stats_over_http.so(+0x1d07)[0x2ac910763d07] /opt/trafficserver/bin/traffic_server(INKContInternal::handle_event(int, void*)+0x13a)[0x6479de] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(APIHook::invoke(int, void*) const+0xe9)[0x6483af] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callout(int, void*)+0x922)[0x6c6eee] /opt/trafficserver/bin/traffic_server(HttpSM::main_handler(int, void*)+0x35e)[0x6cc0f4] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(EThread::process_event(Event*, int)+0x143)[0x927ce7] /opt/trafficserver/bin/traffic_server(EThread::execute_regular()+0x2c4)[0x9282c2] /opt/trafficserver/bin/traffic_server(EThread::execute()+0x107)[0x928601] /opt/trafficserver/bin/traffic_server[0x927125] /lib64/libpthread.so.0(+0x7dd5)[0x2ac86954ddd5] /lib64/libc.so.6(clone+0x6d)[0x2ac86a28302d] traffic_server: received signal 11 (Segmentation fault) traffic_server - STACK TRACE: /opt/trafficserver/bin/traffic_server(crash_logger_invoke(int, siginfo_t*, void*)+0xc3)[0x6394db] /lib64/libpthread.so.0(+0xf5d0)[0x2b800ee9f5d0] /opt/trafficserver/bin/traffic_server[0x631230] /opt/trafficserver/bin/traffic_server(RefCountObj::refcount_inc()+0x21)[0x631a07] /opt/trafficserver/bin/traffic_server(Ptr<ProxyMutex>::Ptr(Ptr<ProxyMutex> const&)+0x39)[0x63f0f1] /opt/trafficserver/bin/traffic_server(WeakMutexTryLock::WeakMutexTryLock(SourceLocation const&, char const*, Ptr<ProxyMutex>&, EThread*)+0x30)[0x65efd4] /opt/trafficserver/bin/traffic_server(HttpSM::state_api_callout(int, void*)+0x665)[0x6c6c31] /opt/trafficserver/bin/traffic_server(HttpSM::do_api_callout_internal()+0x218)[0x6d6a50] /opt/trafficserver/bin/traffic_server(HttpSM::do_api_callout()+0x27)[0x6e707f] /opt/trafficserver/bin/traffic_server(HttpSM::setup_cache_lookup_complete_api()+0x26)[0x6e7204] /opt/trafficserver/bin/traffic_server(HttpSM::state_cache_open_read(int, void*)+0x654)[0x6cbd72] /opt/trafficserver/bin/traffic_server(HttpSM::main_handler(int, void*)+0x35e)[0x6cc0f4] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(HttpCacheSM::state_cache_open_read(int, void*)+0x2a7)[0x7309c5] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(CacheVC::openReadStartHead(int, Event*)+0x10b8)[0x859bce] /opt/trafficserver/bin/traffic_server(CacheVC::openReadFromWriter(int, Event*)+0x2ef)[0x853a07] /opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, void*)+0xc9)[0x63d7ed] /opt/trafficserver/bin/traffic_server(EThread::process_event(Event*, int)+0x143)[0x927ce7] /opt/trafficserver/bin/traffic_server(EThread::execute_regular()+0x2c4)[0x9282c2] /opt/trafficserver/bin/traffic_server(EThread::execute()+0x107)[0x928601] /opt/trafficserver/bin/traffic_server[0x927125] /lib64/libpthread.so.0(+0x7dd5)[0x2b800ee97dd5] /lib64/libc.so.6(clone+0x6d)[0x2b800fbcd02d] [TrafficManager] ==> Cleaning up and reissuing signal #15 traffic_server: using root directory '/opt/trafficserver' [TrafficManager] ==> signal #15

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions