# We ignore the LD_PRELOAD lines from the expected output because they contain the build path ! ignore .*LD_PRELOAD.* ! expect return 3 $ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-check/reduction:odpor --cfg=model-check/setenv:LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/mcmini/mcmini-barber_shop_deadlock 5 3 0 0 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'model-check/reduction' to 'odpor' > [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: odpor. > [0.000000] [mc_global/INFO] ************************** > [0.000000] [mc_global/INFO] *** DEADLOCK DETECTED *** > [0.000000] [mc_global/INFO] ************************** > [0.000000] [ker_engine/INFO] 4 actors are still running, waiting for something. > [0.000000] [ker_engine/INFO] Legend of the following listing: "Actor (@): " > [0.000000] [ker_engine/INFO] Actor 1 (main thread@Lilibeth) simcall ActorJoin(pid:6) > [0.000000] [ker_engine/INFO] Actor 2 (thread 1@Lilibeth) simcall SEM_WAIT(sem_id:2 not granted) > [0.000000] [ker_engine/INFO] Actor 6 (thread 5@Lilibeth) simcall SEM_WAIT(sem_id:0 not granted) > [0.000000] [ker_engine/INFO] Actor 7 (thread 6@Lilibeth) simcall SEM_WAIT(sem_id:0 not granted) > [0.000000] [mc_global/INFO] Counter-example execution trace: > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_ASYNC_LOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_ASYNC_LOCK(semaphore: 0, capacity: 2) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_WAIT(semaphore: 0, capacity: 2, granted: yes) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_ASYNC_LOCK(semaphore: 1, capacity: 0) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_WAIT(semaphore: 1, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_UNLOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_WAIT(semaphore: 2, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_UNLOCK(semaphore: 3, capacity: 1) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_ASYNC_LOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_ASYNC_LOCK(semaphore: 3, capacity: 0) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_WAIT(semaphore: 3, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 3 in simcall SEM_UNLOCK(semaphore: 1, capacity: 1) > [0.000000] [mc_global/INFO] Actor 1 in simcall ActorJoin(target 3, no timeout) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_ASYNC_LOCK(semaphore: 0, capacity: 1) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_WAIT(semaphore: 0, capacity: 1, granted: yes) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_ASYNC_LOCK(semaphore: 1, capacity: 0) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_WAIT(semaphore: 1, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_UNLOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_WAIT(semaphore: 2, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_UNLOCK(semaphore: 3, capacity: 1) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_ASYNC_LOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_ASYNC_LOCK(semaphore: 3, capacity: 0) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_WAIT(semaphore: 3, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 4 in simcall SEM_UNLOCK(semaphore: 1, capacity: 1) > [0.000000] [mc_global/INFO] Actor 1 in simcall ActorJoin(target 4, no timeout) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_ASYNC_LOCK(semaphore: 0, capacity: 0) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_WAIT(semaphore: 0, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_ASYNC_LOCK(semaphore: 1, capacity: 0) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_WAIT(semaphore: 1, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_UNLOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_WAIT(semaphore: 2, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_UNLOCK(semaphore: 3, capacity: 1) > [0.000000] [mc_global/INFO] Actor 2 in simcall SEM_ASYNC_LOCK(semaphore: 2, capacity: 0) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_ASYNC_LOCK(semaphore: 3, capacity: 0) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_WAIT(semaphore: 3, capacity: 0, granted: yes) > [0.000000] [mc_global/INFO] Actor 5 in simcall SEM_UNLOCK(semaphore: 1, capacity: 1) > [0.000000] [mc_global/INFO] Actor 1 in simcall ActorJoin(target 5, no timeout) > [0.000000] [mc_global/INFO] Actor 6 in simcall SEM_ASYNC_LOCK(semaphore: 0, capacity: 0) > [0.000000] [mc_global/INFO] Actor 7 in simcall SEM_ASYNC_LOCK(semaphore: 0, capacity: 0) > [0.000000] [mc_Session/INFO] You can debug the problem (and see the whole details) by rerunning out of simgrid-mc with --cfg=model-check/replay:'2;3;3;3;3;3;2;2;2;3;3;3;1;4;4;4;4;4;2;2;2;4;4;4;1;5;5;5;5;5;2;2;2;5;5;5;1;6;7' > [0.000000] [mc_dfs/INFO] DFS exploration ended. 40 unique states visited; 0 backtracks (0 transition replays, 40 states visited overall)