glibc 2.7 on CentOS / RHEL 5

Update: Note! The issue was fixed in CentOS/RHEL 5.2 !

glibc 2.7 introduces a new flag to open() syscall, called O_CLOEXEC.

The official redhat 2.6.18 kernel (even of version 5.1) doesn't support it, and returns errors (in strace it looks like open() returns unknown error 530).

So.. just try not to use glibc 2.7 on RedHat, until they support it. If you want an adventure, this kernel seems to do the job..

How did I encounter this uncommon problem, you ask? I'm running Debian unstable VM inside a CentOS5 host (the VM's kernel is actually a CentOS5 kernel). Debian upgraded glibc to 2.7, and later the VM couldn't function (open /etc/passwd gave error 530). Not too smart of me, I guess. But dzickus kernel seems to solve it.

2 thoughts on “glibc 2.7 on CentOS / RHEL 5

  1. werner maes

    hello

    I seem to have the same problem.

    I installed Debian Lenny (chroot) on a RHEL4 server. I always got strange errors and with strace I saw exactly what you describe.

    Upgrade to RHEL5.3?

  2. Oren

    Hi Werner,

    Yeah, I think that's the best solution..

    Other possibilities would be:
    - Get a patched kernel (that backports the O_CLOEXEC feature) - I've found some for RHEL5 at http://people.redhat.com/dzickus/el5/, but he keeps deleting the old versions, the new ones are probably against 5.3...
    - Downgrade libc, but that's probably not too smart.

Leave a Reply

Your email address will not be published. Required fields are marked *