rodarima / cpic

Particle in Cell simulation of plasma in C
GNU General Public License v3.0
1 stars 1 forks source link

collect_pset: Assertion `plist_isempty(ex.q1)' failed #10

Closed rodarima closed 4 years ago

rodarima commented 4 years ago
(gdb) bt
#0  0x00007f66a6977ce5 in raise () from /usr/lib/libc.so.6
#1  0x00007f66a6961857 in abort () from /usr/lib/libc.so.6
#2  0x00007f66a6961727 in __assert_fail_base.cold () from /usr/lib/libc.so.6
#3  0x00007f66a6970426 in __assert_fail () from /usr/lib/libc.so.6
#4  0x0000000000405738 in collect_pset (c=0x7f669c14d200, set=0x7f669c02ca50, dim=1) at src/comm_plasma.c:564
#5  0x00000000004054e7 in collect_pchunk (c=0x7f669c14d200, dim=1) at src/comm_plasma.c:590
#6  0x000000000040826c in nanos6_unpacked_task_region_collect_plasma_fast0 ()
#7  0x00000000004082bc in nanos6_ol_task_region_collect_plasma_fast0 ()
#8  0x00007f66a640b11e in ExecutionWorkflow::executeTask(Task*, ComputePlace*, MemoryPlace*) ()
   from /usr/lib/libnanos6-optimized-linear-regions-fragmented.so
#9  0x00007f66a63e84b8 in WorkerThread::handleTask(CPU*) () from /usr/lib/libnanos6-optimized-linear-regions-fragmented.so
#10 0x00007f66a6408fa8 in TaskBlocking::taskBlocks(WorkerThread*, Task*, ThreadManagerPolicy::thread_run_inline_policy_t) ()
   from /usr/lib/libnanos6-optimized-linear-regions-fragmented.so
#11 0x00007f66a6409a61 in nanos6_taskwait () from /usr/lib/libnanos6-optimized-linear-regions-fragmented.so
#12 0x00007f66a6b34641 in nanos6_taskwait (invocation_source=0x422198 "src/sim.c:536:10") at loader/indirect-symbols/taskwait.c:21
#13 0x000000000041af32 in sim_step (sim=0x7f669c147240) at src/sim.c:536
#14 0x000000000041b2f8 in sim_run (sim=0x7f669c147240) at src/sim.c:608
#15 0x0000000000408e14 in main (argc=2, argv=0x7ffe0229e6b8) at src/cpic.c:178
(gdb) f 4
#4  0x0000000000405738 in collect_pset (c=0x7f669c14d200, set=0x7f669c02ca50, dim=1) at src/comm_plasma.c:564
564             assert(plist_isempty(ex.q1));
(gdb) p ex.q1
$1 = (plist_t *) 0x7f669c02cc10
(gdb) p ex.q1->b
$2 = (struct pblock *) 0x7f668e200000
(gdb) p ex.q1->b[0]
$3 = {{{n = 1024, npacks = 256, nfpacks = 256, next = 0x7f6657600000, prev = 0x7f665a200000},
    _pad = "\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000`Wf\177\000\000\000\000 Zf\177", '\000' <repeats 89 times>}, p = 0x7f668e200080}
(gdb) p ex.q1->b[1]
$4 = {{{n = 1611526157, npacks = 1611526157, nfpacks = 1611526157, next = 0x600df00d, prev = 0x79e82},
    _pad = "\r\360\r`\000\000\000\000\r\360\r`\000\000\000\000\r\360\r`\000\000\000\000\r\360\r`\000\000\000\000\202\236\a\000\000\000\000\000\302\227\a\000\000\000\000\000\202\227\a\000\000\000\000\000\336\305\006\000\000\000\000\000\000\000\000^\213\261\030@\000\000\000 \032b\027@\000\000\000\374\266\331\026@\000\000\000\b\220\344\030@\000\000\300;\323!@@\000\000\000\375\212\330G@\000\000@\217\254\206O@\000\000\000\340\244gF@"}, p = 0x7f668e200100}
(gdb) p ex.q1->b->next
$5 = (struct pblock *) 0x7f6657600000
(gdb) p ex.q1->b->next[0]
$6 = {{{n = 1024, npacks = 256, nfpacks = 256, next = 0x7f6657200000, prev = 0x7f668e200000},
    _pad = "\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000 Wf\177\000\000\000\000 \216f\177", '\000' <repeats 89 times>}, p = 0x7f6657600080}
(gdb)
rodarima commented 4 years ago

Not an issue, we need to finish the exchange in Y, to empty the queues.