Mailinglist Archive: opensuse-buildservice (90 mails)

< Previous Next >
[opensuse-buildservice] Mysterious build failures: i586 chroot on CentOS 7 host
Hi all,

I am setting up a private OBS to build packages for Scientific Linux 6
(i586, x86_64) and CentOS 7 (x86_64 only). Going out on a limb, I have
installed obsworker on various SL/CentOS boxes, rather than openSUSE
VMs. Rationale: a similar setup has been working fine for us for years
with OBS 2.3; we are a Red Hat shop, with SL 6 or CentOS 7 installed
directly on the hardware, and I figure builds will be faster with less
layers of virtualization in the way.

But I'm having some bizarre problems building i586 packages on CentOS 7
hosts. They all seem to boil down to one thing: the filesystem does not
behave properly. Specifically, simple programs that do simple filesystem
operations, like "which" or "alternatives" or "pkg-config", fail in very
strange ways.

The same packages build just fine for x86_64 SL 6 on CentOS 7. And they
build just fine for i586 SL 6 on an SL 6 host. The only time builds fail
mysteriously is when the build host is CentOS 7, and the build target is
i586 SL 6. And not all packages fail, just some.

Example failure: building c3p0, a Java connection pool library because
/usr/bin/java does not exist. Here's the chain of failures:

* setting up the build chroot installs
java-1.6.0-openjdk-1:1.6.0.35-1.13.7.1.el6_6
* postinstall script for that package fails when running "alternatives
--install [...]", which is supposed to ensure that /usr/bin/java
exists:

[ 99s] [229/244] installing
java-1.6.0-openjdk-1:1.6.0.35-1.13.7.1.el6_6
[ 105s] altdir /etc/alternatives invalid
[ 105s] altdir /etc/alternatives invalid
[ 105s] altdir /etc/alternatives invalid

* thus, no /etc/alternatives/java
* thus, no /usr/bin/java
* thus, /usr/bin/ant crashes with "Couldn't find java virtual machine"
* thus, build fails

I should note that several other RPM operations failed while setting up
the build chroot. Lots of packages printed "altdir /etc/alternatives
invalid" errors. Others were even worse:

[ 75s] [183/244] installing fontconfig-2.8.0-5.el6
[ 77s] "/usr/share/fonts": Value too large for defined data type
[ 77s] warning: %post(fontconfig-2.8.0-5.el6.i686) scriptlet failed,
exit status 1
[ 77s] [184/244] installing gpm-1.20.6-12.el6
[ 78s] /var/tmp/rpm-tmp.YKOvqv: line 1: 17643 Bus error
/sbin/chkconfig --add gpm

I can easily reproduce the error if I enter the build chroot myself:

$ sudo chroot /data/obs/build/root_3 /bin/bash
bash-4.1# alternatives --install /usr/bin/java java
/usr/lib/jvm/jre-1.6.0-openjdk/bin/java 16000
altdir /etc/alternatives invalid

strace output is ... unhelpful. I see no obviously failing system calls.
I see a *successful* "stat64("/etc/alternatives", {st_mode=S_IFDIR|0755,
st_size=10, ...}) = 0", FWIW.

Any clues? My gut instinct tells me to chase after that "Bus error" from
/sbin/chkconfig.

Thanks!

Greg
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
List Navigation
Follow Ups