Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hang in contentsstore #24

Closed
iainlane opened this issue Sep 23, 2016 · 1 comment
Closed

Hang in contentsstore #24

iainlane opened this issue Sep 23, 2016 · 1 comment

Comments

@iainlane
Copy link
Collaborator

I checked on the asgen logs this morning, and there is a hung process. Here's the backtrace.

Thread 8 (Thread 0x7f9c0bfff700 (LWP 6864)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910700) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17910700) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7f9c0bfff700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7f9c10ff6700 (LWP 6863)):
#0  __lll_lock_wait_private () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95
#1  0x00007fbc2fe3d402 in __libc_calloc (n=140307790299168, elem_size=<optimized out>) at malloc.c:3209
#2  0x00007fbc322b6c36 in mdb_txn_begin () from /usr/lib/x86_64-linux-gnu/liblmdb.so.0
#3  0x00000000004c802f in contentsstore.ContentsStore.newTransaction(uint) (flags=131072, this=0x7fabca4b1580) at source/contentsstore.d:142
#4  contentsstore.ContentsStore.packageExists(immutable(char)[]) (this=0x7fabca4b1580, pkid=...) at source/contentsstore.d:188
#5  0x00000000004d0d2f in engine.Engine.__foreachbody5 (this=0x7ffd11c37100, pkg=@0x7fac1f5531d0: 0x7fac0b9c6c00) at source/engine.d:184
#6  0x00000000004f676c in std.parallelism.ParallelForeach.doIt (this=0x7ffd11c36ee0) at /usr/lib/gcc/x86_64-linux-gnu/5/include/d/std/parallelism.d:3859
#7  0x00000000005d079c in std.parallelism.AbstractTask.job() (this=...) at ../../../../src/libphobos/src/std/parallelism.d:415
#8  std.parallelism.TaskPool.doJob(std.parallelism.AbstractTask*) (job=0x7ffd11c35e88, this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1083
#9  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1138
#10 std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#11 0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910600) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#12 thread_entryPoint (arg=0x7f9c17910600) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#13 0x00007fbc305a76fa in start_thread (arg=0x7f9c10ff6700) at pthread_create.c:333
#14 0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f9c117f7700 (LWP 6862)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910500) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17910500) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7f9c117f7700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f9c097f7700 (LWP 6861)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910300) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17910300) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7f9c097f7700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f9c11ff8700 (LWP 6860)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910100) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17910100) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7f9c11ff8700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f9c1f5e5700 (LWP 6859)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17910000) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17910000) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7f9c1f5e5700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fac24960700 (LWP 6858)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6600) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d06be in std.parallelism.TaskPool.wait() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1357
#3  std.parallelism.TaskPool.pop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1151
#4  std.parallelism.TaskPool.executeWorkLoop() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1127
#5  std.parallelism.TaskPool.startWorkLoop() (this=0x7f9c1c1c6400) at ../../../../src/libphobos/src/std/parallelism.d:1117
#6  0x0000000000618dc7 in core.thread.Thread.run() (this=0x7f9c17909f00) at ../../../../src/libphobos/libdruntime/core/thread.d:1364
#7  thread_entryPoint (arg=0x7f9c17909f00) at ../../../../src/libphobos/libdruntime/core/thread.d:371
#8  0x00007fbc305a76fa in start_thread (arg=0x7fac24960700) at pthread_create.c:333
#9  0x00007fbc2febfb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7fbc329297c0 (LWP 6798)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000000000616409 in core.sync.condition.Condition.wait() (this=0x7f9c1c1c6680) at ../../../../src/libphobos/libdruntime/core/sync/condition.d:159
#2  0x00000000005d204f in std.parallelism.TaskPool.waitUntilCompletion() (this=<optimized out>) at ../../../../src/libphobos/src/std/parallelism.d:1378
#3  std.parallelism.Task!(std.parallelism.run, void() delegate).Task.yieldForce() (this=...) at ../../../../src/libphobos/src/std/parallelism.d:644
#4  std.parallelism.submitAndExecute(std.parallelism.TaskPool, scope void() delegate) (pool=<optimized out>, doIt=...) at ../../../../src/libphobos/src/std/parallelism.d:3465
#5  0x0000000000542a3f in std.parallelism.ParallelForeach!(backends.interfaces.Package[]).ParallelForeach.opApply(scope int(ref backends.interfaces.Package) delegate) (this=..., dg=...) at /usr/lib/gcc/x86_64-linux-gnu/5/include/d/std/parallelism.d:3865
#6  0x00000000004ec8f9 in engine.Engine.seedContentsData(config.Suite, immutable(char)[], immutable(char)[]) (arch=..., section=..., suite=..., this=0x7fbc32831800) at source/engine.d:180
#7  engine.Engine.run(immutable(char)[]) (this=<optimized out>, suite_name=...) at source/engine.d:481
#8  0x00000000004e45f0 in D main (args=...) at source/app.d:118

It looks like all of the threads are waiting on the task in thread 7 to finish, but that is deadlocked.

@ximion
Copy link
Owner

ximion commented Sep 23, 2016

Looks like thread7 is trying to get a lock on the database - but that doesn't make sense since the transaction is question is read-only...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants