trace invariant assert firing in tool.histogram.gzip and tool.histogram.offset [nondet]
This invariant assert fired on both tool.histogram.gzip and tool.histogram.offline: https://github.com/DynamoRIO/dynamorio/pull/4977/checks?check_run_id=2955546315
314: /home/runner/work/dynamorio/dynamorio/clients/drcachesim/tests/trace_invariants.cpp:151:
314: virtual bool trace_invariants_t::process_memref(const memref_t&): Assertion
314: `prev_interleaved_instr_.instr.tid == memref.instr.tid ||
314: thread_exited_[prev_interleaved_instr_.instr.tid] ||
314: (prev_xfer_marker_[memref.data.tid].instr.tid ==
314: prev_interleaved_instr_.instr.tid &&
314: prev_xfer_marker_[memref.data.tid].marker.marker_type ==
314: TRACE_MARKER_TYPE_KERNEL_EVENT)' failed.
Is this a regression from PR #4974? Or something underlying? It did happen once during PR #4974 but after later fixes for some Windows issues it did not re-occur: https://github.com/DynamoRIO/dynamorio/pull/4974/checks?check_run_id=2946043974
/suite/tests/tool.histogram.gzip.drmemtrace.signal_invariants.24474.3322.dir/trace|
314: CMake Error at /home/runner/work/dynamorio/dynamorio/suite/tests/runmulti.cmake:106 (message):
314: *** postcmd3 failed (Subprocess aborted): histogram_launcher:
314: /home/runner/work/dynamorio/dynamorio/clients/drcachesim/tests/trace_invariants.cpp:151:
314: virtual bool trace_invariants_t::process_memref(const memref_t&): Assertion
314: `prev_interleaved_instr_.instr.tid == memref.instr.tid ||
314: thread_exited_[prev_interleaved_instr_.instr.tid] ||
314: (prev_xfer_marker_[memref.data.tid].instr.tid ==
314: prev_interleaved_instr_.instr.tid &&
314: prev_xfer_marker_[memref.data.tid].marker.marker_type ==
314: TRACE_MARKER_TYPE_KERNEL_EVENT)' failed.
I tried to reproduce locally: but no assert in 100 runs.
Marking as high priority since this could indicate a failure to satisfy our branch target invariants in drmemtrace traces.