Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Moderate
Description
Signal handler incorrect processing SIGINT and SIGQUIT signals. To process these signals signal handler calls vm_interrupt_handler() and vm_dump_handler() function simultaneously. Execution of these function has several limitations:
1. These functions try to grab hythread_global_lock() to create new hythreads. Lock point in signal handler can lead to dead lock.
2. Grabbing hythread_global_lock() requires hythread_suspend_enable() state of the current thread. Signal handler can be executed on native unattached thread. That leads to crash during accessing to hythread data.
3. vm_interrupt_handler() function executes exit() function which executes C++ destructors. Destructor execution in unknown point could lead to crash or dead lock (for instance interruption with kernel resources).
4. vm_dump_handler() function should don't break context during dumping threads information.
Attachments
Issue Links
- is depended upon by
-
HARMONY-5339 [drlvm][thread] provide synchronization info in thread dump
- Open
- relates to
-
HARMONY-2391 [drlvm] The VM doesn't cleanup resources if there are running daemon threads
- Closed