You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
KLEE killed by SIGKILL after the grace period is not reported as TIMEOUT #77
O frontend roda o KLEE como timeout -k <killGracePeriod> <budget> klee ... (modules/frontend/caller.cpp:697) e só trata como timeout o status 31744 (WEXITSTATUS == 124), em caller.cpp:824 e caller.cpp:915 (develop, a0f8b9c). Antes do merge do runtime Rust era o mesmo código, em caller.cpp:854 e :948 (f01e8c3).
Quando o KLEE não termina dentro do período de graça, o timeout envia SIGKILL e o status passa a ser 137 (128 + 9), não 124. Esse caso não é reconhecido como timeout e a execução segue para os passos seguintes, podendo chegar a VERIFICATION SUCCEEDED (TRUE) em vez de TIMEOUT/UNKNOWN.
Evidência (não reproduzida deterministicamente): no gate diferencial do cutover do runtime (tests/cutover/baseline-rust-gate2.tsv), a tarefa tree_stack (valid-memsafety, symex) teve, em 5 repetições, UNKNOWN ×3, TIMEOUT ×1 e SUCCEEDED ×1 (60,4 s), num host carregado. Uma nova rodada deu UNKNOWN 5/5. O SUCCEEDED isolado é compatível com o caminho descrito acima.
Correção sugerida: tratar WIFEXITED && (WEXITSTATUS == 124 || WEXITSTATUS == 137) e WIFSIGNALED && WTERMSIG == SIGKILL como timeout, nos dois pontos, e adicionar um teste com um KLEE falso que ignora SIGTERM.
Activity