Bug 223792

Summary: pthread_create() fails with segmentation fault
Product: Red Hat Enterprise Linux 3 Reporter: Jani Tolonen <jani>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED DUPLICATE QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: medium    
Version: 3.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-01-22 16:48:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Test program for reproducing the problem none

Description Jani Tolonen 2007-01-22 14:44:44 UTC
Description of problem:

System function pthread_create() fails with segmentation fault.

Originally detected problem with MySQL-4.x and MySQL-5.x series. Program
dies early in the startup always in pthread_create() function call. I have
included here a small test program that demonstrates the problem, using
only system libraries.

By switching to Linuxthreads the problem goes away. Switing back to NPTL
(version 0.60) the problem appears again. Also gdb (provided with the OS as well as new one compiled from source) does not work when NPTL is enabled, but it works with LT enabled. The symptom with gdb is that it always throws error:

"Error while reading shared library symbols:
Cannot find new threads: generic error
Cannot find user-level thread for LWP 31611: generic error"

Version-Release number of selected component (if applicable):

glibc-2.3.2-95.37
gdb version GNU gdb Red Hat Linux (6.3.0.0-1.62rh)
kernel version 2.4.33.3

How reproducible:

Always.

Steps to Reproduce:

# First ensure NPTL is in use
shell> export LD_ASSUME_KERNEL=

# Check
shell> getconf GNU_LIBPTHREAD_VERSION
NPTL 0.60

# Compile the test program (attached)
shell> gcc thr_test_min.c -lpthread

# Run
shell> ./a.out
Init ok. Creating 100000 threads
Segmentation fault

Expected results:

# Using LinuxThreads the program creates threads successfully
shell> export LD_ASSUME_KERNEL=2.4.1

# Check
shell> getconf GNU_LIBPTHREAD_VERSION
linuxthreads-0.10

shell> ./a.out
Init ok. Creating 100000 threads
     100     200     300     400     500     600     700     800     900    1000    1100    1200    1300    1400    1500    1600    1700    1800    1900    2000    2100    2200    2300    2400    2500    2600    2700    2800    2900    3000    3100    3200    3300    3400    3500    3600    3700    3800    3900    4000
...
 100000
end

Additional info:

Problem originally detected with MySQL database engine.

Comment 1 Jani Tolonen 2007-01-22 14:44:44 UTC
Created attachment 146185 [details]
Test program for reproducing the problem

Comment 2 Jakub Jelinek 2007-01-22 16:48:28 UTC

*** This bug has been marked as a duplicate of 223788 ***