I saw ESRCH problems on one of our applications, which unfortunately
leads to aborts() from within libmicrohttpd under certain circumstances.
Looking at your sample code, I guess that its main problem is the way
you're receiving the thread return value off pthread_join(). Look
carefully at it, you
OK, it seems to be that pthread_join() is not working properly when
--fstack-protector is enabled, which is true on Ubuntu but false on
CentOS.
If I pass --fno-stack-protector, the test case passes in all
optimization levels.
[macbeth@tests]$gcc pthread_join.c -lpthread -fno-stack-protector -O0
[
Here is what I have on CentOS:
[lear@libprotod]$gcc --version
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR P
What versions of glibc and gcc were you testing on CentOS and Fedora?
"Doesn't happen on other distros" isn't very helpful without that.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1427981
Title:
** Tags added: trusty
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1427981
Title:
pthread_join failure
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc
Another thing to note, which might be root cause of the bug, is that
join_func() appears to be called multiple times according to the program
output:
Joining thread 0
thread 0 joined!
Joining thread 1
thread 0 joined!
Joining thread 1
There is no way the program would want to join a thread multip