libc borked

Stephan Hermann sh at sourcecode.de
Fri Mar 14 17:01:04 UTC 2008


Hi Colin,

Colin Watson wrote:
>>>> Fact, rebuilding the archive won't show any build failures, but running 
>>>> those rebuilt apps would have shown the evilness of this change.
>>>>         
>>> Rebuilding the archive against the output of the rebuild in progress
>>> would have shown it up very quickly; note that glibc 2.7-9ubuntu2 itself
>>> failed to build (without hand-holding) due to upgrading to libc6
>>> 2.7-9ubuntu1 at the start of the build, and many packages would have
>>> failed in the same way.
>>>       
>> The problem I see here is: When we upload something new e.g. toolchain, 
>> glibc, dpkg-buildpackage changes etc. we are not automatically 
>> rebuilding our archive against those new versions. Which would be quite 
>> helpful if we did.
>>     
>
> It isn't practical for us to upload the entire archive when the
> toolchain changes; we would rapidly lose mirrors if we started doing
> things like that.
>   
No, that I don't mean/want either...but an internal test rebuild of the 
archive should be possible without injecting any new packages to the 
archive/mirros.
Just for QA purposes.
> However, we can and do perform test rebuilds that don't end up in the
> archive; in fact, such a test rebuild was performed after dpkg was
> changed, but unfortunately did not make use of its own output so this
> problem didn't show up. We'll fix that for the next test rebuild. We may
> also try to construct a CD image from the output of the test rebuild,
> which would allow us to discover more subtle problems; although we'd
> have to be very careful about labelling these.
>   

> I'm not sure if any of this would have shown up the wine problem, unless
> lmms would have encountered it via its build-dependency on wine-dev.
> Automatic tests in the package itself are probably the best chance we
> have here.
>   
TBH, the break of wine was just a coincidence...as I already said on 
IRC, I tested the wine 0.9.55 before I uploaded it, but to my fault I 
didn't update my personal ubuntu mirror to the latest state, and sadly 
on my system it worked, but not for others after upload. this has been 
fixed on my site with a 0,6,12,18 interval of "mirror_hardy.sh ; 
update_chroots.sh" via cron :)
More sad is, that this bug was known to wine devs, but the corresponding 
bug report was set to invalid/closed which wasn't in my search query.

>   
>> I don't blame anybody...we just need to fix some processes, e.g. 
>> describing a bit more  what the change  is (not only : ok we  
>> intrdoduced new cflags,ldflags handling and passing some sane/insane 
>> flags via dpkg-buildpackage towards our buildsystems).
>>     
>
> I still think that in general this is a sane flag (and so far it's
> broken fewer packages than -fstack-protector did), but more work is
> clearly needed on spotting the exceptions.
>
>   
Yepp..even with glibc working now, it can happen that some apps (like 
wine) are breaking during runtime (which can't be catched during the 
build). those buggers needs to be catched during testing the CDs, or 
universe archives from testers...or we find an automatic way of running 
the packages after building (which could be a cool project for SoC 
students or mad mans task ;))


Anyhow, I think we know now what went wrong, and we do better in the 
future :)

\sh




More information about the Ubuntu-devel-discuss mailing list