Summary: | rt_sigsuspend hangs running cnedra (http://www.cnedra.org) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Jody Pearson <jody.pearson> |
Component: | [OLD] Library | Assignee: | Please assign to toolchain <gcc-porting> |
Status: | RESOLVED INVALID | ||
Severity: | blocker | ||
Priority: | High | ||
Version: | 1.4_rc4 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Jody Pearson
2003-09-08 09:39:57 UTC
please tell us what you are talking about ? The rt_sigsuspend call is not functioning as it should. If it is any consolation, Redhat 7.3 shows the same behaviour, but that behaviour is incorrect) If you run the test case I provided above, you will see. rt_sigsuspend is called from linuxthreads (and therefore libc) The call should never block, even if it gets interrupted, it should continue. This is a guarantee of the API. Therefore I filed the bug report. I ran your test case on my x86 box and my sparc64 box. My x86 box uses glibc-2.3.2-r6 with nptl-0.60 (2.6.0-test6-mm1 kernel), and the resulting strace output did not even contain a reference to rt_sigsuspend(). My sparc64 box however, runs glibc-2.3.2-r6 (2.4.20 kernel), but still uses linuxthreads, and on that box, I did see output similar to your test case in which rt_sigsuspend() did not return 0. This is obviously a bug that is unrelated to Gentoo and there really isn't anything we can do about it, especially since you see similar behavior in Redhat 7.3. The issue looks to have been fixed or avoided entirely on nptl-0.60, which is due to eventually replace linuxthreads. I recommend that you post a summary about this issue to the libc-alpha mailing list at sources.redhat.com. They are more in a position to assist you in resolving this bug. If this becomes the case and you get some kind of patch that resolves the issue, please inform us so that patch can get included in future glibc ebuilds. Resolving as INVALID. |