Hmmm, on closer inspection you seem to be right.  Apologies for the
confusion.

$ cat /proc/1/wchan
do_select

I assumed that this was evidence that pselect was being used, since on
ARM, select is currently used to implement pselect.  However, now I've
taken a look at the upstart source code, it looks like it uses ordinary
select() with the self-pipe signalling trick which was needed on older
systems. This makes sense, because although pselect has been in glibc
for quite a while, there is a long history if it being broken which was
only fixed in the Linux kernel fairly recently. And of course, it's
still broken on ARM :(

grep finds no pselect, ppoll or epoll_pwait in the upstart source, and
it does not look like upstart is using fancy external libraries which
might do these on its behalf.

init does still seem to stall occasionally, but there must be some other
reason...  I'm now rather mystified as to what's the cause could be...


Is the code in places like nih/main.c new, or inherited from the old sysvinit 
sources?  If it's new, perhaps there are some bugs which have not been worked 
out, but otherwise it's less likely, since sysvinit is so old anyway this kind 
of thing would almost certainly have got fixed by now.

-- 
init stops respawning terminal logins after while
https://bugs.launchpad.net/bugs/347205
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to