Bug 101767
Summary: | perl iThreads app hangs with NPTL | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Al Tobey <albert.tobey> |
Component: | perl | Assignee: | Warren Togami <wtogami> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | David Lawrence <dkl> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | perl-devel, redhat |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | RHEL3U4+ | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-09-23 18:30:34 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: | |||
Bug Depends On: | |||
Bug Blocks: | 100644 |
Description
Al Tobey
2003-08-06 16:30:49 UTC
Downgraded libc to the Severn's glibc-2.3.2-57 and the problem went away. Maybe this bug should be moved to glibc (or I should have filed it there in the first place?) Reproduced, debugging (well, first trying to convert it into a C testcase). There is certainly a perl bug here, though whether there is a glibc bug as well is yet to be proven. At least following libraries: /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/threads/threads.so /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/threads/shared/shared.so were not linked against -lpthread, even though they are using pthread_* functions provided only by libpthread. This results in the symbols being non-versioned, and thus pthread_create being called instead of the expected pthread_create@@GLIBC_2.1 Plus there is a NPTL bug, fixed thusly: 2003-08-07 Jakub Jelinek <jakub> * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset. --- libc/nptl/pthread_create.c.jj 2003-08-03 04:15:48.000000000 -0400 +++ libc/nptl/pthread_create.c 2003-08-06 19:46:20.000000000 -0400 @@ -464,6 +464,7 @@ __pthread_create_2_0 (newthread, attr, s new_attr.guardsize = ps; new_attr.stackaddr = NULL; new_attr.stacksize = 0; + new_attr.cpuset = NULL; /* We will pass this value on to the real implementation. */ attr = (pthread_attr_t *) &new_attr; glibc side fixed in glibc-2.3.2-71. perl side to explicitly link dlopen'd .so libraries against the same libraries that link against the main perl isn't likely to go in upstream pre-5.8.1. will look into a custom patch on our side and getting upstream buyin for a later release. Anyone have any clue if this is still an issue? No idea if Chip followed up upstream as mentioned here. Seems to be OK in RHEL3 U4 when I re-run that same script both with RHEL's perl and mine. I'm not sure what fixed it, though. I think the glibc update following Jakub's note actually fixed it for me. Here are two patches that I think contain contributions from Chip related to shared libperl.so and "build issues." The 18877 patch seems to have the more interesting changes in it, making changes to the dynamic loader. ftp://ftp.linux.activestate.com/pub/staff/gsar/APC/perl-5.8.x-diffs/19061.gz ftp://ftp.linux.activestate.com/pub/staff/gsar/APC/perl-5.8.x-diffs/18877.gz |