Bug 521333 - osc build can't handle corrupt package-cache ...
Summary: osc build can't handle corrupt package-cache ...
Status: NEW
Alias: None
Product: openSUSE.org
Classification: openSUSE
Component: BuildService (show other bugs)
Version: unspecified
Hardware: Other Other
: P5 - None : Major with 5 votes (vote)
Target Milestone: ---
Assignee: Adrian Schröter
QA Contact: Adrian Schröter
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-11 14:10 UTC by Michael Meeks
Modified: 2009-10-27 05:53 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Meeks 2009-07-11 14:10:58 UTC
So - bug #521331# contains the issue of creating partial / empty entries in the osbuild-packagecache.

Given that this happens, helpful handling of this would be much appreciated.

logging output to /var/tmp/build-root/.build.log...
Memory limit set to 2712128KB
Using BUILD_ROOT=/var/tmp/build-root
Using BUILD_ARCH=i586:i486:i386


linux-h3ht started "build anerley.spec" at Sat Jul 11 14:57:24 BST 2009.


processing specfile /home/michael/osc/Moblin:Factory/anerley/anerley.spec ...
running changelog2spec --target rpm --file /home/michael/osc/Moblin:Factory/anerley/anerley.spec
init_buildsystem --clean --rpmlist /tmp/rpmlist.Xggd07 /home/michael/osc/Moblin:Factory/anerley/anerley.spec ...
preinstalling aaa_base...
preinstalling acl...
preinstalling attr...
preinstalling bash...
preinstalling coreutils...
preinstalling diffutils...
preinstalling filesystem...
preinstalling fillup...
preinstalling glibc...
preinstalling grep...
preinstalling insserv...
preinstalling libacl...
preinstalling libattr...
preinstalling libbz2-1...
preinstalling libgcc43...
preinstalling libxcrypt...
preinstalling m4...
preinstalling libncurses5...
preinstalling pam...
preinstalling permissions...
preinstalling popt...
preinstalling libreadline5...
preinstalling rpm...
preinstalling sed...
preinstalling tar...
preinstalling zlib...
preinstalling libselinux1...
running aaa_base preinstall script
running aaa_base postinstall script
Updating etc/sysconfig/language...
Updating etc/sysconfig/backup...
Updating etc/sysconfig/boot...
Updating etc/sysconfig/kernel...
Updating etc/sysconfig/suseconfig...
Updating etc/sysconfig/clock...
Updating etc/sysconfig/proxy...
Updating etc/sysconfig/windowmanager...
Updating etc/sysconfig/sysctl...
Updating etc/sysconfig/cron...
Updating etc/sysconfig/news...
Updating etc/sysconfig/shutdown...
Updating etc/passwd...unchanged
Updating etc/group...unchanged
Updating etc/shadow...new
initializing rpm db...
reordering...Bad rpm /var/tmp/build-root/.init_b_cache/rpms/python.rpm
bad binary: python.rpm
done
removing nis flags from /var/tmp/build-root/etc/nsswitch.conf...
now finalizing build dir...
/usr/sbin/Check: line 4: /etc/sysconfig/security: No such file or directory
Starting SuSEconfig, the SuSE Configuration Tool...
Running in full featured mode.
Reading /etc/sysconfig and updating the system...
Executing /sbin/conf.d/SuSEconfig.permissions...
/sbin/conf.d/SuSEconfig.permissions: line 28: /etc/sysconfig/security: No such file or directory
Finished.
su: error while loading shared libraries: libaudit.so.0: cannot open shared object file: No such file or directory
ln: creating symbolic link `./.build.packages': File exists
rm: cannot remove `/var/tmp/build-root/proc/dri/0/vma': Operation not permitted
rm: cannot remove `/var/tmp/build-root/proc/dri/0/bufs': Operation not permitted
rm: cannot remove `/var/tmp/build-root/proc/dri/0/queues': Operation not permitted

... 40+k lines of similar screaming madness ...


So - to avoid a multi-megabyte log of death, with no real clarity about what is going on, it would be really nice to have two things:

1) aborting on fatal error:

initializing rpm db...
reordering...Bad rpm /var/tmp/build-root/.init_b_cache/rpms/python.rpm
bad binary: python.rpm
done
*** proper error handling here ***
   if we have bad binaries we are not going to get a repeatable build - it would be nice to die 40k log lines earlier - near the root cause.


2) it would be nice to have some idea where to find the misbehaving package in order to manually correct the fall-out from 521331 - an strace is not that pleasant:

13646 1247320645.107931 stat64("/var/tmp/build-root/.init_b_cache/rpms/python.rpm", 0xbfc0b5b4) = -1 ENOENT (No such file or directory)
13646 1247320645.107989 symlink("/var/tmp/osbuild-packagecache/openSUSE:11.1:Update/standard/i586/python-2.6.0-2.21.1.i586.rpm", "/var/tmp/build-root/.init_b_cache/rpms/python.rpm") = 0


Can we not unwind that on this build failure ?

Thanks muchly.
Comment 1 Larry Gilbert 2009-09-25 17:41:21 UTC
I've run into this today myself.  It may be related to #521331, but since I tried wiping the package cache clean and have still been getting this, I'm not so sure.

Here's the build I've been trying: package perl-Test-WWW-Selenium from home:csbuild:Perl, building for openSUSE 11.1 on a non-virtualized Fedora 8 system.  (I realize it's a little weird to be using Fedora 8, but I'd rather not discuss that.) :-)

At first I did not have lzma installed.  When I got a lot of errors from rpm about lzma missing, I found it in openSUSE:Tools and installed it.  Then I tried running another build and got almost exactly the same kind of spewing described here.

When I read #521331, I figured the interruption caused by not having lzma available must have been enough to corrupt the package cache.  So I tried wiping clean osbuild-packagecache/openSUSE_11.1 and building again, but this didn't have any effect on this bug.  I also tried wiping both build_root and osbuild-packagecache completely, and this had no effect, either.

I've tried to capture the output on my terminal but have been unsuccessful.

I'm using osc-0.122-14.1.  If any other specifics would help, I will do my best to provide them.