Skip to content

Instantly share code, notes, and snippets.

@rrnewton
Created January 31, 2014 03:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rrnewton/8726176 to your computer and use it in GitHub Desktop.
Save rrnewton/8726176 to your computer and use it in GitHub Desktop.
worker 0 disappears resulting in deadlock
[!] LVish responding to env Var: DEBUG=9
|3| wrkr0 [dbg-lvish] Auxillary worker #0 starting.
|7| !cpu 0 stealing
|7| !cpu 0 going idle...
|3| wrkr2 [dbg-lvish] Auxillary worker #2 starting.
|7| !cpu 2 stealing
|7| !cpu 2 going idle...
|3| wrkr3 [dbg-lvish] Auxillary worker #3 starting.
|7| !cpu 3 stealing
|7| !cpu 3 going idle...
|3| wrkr1 [dbg-lvish] Main worker thread starting.
|7| Starting pushWork on worker 1
|8| wrkr1 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 1
|8| wrkr1 [dbg-lvish] putLV: setStatus,, lv 19 on worker 1
|7| !cpu 3 woken up
|5| wrkr1 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 1
|7| cpu 3 got work from cpu 1
|8| wrkr1 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 1
|8| wrkr1 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 1
|7| Starting pushWork on worker 3
|9| wrkr1 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 1
|7| !cpu 1 stealing
|7| cpu 1 got work from cpu 3
|7| Starting pushWork on worker 1
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 1
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: setStatus,, lv 19 on worker 1
|5| wrkr1 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 1
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 1
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 1
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|9| wrkr1 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 1
|7| Starting pushWork on worker 1
|7| !cpu 3 stealing
|8| wrkr1 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 1
|8| wrkr1 [dbg-lvish] putLV: setStatus,, lv 19 on worker 1
|5| wrkr1 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 1
|7| cpu 3 got work from cpu 1
|7| !cpu 2 woken up
|8| wrkr1 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 1
|7| Starting pushWork on worker 3
|7| !cpu 0 woken up
|8| wrkr1 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 1
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|9| wrkr1 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 1
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|7| cpu 0 got work from cpu 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|7| !cpu 1 stealing
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| !cpu 1 going idle...
|7| !cpu 3 stealing
|7| Starting pushWork on worker 0
|7| !cpu 3 going idle...
|7| cpu 2 got work from cpu 0
|7| Starting pushWork on worker 2
|8| wrkr2 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: setStatus,, lv 19 on worker 2
|5| wrkr2 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 2
|8| wrkr0 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 0
|8| wrkr0 [dbg-lvish] putLV: setStatus,, lv 19 on worker 0
|5| wrkr0 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 0
|8| wrkr2 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 2
|8| wrkr0 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 0
|8| wrkr0 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 0
|9| wrkr2 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 2
|9| wrkr0 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 0
|7| Starting pushWork on worker 2
|7| !cpu 3 woken up
|8| wrkr2 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: setStatus,, lv 19 on worker 2
|5| wrkr2 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 2
|7| !cpu 0 stealing
|7| cpu 3 got work from cpu 2
|8| wrkr2 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 2
|7| Starting pushWork on worker 3
|7| !cpu 0 going idle...
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|7| !cpu 0 woken up
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|7| cpu 0 got work from cpu 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|7| Starting pushWork on worker 0
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|8| wrkr0 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 0
|9| wrkr2 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 2
|7| !cpu 3 stealing
|7| cpu 3 got work from cpu 0
|7| !cpu 2 stealing
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|7| cpu 2 got work from cpu 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|7| Starting pushWork on worker 2
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|8| wrkr2 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: setStatus,, lv 19 on worker 2
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| !cpu 3 stealing
|7| cpu 3 got work from cpu 2
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| Starting pushWork on worker 3
|5| wrkr2 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 2
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr2 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 2
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|8| wrkr2 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 2
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|9| wrkr2 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 2
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|7| !cpu 2 stealing
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|7| cpu 2 got work from cpu 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| !cpu 3 stealing
|7| !cpu 3 going idle...
|7| Starting pushWork on worker 2
|8| wrkr2 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: setStatus,, lv 19 on worker 2
|5| wrkr2 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 2
|8| wrkr2 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 2
|9| wrkr2 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 2
|7| !cpu 3 woken up
|7| cpu 3 got work from cpu 2
|7| !cpu 1 woken up
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|7| !cpu 2 stealing
|7| cpu 1 got work from cpu 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|7| !cpu 2 going idle...
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| Starting pushWork on worker 1
|7| !cpu 3 stealing
|7| cpu 3 got work from cpu 1
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|7| Starting pushWork on worker 3
|8| wrkr3 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: setStatus,, lv 19 on worker 3
|5| wrkr3 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 3
|8| wrkr3 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 3
|9| wrkr3 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: initial lvar status read, lv 19 on worker 1
|8| wrkr1 [dbg-lvish] putLV: setStatus,, lv 19 on worker 1
|5| wrkr1 [dbg-lvish] putLV: about to mutate lvar, lv 19 on worker 1
|2| (wrkr3) waitRemovedSize: about to block.
|8| wrkr1 [dbg-lvish] putLV: read final status before unsetting, lv 19 on worker 1
|7| wrkr3 [dbg-lvish] getLV: first readIORef , lv 19 on worker 3
|8| wrkr1 [dbg-lvish] putLV: UN-setStatus, lv 19 on worker 1
|7| wrkr3 [dbg-lvish] getLV (active): check globalThresh, lv 19 on worker 3
|9| wrkr1 [dbg-lvish] putLV: calling each listener's onUpdate, lv 19 on worker 1
|2| (wrkr3) waitRemovedSize: unblocked, returning.
|7| !cpu 2 woken up
|7| !cpu 1 stealing
|7| !cpu 2 going idle...
|7| !cpu 1 going idle...
|5| wrkr3 [dbg-lvish] freezeLV: atomic modify status to Freezing, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: begin busy-wait for putter status, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: calling each listener's onFreeze, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: finalizing status as Frozen, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] getLV: first readIORef , lv 20 on worker 3
|7| wrkr3 [dbg-lvish] getLV (frozen): about to check globalThresh, lv 20 on worker 3
|5| wrkr3 [dbg-lvish] freezeLV: atomic modify status to Freezing, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: begin busy-wait for putter status, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: calling each listener's onFreeze, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] freezeLV: finalizing status as Frozen, lv 19 on worker 3
|7| wrkr3 [dbg-lvish] getLV: first readIORef , lv 20 on worker 3
|7| wrkr3 [dbg-lvish] getLV (frozen): about to check globalThresh, lv 20 on worker 3
|3| wrkr3 [dbg-lvish] Final continuation of main worker: reenter sched to cleanup.
|7| !cpu 3 stealing
|7| !cpu 3 going idle...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment