gap-packages / guava

GAP package guava - computations relative to error-correcting codes
https://gap-packages.github.io/guava
Other
13 stars 7 forks source link

Guava test suite fails with glibc 2.40 #98

Closed schopin-pro closed 3 months ago

schopin-pro commented 3 months ago

Hi,

While testing the Ubuntu archive with the newest glibc for the upcoming 24.10 release, we've noticed that the gap-guava tests fail on x86-64 against that new version of glibc.

You can test using a Ubuntu Oracular container, e.g lxc launch ubuntu-daily:oracular and enabling oracular-proposed in /etc/apt/sources.list.d/ubuntu.sources, then apt update && apt install -t oracular-proposed libc6.

I suspect it's a race condition somewhere, since the bug doesn't show when compiling with ThreadSanitizer:

oracular-dev in …/guava on  master
at 11:43:37 ⬢ [Systemd] ❯ make clean > /dev/null

oracular-dev in …/guava on  master
at 11:43:47 ⬢ [Systemd] ❯ make -j9 &> /dev/null

oracular-dev in …/guava on  master
at 11:44:08 ⬢ [Systemd] ❯ echo 'SetPackagePath("guava", Directory(".")); LoadPackage("guava"); Test(Filename(DirectoriesPackageLibrary("guava", "tst"), "guava.tst"));' | gap
 ┌───────┐   GAP 4.13.1 of 2024-06-11
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-pc-linux-gnu-default64-kv9
 Configuration:  gmp 6.3.0, GASMAN, readline
 Loading the library and packages ...
 Packages:   GAPDoc 1.6.7
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap>
   ____                             |
  /                \          /   --+--  Version 3.19
 /       |     | |\ \        / /|   |
|    __  |     | | \ \      / / |          the GUAVA Group
|      | |     | |--\ \    / /--|
 \     | |     | |   \ \  / /   |
  \___/   \___/  |    \ \/ /    |

 Homepage: https://gap-packages.github.io/guava
 Report issues at https://github.com/gap-packages/guava/issues
true
########> Diff in ./tst/guava.tst:649
# Input is:
p := CodeIsomorphism( C1, C2 );
# Expected output:
(2,13,7,10,8,3,5,4,14)(12,15)
# But found:
Syntax error: expression expected in /tmp/gaptempfile.VzsYeY:1
GUAVA_TEMP_VAR :=   &
                   ^
 false
 ########
########> Diff in ./tst/guava.tst:651
# Input is:
C3 := PermutedCode( C1, p );
# Expected output:
a linear [15,5,7]5 permuted code
# But found:
Error, no method found! For debugging hints type ?Recovery from NoMe\
thodFound
Error, no 1st choice method found for `PermutedCode' on 2 arguments
########
########> Diff in ./tst/guava.tst:653
# Input is:
C2 = C3;
# Expected output:
true
# But found:
Error, Variable: 'C3' must have a value
########
guava.tst
msecs: 2153
false
gap> %                                                                                                                                                                                                                                                 
oracular-dev in …/guava on  master took 2s
at 11:44:14 ⬢ [Systemd] ❯ make clean > /dev/null

oracular-dev in …/guava on  master
at 11:44:23 ⬢ [Systemd] ❯ CFLAGS=-fsanitize=thread LDFLAGS=-fsanitize=thread make -j9 &> /dev/null

oracular-dev in …/guava on  master took 4s
at 11:44:30 ⬢ [Systemd] ❯ echo 'SetPackagePath("guava", Directory(".")); LoadPackage("guava"); Test(Filename(DirectoriesPackageLibrary("guava", "tst"), "guava.tst"));' | gap
 ┌───────┐   GAP 4.13.1 of 2024-06-11
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-pc-linux-gnu-default64-kv9
 Configuration:  gmp 6.3.0, GASMAN, readline
 Loading the library and packages ...
 Packages:   GAPDoc 1.6.7
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap>
   ____                             |
  /                \          /   --+--  Version 3.19
 /       |     | |\ \        / /|   |
|    __  |     | | \ \      / / |          the GUAVA Group
|      | |     | |--\ \    / /--|
 \     | |     | |   \ \  / /   |
  \___/   \___/  |    \ \/ /    |

 Homepage: https://gap-packages.github.io/guava
 Report issues at https://github.com/gap-packages/guava/issues
true
guava.tst
msecs: 2160
true
gap> %