Jiri Podhorsky created TS-3821: ---------------------------------- Summary: Segmentation fault possibly due leaks in atscppapi Key: TS-3821 URL: https://issues.apache.org/jira/browse/TS-3821 Project: Traffic Server Issue Type: Bug Components: CPP API Reporter: Jiri Podhorsky Assignee: Brian Geffon
Hello, I'm getting segmentation faults with ATS 5.3.1, possibly when I enabled plugins in atscppapi, in which are used other Plugins than GlobalPlugin (TransformationPlugin, InterceptionPlugin,...) i'm building traffic server only with parameters: ./configure --prefix=/install --exec-prefix=/exec --with-user=trafficserver --enable-cppapi I'm getting segfault: {noformat} traffic_server: Segmentation fault (Address not mapped to object [(nil)]) traffic_server - STACK TRACE: /www/trafficserver/install/bin/traffic_server(_Z19crash_logger_invokeiP7siginfoPv+0x99)[0x4c64d9] /lib/x86_64-linux-gnu/libpthread.so.0(+0xf0a0)[0x2afbe25d90a0] {noformat} I tried to find an Issue and found possible leak in dectructor ~Transaction() of Transaction.cc file. The leak is, there is added plugin by addPlugin(TransactionPlugin *); and according to documentation [https://docs.trafficserver.apache.org/en/latest/api/classatscppapi_1_1Transaction.html#a9835e610553275d197cabfbd6d1cab7b], Transaction should be responsible for cleaning. But nothing removes items of list state_.plugins_, where should be pointers to memory allocated with new, which won't be deleted by delete state_; I tried to correct it with {noformat} for (TransactionPlugin* tmp : state_->plugins_) { delete tmp; } {noformat} But it didn't work. I'm getting similar segfault with another {noformat} traffic_server: Segmentation fault (Invalid permissions for mapped object [0x2b86141ea898]) traffic_server - STACK TRACE: /www/trafficserver/install/bin/traffic_server(_Z19crash_logger_invokeiP7siginfoPv+0x99)[0x4c64d9] /lib/x86_64-linux-gnu/libpthread.so.0(+0xf0a0)[0x2b85d603d0a0] [0x2b86141ea898] {noformat} I tried to find more deep and find the plugins should be freed by delete in another class in file utils_internal.cc. But if this is true, I should see in debug mode message, which is printed before delete: {noformat} LOG_DEBUG("Locked Mutex...Deleting transaction plugin at %p", *iter); {noformat} But I don't see such messages in log. I can see in error.log lot of these messages. I'm getting them at least every second. {noformat} 20150805.16h37m04s [atscppapi] [Transaction.cc:343, operator()()] server request already initialized {noformat} Can you help me find the issue? Thanks for help in advance. -- This message was sent by Atlassian JIRA (v6.3.4#6332)