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

Re: Bug#392649: ircd-hybrid: FTBFS on alpha: epoll_* syscall definitions changed since last build



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

Attachment: signature.asc
Description: Digital signature


Reply to: