I experience occasional hangs in particular passes, e.g.:
01:23:45 INFO ===< ClangPass::replace-dependent-typedef >===
01:23:45 INFO (0.0%, 22566 bytes, 541 lines)
01:23:46 INFO (0.0%, 22566 bytes, 541 lines)
// ... the same repeats - even hours later
According to the initial investigation, there seems to be a bug in the replace-dependent-typedef pass, so that it sometimes reports success despite not making any changes in the file. This is normally caught by this check:
|
if not self.report_pass_bug(test_env, 'pass failed to modify the variant'): |
, however this line is not reached if
quit_loop has already been set to
True because an earlier invocation returned
PassResult.STOP.
The end effect is that the execution gets stuck in this state ~forever: the pass keeps being applied, the file remains the same all the time, and the file comparison check is skipped.
I experience occasional hangs in particular passes, e.g.:
According to the initial investigation, there seems to be a bug in the
replace-dependent-typedefpass, so that it sometimes reports success despite not making any changes in the file. This is normally caught by this check:cvise/cvise/utils/testing.py
Line 415 in 29fc072
, however this line is not reached if
quit_loophas already been set toTruebecause an earlier invocation returnedPassResult.STOP.The end effect is that the execution gets stuck in this state ~forever: the pass keeps being applied, the file remains the same all the time, and the file comparison check is skipped.