Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Poolboy EQC counterexamples
[{{set,{var,4},
{call,poolboy_eqc,start_poolboy,
[[{size,0},
{max_overflow,1},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
<0.1987.2>},
{{set,{var,5},{call,poolboy_eqc,checkout_nonblock,[{var,4}]}},<0.1989.2>},
{{set,{var,6},{call,poolboy_eqc,checkout_block,[{var,4}]}},
{'EXIT',{timeout,{gen_fsm,sync_send_event,
[<0.1987.2>,{checkout,true},100]}}}},
{{set,{var,8},{call,poolboy_eqc,checkin,[{var,4},{var,5}]}},ok},
{{set,{var,9},{call,poolboy_eqc,checkout_nonblock,[{var,4}]}},full}]
[{{set,{var,1},
{call,poolboy_eqc,start_poolboy,
[[{size,1},
{max_overflow,1},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
<0.25611.15>},
{{set,{var,2},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},<0.25613.15>},
{{set,{var,3},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},<0.25614.15>},
{{set,{var,4},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},full},
{{set,{var,5},{call,poolboy_eqc,checkin,[{var,1},{var,2}]}},ok},
{{set,{var,6},{call,poolboy_eqc,checkin,[{var,1},{var,3}]}},ok},
{{set,{var,7},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},<0.25615.15>},
{{set,{var,8},{call,poolboy_eqc,kill_worker,[{var,7}]}},ok},
{{set,{var,9},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},<0.25616.15>},
{{set,{var,10},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},full}]
[{set,{var,1},
{call,poolboy_eqc,start_poolboy,
[[{size,2},
{max_overflow,0},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
{set,{var,4},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},
{set,{var,5},{call,poolboy_eqc,kill_idle_worker,[{var,1}]}},
{set,{var,6},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}}]
History: [{{state,undefined,undefined,undefined,[]},<0.8401.42>},
{{state,<0.8401.42>,2,0,[]},<0.8403.42>},
{{state,<0.8401.42>,2,0,[<0.8403.42>]},ok}]
State: {state,<0.8401.42>,2,0,[<0.8403.42>]}
Res: {dynamic_precondition,{'EXIT',{wrong_state,{ready,1,0,0},{ready,1,0,1}}}}
[{{set,{var,4},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},<0.8401.42>},
{{set,{var,5},{call,poolboy_eqc,kill_idle_worker,[{var,1}]}},<0.8403.42>},
{{set,{var,6},{call,poolboy_eqc,checkout_nonblock,[{var,1}]}},ok}]
Res: {dynamic_precondition,{'EXIT',{wrong_state,{ready,2,0,0},{ready,1,0,0}}}}
[{{set,{var,7},
{call,poolboy_eqc,start_poolboy,
[[{size,1},
{max_overflow,0},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
<0.9025.42>},
{{set,{var,8},{call,poolboy_eqc,checkout_nonblock,[{var,7}]}},<0.9027.42>},
{{set,{var,9},{call,poolboy_eqc,spurious_exit,[{var,7}]}},true},
{{set,{var,10},{call,poolboy_eqc,kill_worker,[{var,8}]}},ok}]
{[{set,{var,4},
{call,poolboy_eqc,start_poolboy,
[[{size,0},
{max_overflow,1},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
{set,{var,10},{call,poolboy_eqc,checkout_nonblock,[{var,4}]}}],
[[{set,{var,17},{call,poolboy_eqc,checkout_block,[{var,4}]}},
{set,{var,18},{call,poolboy_eqc,checkin,[{var,4},{var,17}]}},
{set,{var,20},{call,poolboy_eqc,checkout_nonblock,[{var,4}]}}],
[{set,{var,16},{call,poolboy_eqc,kill_worker,[{var,10}]}}]]}
History: [{{set,{var,4},
{call,poolboy_eqc,start_poolboy,
[[{size,0},
{max_overflow,1},
{worker_module,poolboy_test_worker},
{name,{local,poolboy_eqc}}]]}},
<0.180.0>},
{{set,{var,10},{call,poolboy_eqc,checkout_nonblock,[<0.180.0>]}},
{<0.182.0>,<0.179.0>}}]
State: [[{{set,{var,17},{call,poolboy_eqc,checkout_block,[<0.180.0>]}},
{<0.186.0>,<0.184.0>}},
{{set,{var,18},
{call,poolboy_eqc,checkin,[<0.180.0>,{<0.186.0>,<0.184.0>}]}},
ok},
{{set,{var,20},{call,poolboy_eqc,checkout_nonblock,[<0.180.0>]}},
{full,<0.184.0>}},
{{set,{var,0},{call,erlang,self,[]}},<0.184.0>}],
[{{set,{var,16},
{call,poolboy_eqc,kill_worker,[{<0.182.0>,<0.179.0>}]}},
ok},
{{set,{var,0},{call,erlang,self,[]}},<0.185.0>}]]
Res: no_possible_interleaving
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment