[Bug d/89254] std.net.curl and std.parallelism unittests hang

2022-05-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|9.5 |---

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2021-06-01 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|9.4 |9.5

--- Comment #6 from Richard Biener  ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2020-03-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|9.3 |9.4

--- Comment #5 from Jakub Jelinek  ---
GCC 9.3.0 has been released, adjusting target milestone.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-08-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|9.2 |9.3

--- Comment #4 from Jakub Jelinek  ---
GCC 9.2 has been released.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-05-30 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

--- Comment #3 from Rainer Orth  ---
(In reply to Iain Buclaw from comment #1)
> I don't think you should be seeing a thread deadlock in std.net.curl after
> r268746.

Indeed, thanks.

> I've not been able to reproduce the never timing out part.  The process has
> always been killed after 600 seconds.

I've finally found what was wrong: DejaGnu 1.6.1 is toxic, sometimes failing to
handle the timeouts.  That why I saw that failure on different platforms
(Linux, Solaris, ...) with different versions of expect.  That part is gone
with DejaGnu 1.6.2.

I've now looked a bit closer at this hang (32-bit Linux/x86_64 only):

WARNING: libphobos.phobos_shared/std/parallelism.d execution test program timed
out.
FAIL: libphobos.phobos_shared/std/parallelism.d execution test

For one, the test raises an exception:

core.thread.ThreadError@/vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d(3065):
Error creating thread

Since I didn't manage to print errno from gdb directly, I've just printed it:

errno = Cannot allocate memory

although pthread_create(3) doesn't document that error code.

Stacktrace at that point is

#0  core.thread.Thread.start() (this=)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d:733
#1  0x08063da8 in std.parallelism.TaskPool.this(uint) (this=0xf751c6c0, 
nWorkers=159)
at
/vol/gcc/src/hg/trunk/local/libphobos/testsuite/../src/std/parallelism.d:1461
#2  0x08063bf1 in std.parallelism.TaskPool.this() (this=0xf751c6c0)
at
/vol/gcc/src/hg/trunk/local/libphobos/testsuite/../src/std/parallelism.d:1432
#3  0x080672e4 in std.parallelism.__unittestL3941_11() ()
at
/vol/gcc/src/hg/trunk/local/libphobos/testsuite/../src/std/parallelism.d:4148
#4  0x080691e2 in std.parallelism.__modtest() () at :1
#5  0xf789659c in __foreachbody2 (this=0xd208, 
m=0x80d0240 )
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/runtime.d:561
#6  0xf78c5631 in rt.minfo.__foreachbody2 (this=0xd194, sg=...)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/minfo.d:777
#7  0xf78ab899 in gcc.sections.elf_shared.DSO.opApply(scope int(ref
gcc.sections.elf_shared.DSO) delegate) (dg=...)
at
/vol/gcc/src/hg/trunk/local/libphobos/libdruntime/gcc/sections/elf_shared.d:109
#8  0xf78c771f in rt.minfo.moduleinfos_apply(scope
int(immutable(object.ModuleIn
fo*)) delegate) (dg=...)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/minfo.d:770
#9  0xf78b8f8f in object.ModuleInfo.opApply(scope int(object.ModuleInfo*)
delegate) (dg=...) at
/vol/gcc/src/hg/trunk/local/libphobos/libdruntime/object.d:1598
#10 0xf7896990 in runModuleUnitTests ()
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/runtime.d:551
#11 0xf78c1cdd in runAll (this=0xd4fc)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:496
#12 0xf78c1861 in tryExec (this=this@entry=0xd4fc, dg=...)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:472
#13 0xf78c1a6c in _d_run_main (argc=1, argv=0xd5f4, 
mainFunc=0x8069238 )
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:505
#14 0x0806922d in main (argc=1, argv=0xd5f4)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/__entrypoint.di:44
#15 0xf7641c09 in __libc_start_main () from /lib/libc.so.6
#16 0x080627f6 in _start ()

This is on an 8-socket system with 10-core Xeon E7-8870.  With hyperthreading,
this makes for 160 threads.

I've found no way to limit the degree of parallelism from the environment, 
std.parallelism.totalCPUs is always set to the number of cores.

If I let the test continue from here, it hangs here

#0  0xf7fd2b59 in __kernel_vsyscall ()
#1  0xf76f7080 in sched_yield () from /lib/libc.so.6
#2  0xf789e029 in core.thread.Thread.yield() ()
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d:1326
#3  thread_joinAll ()
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d:2361
#4  0xf78c1c0c in rt_term ()
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:218
#5  0xf78c1cb9 in runAll (this=0xd4fc)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:501
#6  0xf78c1861 in tryExec (this=this@entry=0xd4fc, dg=...)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:472
#7  0xf78c1a6c in _d_run_main (argc=1, argv=0xd5f4, 
mainFunc=0x8069238 )
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/rt/dmain2.d:505
#8  0x0806922d in main (argc=1, argv=0xd5f4)
at /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/__entrypoint.di:44
#9  0xf7641c09 in __libc_start_main () from /lib/libc.so.6
#10 0x080627f6 in _start ()

until it runs into the DejaGnu timeout.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-05-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|9.0 |9.2

--- Comment #2 from Jakub Jelinek  ---
GCC 9.1 has been released.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-02-10 Thread ibuclaw at gdcproject dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

--- Comment #1 from Iain Buclaw  ---
I don't think you should be seeing a thread deadlock in std.net.curl after
r268746.

I've not been able to reproduce the never timing out part.  The process has
always been killed after 600 seconds.

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-02-08 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0