On Thu, Oct 12, 2006 at 04:09:53PM -0600, Steve Langasek wrote: > On Thu, Oct 12, 2006 at 08:37:59PM +0200, Aurélien GÉRÔME wrote: > > > As I wrote in the bug report, I am turning around to find a fix. > > FWIW, this doesn't translate well into idiomatic English. :) I think you > mean that you're desperate to find a fix?
Sorry, indeed, it is a French idiom that I literally translated. :P > > This bug did not appear in the previous build from the same release. It > > also does not appear on other architectures, because ircd-hybrid only > > uses epoll on alpha as rtsigio does not work there. > > You should not be using epoll on alpha either, I'm afraid, because it's a > 2.6-only syscall and this means upgrades for stable will break for people > running the 2.4 kernel from sarge. I would be happy to do that. > You also should not be using syscall1 explicitly, you should be using the > glibc interfaces... Well, upstream uses them, not me. :) > Do you have a reference to why rtsigio is broken only on alpha? The upstream package build system gives the choice between rtsigio and epoll. By default, every architectures use rtsigio. However, I made alpha use epoll for the following reason. I did not file a bug report when I found it, but it appears in the debian/changelog. I was fixing a FTBFS due to a va_list bug in ircd-hybrid and I decided to really test whether ircd-hybrid ran on an alpha machine. The IRC daemon was running fine, but when an IRC client intended to connect, nothing happened (the same symptoms are described in #281234, except for the kernel messages). I attached the IRCd process to strace and got the following output. # strace -p 17222 Process 17222 attached - interrupt to quit gettimeofday({1160692603, 481665}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692603, 984385}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692604, 486254}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692604, 988208}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692605, 490120}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692605, 992049}, NULL) = 0 rt_sigtimedwait([IO RT_3], 0x120330c50) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1160692606, 493975}, NULL) = 0 rt_sigtimedwait([IO RT_3], <unfinished ...> Process 17222 detached And so on indefinitely... Here is the output of the IRC client on another host. 00:44 -!- Irssi: Looking up sardaukar 00:44 -!- Irssi: Connecting to sardaukar [10.0.0.9] port 6667 00:44 -!- Irssi: Connection to sardaukar established And nothing more. Hmm... When reproducing the case (after a rebuild with rtsigio) and looking at the buildd logs for each architecture, I just found that ircd-hybrid has been built with epoll on any architectures. I did a stupid thing in the debian/rules... Anyway, I will do another upload with rtsigio enabled for any architectures by default, but alpha will not work anymore as stated above, so I will retitle this bug with "Impossible to connect to IRC server on alpha" and lower the severity to important. I think that it is still better than a RC bug. :) Cheers, -- .''`. Aurélien GÉRÔME : :' : `. `'` Free Software Developer `- Unix Sys & Net Admin
signature.asc
Description: Digital signature