karmic has seen the end of its life and is no longer receiving any updates. Marking the karmic task for this ticket as "Won't Fix".
** Changed in: linux-fsl-imx51 (Ubuntu Karmic) Status: Triaged => Won't Fix -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/319729 Title: ARM architecture lacks support for pselect() and ppoll() Status in Release Notes for Ubuntu: Fix Released Status in linux package in Ubuntu: Invalid Status in linux-fsl-imx51 package in Ubuntu: Fix Released Status in linux-mvl-dove package in Ubuntu: Won't Fix Status in linux source package in Jaunty: Won't Fix Status in linux-fsl-imx51 source package in Jaunty: Won't Fix Status in linux-mvl-dove source package in Jaunty: Invalid Status in linux source package in Karmic: Invalid Status in linux-fsl-imx51 source package in Karmic: Won't Fix Status in linux-mvl-dove source package in Karmic: Won't Fix Bug description: The ARM architecture in the upstream kernel lacks support for the pselect() and ppoll() system calls. pselect is defined in POSIX.1g, and in POSIX.1-2001, while ppoll is Linux specific but matches the intent of pselect. The difference between select() and pselect() & poll() and ppoll() is that the latter system calls accept an additional sigmask parameter. Effectively they are equivalent to: sigprocmask (SIG_SETMASK, &mask, &oldmask); select (...); sigprocmask (SIG_SETMASK, &oldmask, NULL); *EXCEPT* that this is performed atomically! When these syscalls do not exist, glibc emulates them with the above code - which defeats the entire object of their existance. Consider when the mask is empty, and the normal process mark blocks SIGCHLD. With pselect()/ppoll() you are guaranteed to only have the SIGCHLD delivered while in the syscall, and thus guaranteed that any child death will terminate the syscall with -EINTR. With the non-atomic code, the SIGCHLD signal may be delivered between the sigprocmask() and select() system calls, in which case the select will NOT terminate. Software will randomly hang in select and not reap its children. In some cases, the software may be self-imposing a limit on the number of its children. If the children die at the wrong point, the daemon may hang indefinitely - since it will not process the death. One such process that uses ppoll() and limits its children is udev! To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-release-notes/+bug/319729/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp