Bug 137154
Summary: | "waitid(POSIX Interface)" cannot run properly. | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | L3support <linux-sid> |
Component: | kernel | Assignee: | Jason Baron <jbaron> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 4.0 | CC: | davej, drepper, halligan, jakub, jturner, knoel, nagahama, pleiades-si, roland, tao, tburke |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ia64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-06-08 15:12:49 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: |
Description
L3support
2004-10-26 10:58:56 UTC
Could you tell me status of this problem ? We'd like to know status of this problem. WUNTRACED is no flag which can be used with waitid(). In fact, it has the same value as WSTOPPED. Therefore in the example code, the second waitid() call just waits again for stopped processes. There is none, so it waits until the child process is gone. After it might fail. This is what I see with a recent kernel. Why you se EOPNOTSUPP I can only guess. You probably have a kernel without the necessary system call. Try again with a recent kernel. I think the problem here turned out to be that RHEL4 glibc got built on some architectures without the syscall number available, including ia64. So what the test sees is the waitid emulation code using waitpid in libc. That returns ENOTSUP (aka EOPNOTSUPP) when called without WEXITED in the flag bits. On some architectures, I think the kernel may still be missing the syscall itself. Thank you for your comment. We tried run with a recent kernel, similarly the result was an abnormal end. --------------------------------- opt = 2, errno = 95 waitid 1 error: Operation not supported --------------------------------- We would like to know that why the result(RHEL3 and RHEL4) is different. That cause is bug or feature ? --------------------------------- RHEL3: normal end RHEL4: abnormal end (refer to above) --------------------------------- There is a difference since RHEL3 has only an incomplete emulation of waitid() while the RHEL4 kernel has a real implementation. As said in comment #4, the glibc version seems to have been built with incomplete headers, so that the syscall isn't recognized. Still, the main problem is that incorrect flags are used. There is no guarantee whatsoever that RHEL3 and 4 are bug-compatible, i.e., broken software is not guaranteed to work on RHEL4 even though it might have worked on RHEL3. This bug should be closed as NOTABUG. glibc-2.3.3-90 and above use the waitid system call on {i386,x86_64,ia64} if available in the kernel (s390* and ppc* don't have a syscall number for waitid syscall assigned yet even in the current upstream sources). Were you testing with glibc-2.3.3-90 or later and a recent RHEL4 kernel? Add RHEL4-L3support team in Japan This bug is awaiting an update and additional information from Fujitsu. The same behavior occurs on IA64 with: glibc-2.3.4-2.ia64 kernel-2.6.9-5.EL.ia64 But the point still remains that WUNTRACED isn't a valid flag for waitid(). Unfortunately, it seems even 2.6.9-5.EL misses http://linux.bkbits.net:8080/linux-2.5/gnupatch@418bd5c9Extop70uFoZXcWLWN_Cz1g (as well as addition of that syscall for ppc*/s390*, but for them it needs first an upstream change). An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-420.html |