[Bug 1427981] Re: pthread_join failure

Peng Tao 1427981 at bugs.launchpad.net
Tue Apr 14 22:19:18 UTC 2015


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 at tests]$gcc pthread_join.c -lpthread -fno-stack-protector -O0
[macbeth at tests]$./a.out
Joining thread 0
thread 0 joined!
Joining thread 1
thread 1 joined!
Joining thread 2
thread 2 joined!
Joining thread 3
thread 3 joined!
Joining thread 4
thread 4 joined!
Joining thread 5
thread 5 joined!
Joining thread 6
thread 6 joined!
Joining thread 7
thread 7 joined!
Joining thread 8
thread 8 joined!
Joining thread 9
thread 9 joined!
Joining thread 10
thread 10 joined!
Joining thread 11
thread 11 joined!
Joining thread 12
thread 12 joined!
Joining thread 13
thread 13 joined!
Joining thread 14
thread 14 joined!
Joining thread 15
thread 15 joined!
Joining thread 16
thread 16 joined!
Joining thread 17
thread 17 joined!
Joining thread 18
thread 18 joined!
Joining thread 19
thread 19 joined!
join_func: 20 ran successfully

And if I pass -fstack-protector on CentOS, the case fails as well.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1427981

Title:
  pthread_join failure

Status in glibc package in Ubuntu:
  New

Bug description:
  pthread_join() appears to behave differently depending on gcc
  optimization is on or off. Build the attached source file with gcc -O2
  or gcc -O0 has shown different joining results.

  E.g., with `gcc pthread_join.c -lpthread -g -O2` it passes without
  issue.

  with `gcc pthread_join.c -lpthread -g -O0`, the program fails at
  pthread_join() with ESRCH.

  The same does not happen on other distros (tested on CentOS and
  Fedora).

  Some additional info:

  [macbeth at tests]$cat /etc/issue
  Ubuntu 14.04 LTS \n \l

  [macbeth at tests]$gcc --version
  gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
  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 PURPOSE.

  [macbeth at tests]$dpkg -l libc6
  Desired=Unknown/Install/Remove/Purge/Hold
  | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name                                   Version                  Architecture             Description
  +++-======================================-========================-========================-==================================================================================
  ii  libc6:amd64                            2.19-0ubuntu6            amd64                    Embedded GNU C Library: Shared libraries

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1427981/+subscriptions



More information about the foundations-bugs mailing list