Open
Description
Tsan disable ignores in CallUserSignalHandler when ignores are enabled before call signal handler,but it will make "CHECK_GT(thr->ignore_reads_and_writes, 0);" failed in ThreadIgnoreEnd if someone use siglongjmp in signal handler:
dlopen
- ThreadIgnoreBegin
- thr->ignore_reads_and_writes++
- trigger signal
- CallUserSignalHandler
- thr->ignore_reads_and_writes = 0
- Call siglonghmp to jump to a normal position
- ThreadIgnoreEnd
- CHECK_GT(thr->ignore_reads_and_writes, 0); // failed!