You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (JIRA)" <ji...@apache.org> on 2017/09/01 21:31:00 UTC
[jira] [Created] (IMPALA-5891) PeriodicCounterUpdater should not
rely on static initialisation and destruction order
Tim Armstrong created IMPALA-5891:
-------------------------------------
Summary: PeriodicCounterUpdater should not rely on static initialisation and destruction order
Key: IMPALA-5891
URL: https://issues.apache.org/jira/browse/IMPALA-5891
Project: IMPALA
Issue Type: Bug
Components: Backend
Affects Versions: Impala 2.9.0
Reporter: Tim Armstrong
Assignee: Tim Armstrong
The lifecycle of PeriodicCounterUpdater is weird and depends on static initialisers and destructors running.
Its constructor spawns a thread and its destructor tests down data structures in some probably unsafe order.
I've seen a crash in the code which could be caused by the data structures being torn down while the thread is still running:
{code}
Thread 1
0 libpthread-2.12.so + 0xe2e4
Found by: given as instruction pointer in context
1 libpthread-2.12.so + 0x9588
Found by: stack scanning
2 impalad!google_breakpad::ExceptionHandler::SignalHandler(int, siginfo*, void*) + 0x23
Found by: stack scanning
3 libjvm.so!os::Linux::chained_handler(int, siginfo*, void*) + 0x112
Found by: call frame info
4 libjvm.so!JVM_handle_linux_signal + 0xb6
Found by: call frame info
5 libjvm.so!signalHandler(int, siginfo*, void*) + 0x43
Found by: call frame info
6 libpthread-2.12.so + 0xf790
Found by: call frame info
7 impalad!impala::PeriodicCounterUpdater::UpdateLoop() [function_template.hpp : 767 + 0x4]
Found by: stack scanning
8 0xffff
Found by: call frame info
{code}
Instead of the static instance object we should just allocate the state on the heap.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)