Ruby release blockers for Lucid and Squeeze

For the first time since I got involved in Ruby maintenance in Debian & Ubuntu, we are seriously at risk of not being able to release working Ruby interpreters in both Ubuntu Lucid and Debian Squeeze, because of two pretty serious issues.

Ruby 1.8(.7.249) randomly hangs with eglibc 2.11

That issue was found by Google folks, because Puppet was hanging. After a lot of (quite heated) discussion, it was found that the problem is caused by something in eglibc 2.11: the problem can’t be reproduced in a Debian unstable chroot (with eglibc 2.10), but is reproducible if you just upgrade glibc to 2.11 (which is in Debian experimental).

It is not clear at all whether it is a glibc bug, or a ruby bug: Ruby has shown in the past that it was making some assumptions on the behaviour of pthread. It is possible that a valid change in glibc conflicts with an assumption made by Ruby.

Still, I wonder why Ubuntu chose to release with eglibc 2.11, while Debian still only has 2.10 in unstable, and Ubuntu doesn’t really have a lot of people with deep glibc knowledge. (Update: I assumed we would release squeeze with 2.10, but the eglibc maintainers plan to release 2.11 in squeeze.)

That issue is tracked in Launchpad as bug 520715 (which was reassigned to eglibc), and in Ruby’s redmine as bug 2739. Debian Squeeze isn’t affected by that issue, but we are likely to get bitten as well after Squeeze if a solution isn’t found by then.

As Ruby maintainers in Debian/Ubuntu, we can’t do much about this issue, because it requires either a lot of glibc knowledge, or a lot of understanding of the Ruby threading code.

Ruby 1.9(.1.37{6,8})’s test suite hangs on Sparc

The development branch of Ruby (declared stable by the interpreter developers, but not considered as such by the third-party libraries developers) also has interesting issues. Its test suite hangs on sparc, but only (apparently) on specific CPUs/kernel versions. Here again, it is not clear whether it is a Ruby issue, or a kernel issue, for the same reasons as above. It is also possible that it is fixed in Linux 2.6.32, but the Debian build daemons run the lenny kernel, so we can’t check that. This is tracked as Debian bug 565765, and is not tracked in Ruby’s redmine, because Sparc is not supported by the upstream Ruby developers.

This issue really requires Sparc knowledge (and access), so as Ruby maintainers, again, we can’t do much, besides coordinating and poking the various people that can help.

2 thoughts on “Ruby release blockers for Lucid and Squeeze

Comments are closed.