Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-06-03 Thread John Paul Adrian Glaubitz
On 06/03/2016 02:38 PM, John Paul Adrian Glaubitz wrote:
> I will verify the configuration again.

Ok, so there was indeed one strange issue which was that /dev/shm in
the host system was mounted again when invoking any schroot command,
so that after running schroot once, mount on the host system showed
three mounts of shm:

Before calling schroot:

root@landau:~# mount |grep shm
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

After calling schroot -c sid1-sparc64-sbuild in a second terminal:

root@landau:~# mount |grep shm
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on 
/run/schroot/mount/sid1-sparc64-sbuild-134f6ca3-bd12-4b3c-a389-cfacf7bb2c35/dev/shm
 type tmpfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,relatime)

Either way, this has been fixed now. Let's try again :).

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-06-03 Thread John Paul Adrian Glaubitz
Hi!

On 06/03/2016 02:26 PM, Aurelien Jarno wrote:
> FAIL: rt/tst-shm
> original exit status 1
> 
> It's very likely that /dev/shm (or /run/shm) is not mounted correctly in
> the chroot.

Hmm, that's odd. I have just verified this again:

root@landau:~# schroot -c sid1-sparc64-sbuild
(sid1-sparc64-sbuild)root@landau:~# mount
/dev/vdiskc1 on / type ext4 (rw,relatime,data=ordered)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs 
(rw,nosuid,relatime,size=66386376k,nr_inodes=8298297,mode=755)
devpts on /dev/pts type devpts 
(rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,relatime)
(sid1-sparc64-sbuild)root@landau:~#

Additionally, /etc/schroot/buildd/fstab and /etc/schroot/chroot.d/*
look fine, so I'm not sure what else is missing.

I have seen gcc-5 and gcc-6 sporadically complain about insufficient ptys,
too. So there might be something wrong with the fstab configuration.

I will verify the configuration again.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-06-03 Thread Aurelien Jarno
On 2016-05-31 17:21, Aurelien Jarno wrote:
> On 2016-05-31 16:23, John Paul Adrian Glaubitz wrote:
> > (Sorry for the confusion, I accidentally used my company email. Please 
> > answer to this address).
> > 
> > Hi Aurelien!
> > 
> > On 05/31/2016 04:13 PM, Aurelien Jarno wrote:
> > >> --
> > >> XFAIL: wcsmbs/test-wcsncmp
> > >> original exit status 1
> > >>  wcsncmp simple_wcsncmp  stupid_wcsncmp
> > >> Didn't expect signal from child: got `Bus error'
> > >> --
> > > 
> > > While the issue is real, this is not the reason while the package fails
> > > to build from source. The test is marked as XFAIL as shown above.
> > 
> > Ok, I see. I thought the problem would still trigger due to the unusual
> > failure.
> > 
> > > Thanks for submitting the patch upstream. Given the above, I think it is
> > > better to wait for an answer from upstream before applying it.
> > 
> > The test comes from Jose Marchesi who I know is gcc upstream, but I'm
> > not sure about glibc. Jose, could you please comment on this?
> > 
> > >> Please note: I was still getting some spurious test failures in 
> > >> rt/tst-mqueue5
> > >> due to timeouts. But those could also be a local issue which needs some 
> > >> further
> > >> investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).
> > > 
> > > TIMEOUTFACTOR just increases the timeout, if you don't specify it, the
> > > test will just fail faster.
> > 
> > Hmm, then I'm a bit out of ideas. The idea came from Nick Alcock, so maybe
> > he can comment on this as well.
> > 
> > What's more strange is that glibc_2.22-7 actually happened to build fine,
> > with the tests enabled [1]. All later builds failed again.
> 
> This logs show that a build can be successful with the test-wcsncmp test
> failing (look for "XFAIL: wcsmbs/test-wcsncmp" in the build log).
> 
> The other builds fails on andi due to the following issue:
> 
> | FAIL: math/test-idouble
> | original exit status 1
> | testing double (inline functions)
> | Failure: Test: Real part of: clog10_upward (-0x9.93d17p-4 + 0x7.c5c8d8p-4 i)
> | Result:
> |  is: -1.12998325949956790470e-01  -0x1.ced7552753334000p-4
> |  should be:  -1.12998111847613019742e-01  -0x1.ced71bae52efa000p-4
> |  difference:  2.14102343770727898687e-07   0x1.cbc8021dp-23
> |  ulp   :  15427699770.
> |  max.ulp   :  8.
> |
> | Test suite completed:
> |   58870 test cases plus 56646 tests for exception flags and
> | 56646 tests for errno executed.
> |   1 errors occurred.
> 
> And on u164 due to the rt/tst-mqueue5.
> 
> So it just look like rt/tst-mqueue5 is racy and sometimes work. You got
> more chance on the 2.22-7 build.

glibc 2.22-10 has been tried on landau, and the error is different:

FAIL: rt/tst-shm
original exit status 1

It's very likely that /dev/shm (or /run/shm) is not mounted correctly in
the chroot.

Aurelien

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread Jose E. Marchesi

> > Thanks for submitting the patch upstream. Given the above, I think it is
> > better to wait for an answer from upstream before applying it.
> 
> The test comes from Jose Marchesi who I know is gcc upstream, but I'm
> not sure about glibc. Jose, could you please comment on this?

I sent the wcsmbs/test-wcsncmp patch to glibc upstream a couple of days
ago.  It still needs approval.



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread Nick Alcock
On 31 May 2016, John Paul Adrian Glaubitz uttered the following:

> On 05/31/2016 04:13 PM, Aurelien Jarno wrote:
>>> Please note: I was still getting some spurious test failures in 
>>> rt/tst-mqueue5
>>> due to timeouts. But those could also be a local issue which needs some 
>>> further
>>> investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).
>> 
>> TIMEOUTFACTOR just increases the timeout, if you don't specify it, the
>> test will just fail faster.
>
> Hmm, then I'm a bit out of ideas. The idea came from Nick Alcock, so maybe
> he can comment on this as well.

I was only commenting on how to stop the spurious timeouts.
TIMEOUTFACTOR won't make bus errors go away. :)



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread Aurelien Jarno
On 2016-05-31 16:23, John Paul Adrian Glaubitz wrote:
> (Sorry for the confusion, I accidentally used my company email. Please answer 
> to this address).
> 
> Hi Aurelien!
> 
> On 05/31/2016 04:13 PM, Aurelien Jarno wrote:
> >> --
> >> XFAIL: wcsmbs/test-wcsncmp
> >> original exit status 1
> >>wcsncmp simple_wcsncmp  stupid_wcsncmp
> >> Didn't expect signal from child: got `Bus error'
> >> --
> > 
> > While the issue is real, this is not the reason while the package fails
> > to build from source. The test is marked as XFAIL as shown above.
> 
> Ok, I see. I thought the problem would still trigger due to the unusual
> failure.
> 
> > Thanks for submitting the patch upstream. Given the above, I think it is
> > better to wait for an answer from upstream before applying it.
> 
> The test comes from Jose Marchesi who I know is gcc upstream, but I'm
> not sure about glibc. Jose, could you please comment on this?
> 
> >> Please note: I was still getting some spurious test failures in 
> >> rt/tst-mqueue5
> >> due to timeouts. But those could also be a local issue which needs some 
> >> further
> >> investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).
> > 
> > TIMEOUTFACTOR just increases the timeout, if you don't specify it, the
> > test will just fail faster.
> 
> Hmm, then I'm a bit out of ideas. The idea came from Nick Alcock, so maybe
> he can comment on this as well.
> 
> What's more strange is that glibc_2.22-7 actually happened to build fine,
> with the tests enabled [1]. All later builds failed again.

This logs show that a build can be successful with the test-wcsncmp test
failing (look for "XFAIL: wcsmbs/test-wcsncmp" in the build log).

The other builds fails on andi due to the following issue:

| FAIL: math/test-idouble
| original exit status 1
| testing double (inline functions)
| Failure: Test: Real part of: clog10_upward (-0x9.93d17p-4 + 0x7.c5c8d8p-4 i)
| Result:
|  is: -1.12998325949956790470e-01  -0x1.ced7552753334000p-4
|  should be:  -1.12998111847613019742e-01  -0x1.ced71bae52efa000p-4
|  difference:  2.14102343770727898687e-07   0x1.cbc8021dp-23
|  ulp   :  15427699770.
|  max.ulp   :  8.
|
| Test suite completed:
|   58870 test cases plus 56646 tests for exception flags and
| 56646 tests for errno executed.
|   1 errors occurred.

And on u164 due to the rt/tst-mqueue5.

So it just look like rt/tst-mqueue5 is racy and sometimes work. You got
more chance on the 2.22-7 build.

Aurelien

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread John Paul Adrian Glaubitz
On 05/31/2016 04:26 PM, Nick Alcock wrote:
>> Hmm, then I'm a bit out of ideas. The idea came from Nick Alcock, so maybe
>> he can comment on this as well.
> 
> I was only commenting on how to stop the spurious timeouts.
> TIMEOUTFACTOR won't make bus errors go away. :)

Oh, no, I wasn't talking about this bus error but remaining test failures
I was seeing after applying Jose's patch. I have made a test build with
Jose's patch applied as well as setting TIMEOUTFACTOR to 100, the result
can be seen in the log in [1].

Adrian

> [1] 
> https://people.debian.org/~glaubitz/glibc_2.22-9+sparc64_sparc64-20160530-2024.build

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread John Paul Adrian Glaubitz
(Sorry for the confusion, I accidentally used my company email. Please answer 
to this address).

Hi Aurelien!

On 05/31/2016 04:13 PM, Aurelien Jarno wrote:
>> --
>> XFAIL: wcsmbs/test-wcsncmp
>> original exit status 1
>>  wcsncmp simple_wcsncmp  stupid_wcsncmp
>> Didn't expect signal from child: got `Bus error'
>> --
> 
> While the issue is real, this is not the reason while the package fails
> to build from source. The test is marked as XFAIL as shown above.

Ok, I see. I thought the problem would still trigger due to the unusual
failure.

> Thanks for submitting the patch upstream. Given the above, I think it is
> better to wait for an answer from upstream before applying it.

The test comes from Jose Marchesi who I know is gcc upstream, but I'm
not sure about glibc. Jose, could you please comment on this?

>> Please note: I was still getting some spurious test failures in 
>> rt/tst-mqueue5
>> due to timeouts. But those could also be a local issue which needs some 
>> further
>> investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).
> 
> TIMEOUTFACTOR just increases the timeout, if you don't specify it, the
> test will just fail faster.

Hmm, then I'm a bit out of ideas. The idea came from Nick Alcock, so maybe
he can comment on this as well.

What's more strange is that glibc_2.22-7 actually happened to build fine,
with the tests enabled [1]. All later builds failed again.

Adrian

> [1] 
> https://buildd.debian.org/status/fetch.php?pkg=glibc=sparc64=2.22-7=1462606555

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-31 Thread Aurelien Jarno
On 2016-05-31 00:21, John Paul Adrian Glaubitz wrote:
> Source: glibc
> Version: 2.22-9
> Severity: normal
> Tags: patch
> User: debian-sp...@lists.debian.org
> Usertags: sparc64
> 
> Hi!
> 
> glibc currently fails to build from source on sparc64 due at least one test
> in the testsuite failing which is due to a bus error (unaligned access):
> 
> --
> XFAIL: wcsmbs/test-wcsncmp
> original exit status 1
>   wcsncmp simple_wcsncmp  stupid_wcsncmp
> Didn't expect signal from child: got `Bus error'
> --

While the issue is real, this is not the reason while the package fails
to build from source. The test is marked as XFAIL as shown above.

> I have notified glibc upstream of these issue - not in a bug report but by
> talking to one of the developers and I have now a patch that fixes the
> problem [1].
> 
> This patch applies cleanly to glibc 2.22-9 in Debian unstable when dropping
> the Changelog part from the upstream patch, so I'm attaching a patch with
> this part removed as a suggestion for what to include in the Debian package.

Thanks for submitting the patch upstream. Given the above, I think it is
better to wait for an answer from upstream before applying it.

> Please note: I was still getting some spurious test failures in rt/tst-mqueue5
> due to timeouts. But those could also be a local issue which needs some 
> further
> investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).

TIMEOUTFACTOR just increases the timeout, if you don't specify it, the
test will just fail faster.

Aurelien

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#825865: glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c

2016-05-30 Thread John Paul Adrian Glaubitz
Source: glibc
Version: 2.22-9
Severity: normal
Tags: patch
User: debian-sp...@lists.debian.org
Usertags: sparc64

Hi!

glibc currently fails to build from source on sparc64 due at least one test
in the testsuite failing which is due to a bus error (unaligned access):

--
XFAIL: wcsmbs/test-wcsncmp
original exit status 1
wcsncmp simple_wcsncmp  stupid_wcsncmp
Didn't expect signal from child: got `Bus error'
--

I have notified glibc upstream of these issue - not in a bug report but by
talking to one of the developers and I have now a patch that fixes the
problem [1].

This patch applies cleanly to glibc 2.22-9 in Debian unstable when dropping
the Changelog part from the upstream patch, so I'm attaching a patch with
this part removed as a suggestion for what to include in the Debian package.

Please note: I was still getting some spurious test failures in rt/tst-mqueue5
due to timeouts. But those could also be a local issue which needs some further
investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).

Cheers,
Adrian

> [1] https://sourceware.org/ml/libc-alpha/2016-05/msg00710.html

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Description: Fix string/test-strncmp.c to work with wide chars.
 wcsmbs/test-wcsncmp.c (i.e. string/test-strncmp with defined WIDE)
 triggers a signal in aligment-strict platforms, like sparc*-*-*.
 .
 This patch fixes string/test-strncmp.c to work properly when the test is
 performed on arrays of wide chars.  This includes passing align1 and
 align2 to do_test as bytes, and to use more meaningful values for middle
 chars and large chars.
 .

--- glibc-2.22.orig/string/test-strncmp.c
+++ glibc-2.22/string/test-strncmp.c
@@ -38,6 +38,8 @@
 # define CHAR wchar_t
 # define UCHAR wchar_t
 # define CHARBYTES 4
+# define MIDCHAR 0x7fff
+# define LARGECHAR 0xfffe
 # define CHAR__MAX WCHAR_MAX
 # define CHAR__MIN WCHAR_MIN
 
@@ -88,6 +90,8 @@ stupid_wcsncmp (const CHAR *s1, const CH
 # define CHAR char
 # define UCHAR unsigned char
 # define CHARBYTES 1
+# define MIDCHAR 0x7f
+# define LARGECHAR 0xfe
 # define CHAR__MAX CHAR_MAX
 # define CHAR__MIN CHAR_MIN
 
@@ -414,56 +418,56 @@ test_main (void)
 
   for (i =0; i < 16; ++i)
 {
-  do_test (0, 0, 8, i, 127, 0);
-  do_test (0, 0, 8, i, 127, -1);
-  do_test (0, 0, 8, i, 127, 1);
-  do_test (i, i, 8, i, 127, 0);
-  do_test (i, i, 8, i, 127, 1);
-  do_test (i, i, 8, i, 127, -1);
-  do_test (i, 2 * i, 8, i, 127, 0);
-  do_test (2 * i, i, 8, i, 127, 1);
-  do_test (i, 3 * i, 8, i, 127, -1);
-  do_test (0, 0, 8, i, 255, 0);
-  do_test (0, 0, 8, i, 255, -1);
-  do_test (0, 0, 8, i, 255, 1);
-  do_test (i, i, 8, i, 255, 0);
-  do_test (i, i, 8, i, 255, 1);
-  do_test (i, i, 8, i, 255, -1);
-  do_test (i, 2 * i, 8, i, 255, 0);
-  do_test (2 * i, i, 8, i, 255, 1);
-  do_test (i, 3 * i, 8, i, 255, -1);
+  do_test (0, 0, 8, i, MIDCHAR, 0);
+  do_test (0, 0, 8, i, MIDCHAR, -1);
+  do_test (0, 0, 8, i, MIDCHAR, 1);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 0);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 1);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, -1);
+  do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8, i, MIDCHAR, 0);
+  do_test (2 * CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 1);
+  do_test (CHARBYTES * i, 3 * CHARBYTES * i, 8, i, MIDCHAR, -1);
+  do_test (0, 0, 8, i, LARGECHAR, 0);
+  do_test (0, 0, 8, i, LARGECHAR, -1);
+  do_test (0, 0, 8, i, LARGECHAR, 1);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 0);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 1);
+  do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, -1);
+  do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8, i, LARGECHAR, 0);
+  do_test (2 * CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 1);
+  do_test (CHARBYTES * i, 3 * CHARBYTES * i, 8, i, LARGECHAR, -1);
 }
 
   for (i = 1; i < 8; ++i)
 {
-  do_test (0, 0, 8 << i, 16 << i, 127, 0);
-  do_test (0, 0, 8 << i, 16 << i, 127, 1);
-  do_test (0, 0, 8 << i, 16 << i, 127, -1);
-  do_test (0, 0, 8 << i, 16 << i, 255, 0);
-  do_test (0, 0, 8 << i, 16 << i, 255, 1);
-  do_test (0, 0, 8 << i, 16 << i, 255, -1);
-  do_test (8 - i, 2 * i, 8 << i, 16 << i, 127, 0);
-  do_test (8 - i, 2 * i, 8 << i, 16 << i, 127, 1);
-  do_test (2 * i, i, 8 << i, 16 << i, 255, 0);
-  do_test (2 * i, i, 8 << i, 16 << i, 255, 1);
-}
-
-  do_test_limit (0, 0, 0, 0, 127, 0);
-  do_test_limit (4, 0, 21, 20, 127, 0);
-  do_test_limit (0, 4, 21, 20, 127, 0);
-  do_test_limit (8, 0, 25, 24, 127, 0);
-  do_test_limit (0, 8, 25, 24, 127, 0);
+  do_test (0, 0, 8 << i, 16 << i, MIDCHAR,