Re: Bug#551743: udevd spawns numerous processes and eats up almost all CPU time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Oct 20, Torsten Crass <torsten.crass@xxxxxxxxxxx> wrote:

>>> read(7, "", 128)                        = 0
>>> poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6,   
>>> events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}], 5, 
>>> 3000)  = 1 ([{fd=7, revents=POLLIN}])
So for some reason the signalfd(2) fd keeps returning nothing (which is
an error) with your self-compiled 2.6.22.20071006 kernel.
2.6.22 is supposed to work, so I will keep this bug open to see if
anybody else is affected.

I see that udevd, unlike the example in the man page, is quite
permissive in checking the results of the read.
Maybe if read(2) returns zero it should just fail.

    size = read(pfd[FD_SIGNAL].fd, &fdsi, sizeof(struct signalfd_siginfo));
    if (size == sizeof(struct signalfd_siginfo))
            handle_signal(udev, fdsi.ssi_signo);

-- 
ciao,
Marco

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux