You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Pavel Rebriy (JIRA)" <ji...@apache.org> on 2008/01/15 17:57:35 UTC

[jira] Created: (HARMONY-5390) [drlvm][signals] incorrect processing SIGINT and SIGQUIT signals

[drlvm][signals] incorrect processing SIGINT and SIGQUIT signals
----------------------------------------------------------------

                 Key: HARMONY-5390
                 URL: https://issues.apache.org/jira/browse/HARMONY-5390
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Pavel Rebriy


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.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.