Bug#713035: FTBFS on amd64/ia64 testsuite fails

2013-06-29 Thread Modestas Vainius
Hello,

Ketvirtadienis 27 Birželis 2013 14:37:17 rašė:
 On Thu, Jun 27, 2013 at 08:05:17PM +0200, Aurelien Jarno wrote:
  The problem is that the amd64 and ia64 build daemons which tried to
  build this version of eglibc are all using eatmydata. eatmydata do not
  correctly simulate fsync, msync and fdatasync as cancellation points. It
  should be possible fixing that by calling pthread_testcancel() from
  eatmydata, though I haven't tried that yet.
 
 It seems pretty testsuite-hostile to wrap builds in any LD_PRELOAD, as
 you have no idea if the thing(s) the testsuites might be checking are
 now invalidated by said preload.
 
 Was there actually a sane rationale put forward for this buildd change?
 I can see the argument for wanting the apt/dpkg bits wrapped, but doing
 so for the build itself just seems like asking for trouble, with very
 little potential gain.

Speaking with my maintainer hat on, when I first came upon eatmydata, I 
thought: it will be a huge time saviour for personal and maybe debian buildds. 
My primary idea was to wrap apt/dpkg with eatmydata since they use fsync() and 
friends *really* extensively. Too bad fsync() used to be (still is?) very slow 
on btrfs filesystem.

For exactly this purpose eatmydata script supports symlink mode (see 
eatmydata(1)). Doing:

# ln -s /usr/bin/eatmydata /usr/local/bin/apt-get
# ln -s /usr/bin/eatmydata /usr/local/bin/dpkg

in the buildd environment should be enough to wrap only these tools without 
too much hassle (i.e. sbuild configuration changes).

I'm not sure how I feel about wrapping the whole build. Maybe it's not such a 
bad idea after all if somebody tested that it speeded things up much more 
significantly. However, I just wanted to let you know that a more conservative  
approach is possible.

P.S. I'm aware that upstream released a new upstream release with the fix for 
this bug. However, packaging it might take some time due to significant 
buildsystem changes and other stuff. However, hopefully, I will get it 
eventually done in a few weeks.

-- 
Modestas Vainius mo...@debian.org


signature.asc
Description: This is a digitally signed message part.


Bug#561203: FTBFS [hppa] - pthread_create() (QThread) + fork() = crash

2010-01-04 Thread Modestas Vainius
tags 561203 pending
thanks

Hello,

On antradienis 22 Gruodis 2009 21:54:16 Modestas Vainius wrote:
 when investigating this issue further, I determined that fork() following
 pthread_create() sometimes makes the application crash. In order to
  reproduce, build attached minifail.cpp with:

[.. snip ..]

 When repeatedly running it as `minifail` (pure_test() mode), I get:
 
 $ i=0; while true; do i=$(($i+1)); echo Run $i; ./minifail; done;

[.. snip ..]
 
 The hang which is original problem of this FTBFS, can be reproduced with
 `./minifail qt` (qt_test() mode that uses QThread + fork()). QThread
 internally uses pthreads but unfortunately I was not able to reproduce the
 hang with pure pthread_* calls.
 
 $ i=0; while true; do i=$(($i+1)); echo Run $i; ./minifail qt; done;

[.. snip ..]

 
 ii  libc6 2.10.2-2  GNU C
  Library: Shared libraries
 

It seems libc6 2.10.2-3 fixed the problem. I cannot reproduce the bug with 
both test cases above any more. As far as I can tell from the changelog, 
rebuild with gcc-4.4 helped. I will close this bug once a couple of KDE 
packages get built on hppa successfully.

-- 
Modestas Vainius modes...@vainius.eu


signature.asc
Description: This is a digitally signed message part.


Bug#561203: FTBFS [hppa] - pthread_create() (QThread) + fork() = crash

2010-01-04 Thread Modestas Vainius
tags 561203 - pending
thanks

Hello,

On pirmadienis 04 Sausis 2010 17:18:40 Helge Deller wrote:
 libc6-2.10.2-3 made it much, *much* better (I'm not sure yet why!!).
 But I can still reproduce the bug on my system with your testcases. It's
  just much harder to reproduce it, but it still happens. So, it's not fixed
  yet, it just happens much less often.

Indeed, you are right. I was able to run `./minifail qt` 90k times without a 
hang, but it hang at the 3000+th run next time. Anyway, probability of hitting 
this bug has become much much lower now so maybe KDE will finally build on 
hppa now. Even if build fails with a timeout like previously, it should be 
enough to give back it once again.

Btw, backtrace of the hang is different now:

(gdb) t 2
[Switching to thread 2 (Thread 0x41d26480 (LWP 4088))]#0  0x046c in ?? ()
(gdb) bt 
#0  0x046c in ?? ()  
#1  0x40a06380 in ?? () from /lib/libc.so.6  
#2  0x40a06380 in ?? () from /lib/libc.so.6  
#3  0x40a060b4 in malloc () from /lib/libc.so.6  
#4  0x4093b2b4 in operator new(unsigned int) () from /usr/lib/libstdc++.so.6 
#5  0x404e45e8 in QThreadPrivate::createEventDispatcher (data=0x16c40) at 
thread/qthread_unix.cpp:159
#6  0x404e4858 in QThreadPrivate::start (arg=0x168f8) at 
thread/qthread_unix.cpp:183 
#7  0x403080a0 in start_thread () from /lib/libpthread.so.0 
 
#8  0x40a66898 in clone () from /lib/libc.so.6  
 
#9  0x04010300 in ?? () 
 
#10 0x04010300 in ?? () 
 
Backtrace stopped: previous frame identical to this frame (corrupt stack?)  
 
(gdb) x/20i 0x40a060b4
0x40a060b4 malloc+1208:   b,l 0x40a05d60 malloc+356,r0
0x40a060b8 malloc+1212:   copy ret0,r5  
0x40a060bc malloc+1216:   mfctl tr3,ret0
0x40a060c0 malloc+1220:   ldi 0,r23 
0x40a060c4 malloc+1224:   ldw -478(ret0),r25
0x40a060c8 malloc+1228:   ldi 1,r24 
0x40a060cc malloc+1232:   depwi -1,31,1,r25 
0x40a060d0 malloc+1236:   copy r3,r26   
0x40a060d4 malloc+1240:   copy r19,r4   
0x40a060d8 malloc+1244:   be,l 100(sr2,r0),sr0,r31  
0x40a060dc malloc+1248:   ldi d2,r20
0x40a060e0 malloc+1252:   copy r4,r19   
0x40a060e4 malloc+1256:   b,l 0x40a05d28 malloc+300,r0
0x40a060e8 malloc+1260:   ldo -8(r5),r20
0x40a060ec malloc+1264:   mfctl tr3,ret0
0x40a060f0 malloc+1268:   ldi 0,r23 
0x40a060f4 malloc+1272:   ldw -478(ret0),r25
0x40a060f8 malloc+1276:   ldi 1,r24 
0x40a060fc malloc+1280:   depwi -1,31,1,r25 
0x40a06100 malloc+1284:   copy r7,r26   
(gdb) x/20i 0x40a06380
0x40a06380: b,l 0x40a0622c,r0
0x40a06384: copy r4,r19  
0x40a06388: mfctl tr3,ret0   
0x40a0638c: copy r5,r26  
0x40a06390: ldw -478(ret0),r25
0x40a06394: ldi 0,r23 
0x40a06398: depwi -1,31,1,r25 
0x40a0639c: ldi 1,r24 
0x40a063a0: copy r19,r4   
0x40a063a4: be,l 100(sr2,r0),sr0,r31
0x40a063a8: ldi d2,r20  
0x40a063ac: copy r4,r19 
0x40a063b0: b,l,n 0x40a06290,r0 
0x40a063b4: stw rp,-14(sp)  
0x40a063b8: addil L%1000,r19,r1 
0x40a063bc: ldo 40(sp),sp   
0x40a063c0: ldw 35c(r1),ret0
0x40a063c4: stw r4,-34(sp)
0x40a063c8: copy r19,r4
0x40a063cc: stw r19,-20(sp)


-- 
Modestas Vainius modes...@vainius.eu


signature.asc
Description: This is a digitally signed message part.


Re: Proposal(s) for handling libqt3-mt situation

2008-02-16 Thread Modestas Vainius
Hi,

2008 m. February 16 d., Saturday, Pierre Habouzit rašė:
   Okay that's quite a few, so the Conflict option sucks. Here is
 another plan, tell me what you think, we put a debian specific hack in
 the glibc to reenable the extern inlines for _ONLY_ the packages that
 ask for it, for lenny, and remove it in lenny+1.
Ok, so it's actually a debate whether to readd missing symbols to affected 
libraries themselves or to libc6-dev. If Matthew is correct, all packages 
except trustedqsl are victims of libqt3-mt. By the way, I'm not sure if tsql 
is a problem (atoi is versioned?):

$ objdump -tT /usr/bin/tqsl | grep atoi
  DF *UND*  0015  GLIBC_2.2.5 atoi
$ objdump -tT /usr/bin/tqslcert | grep atoi
  DF *UND*  0015  GLIBC_2.2.5 atoi
$ objdump -Tt /usr/lib/libtqsllib.so.1.0.0 | grep atoi
  DF *UND*  0015  GLIBC_2.2.5 atoi

   Qt _has_ to use it to build, though digikam and friends won't, so that
 they will _stop_ using the damn symbols. This way partial upgrades to
 lenny works, and in lenny+1 the symbols just disappear for good.
Sorry, but that's wrong. It's true that Qt gets those symbols at compile time, 
but any binaries linking against Qt references [fl]?stat64 from Qt at link 
time. Hence as long any application using [fl]?stat64 are linked against Qt3 
with [fl]?stat64 exported (and that has nothing to do with headers), it will 
depend on [fl]?stat64 being present.

If what you say was true, ktorrent 2.2.5.dfsg.1-1 should not depend on 
fstat64, because

1. ktorrent 2.2.5.dfsg.1-1 was uploaded on Wed, 06 Feb 2008 23:07:08 +0200, 
hence built against libc6-dev (= 2.7) without extern inlines in sys/stat.h 
That's essentially the same as it would be building 
without -D_USE_DEBIAN_GLIBC_EXTERN_INLINE_HACK
2. qt-x11-free 3.3.7-9 was uploaded on Wed, 26 Sep 2007 21:42:24 +0200, hence 
built against libc6-dev ( 2.7) with extern inlines in sys/stat.h present. 
That's essentially the same as it would be building 
with -D_USE_DEBIAN_GLIBC_EXTERN_INLINE_HACK
3. ktorrent 2.2.5.dfsg.1-1 was linked against qt-x11-free 3.3.7-9 (app, not 
using  -D_USE_DEBIAN_GLIBC_EXTERN_INLINE_HACK, was linked against lib, 
using -D_USE_DEBIAN_GLIBC_EXTERN_INLINE_HACK).

As you see, all conditions were met, but, unfortunately, ktorrent 
2.2.5.dfsg.1-1 still depends on exported fstat64

   No Conflicts are needed, We only need a list of _library_ packages
 that have the stat (and other symbols) defined reuploaded with a
 -D_USE_DEBIAN_GLIBC_EXTERN_INLINE_HACK in the CFLAGS.
Do you want to add hack to lib6-dev just for Qt3?

   Then a binNMU campaign of
 the broken _packages_ has to follow (digikam, k3b, ... ) so that they
 loose their wrong *UND* symbols for good.
Unless libqt3-mt loses them, binNMUs won't help.

P.S. However, we might want to delay libqt3-mt transition (by adding back 
[fl]?stat64 symbols one way or another and forgetting it) to lenny+1, because 
it's very likely that there will have been fewer applications using it by 
then.

-- 
Modestas Vainius [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.