Skip to content

t/run/runenv_randseed.t fails randomly on Solaris based systems #21083

Open
@tonycoz

Description

@tonycoz

Module:

Description

Originally from:

https://perl5.test-smoke.org/report/5034054

but reproduced on OpenIndiana

$ uname -a
SunOS openindiana 5.11 illumos-e31d2280b8 i86pc i386 i86pc)

The test fails maybe 1 in 10 times, and most typically just test 9 fails, but occasionally test 7 also fails:

$ ( export LD_LIBRARY_PATH=`pwd` ; cd t ; while ./perl harness -v run/runenv_randseed.t ; do true ; done )
...
run/runenv_randseed.t .. 
ok 1 - Test randomness with PERL_RAND_SEED=1
ok 2 - Test randomness with PERL_RAND_SEED=1
ok 3 - Test randomness with PERL_RAND_SEED=2
ok 4 - Test randomness with PERL_RAND_SEED=2
ok 5 - Got at least 8 different strings
ok 6 - No exceptions forking.
not ok 7 - Works as expected with forks.
# Failed test 7 - Works as expected with forks. at run/runenv_randseed.t line 65
#      got "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE E:MQLTNZGZQB"
# expected "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE D:UGLGAEXFBP E:MQLTNZGZQB"
#  diff at 39
#    after "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE E"
#     have "E:MQLTNZGZQB"
#     want "D:UGLGAEXFBP E:MQLTNZGZQB"
ok 8 - No exceptions forking.
not ok 9 - Works as expected with forks.
1..9
# Failed test 9 - Works as expected with forks. at run/runenv_randseed.t line 65
#      got "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE E:MQLTNZGZQB"
# expected "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE D:UGLGAEXFBP E:MQLTNZGZQB"
#  diff at 39
#    after "A:KNXDITWWJZ B:WDQJGTBJQS C:ZGYCCINIHE E"
#     have "E:MQLTNZGZQB"
#     want "D:UGLGAEXFBP E:MQLTNZGZQB"
Failed 2/9 subtests 

Test Summary Report
-------------------
run/runenv_randseed.t (Wstat: 0 Tests: 9 Failed: 2)
  Failed tests:  7, 9
Files=1, Tests=9,  1 wallclock secs ( 0.02 usr  0.01 sys +  0.09 cusr  0.17 csys =  0.29 CPU)
Result: FAIL
Finished test run at Wed May 10 13:22:04 2023.

The missing value from A-E varies.

Steps to Reproduce

On Solaris-based system, build and:

( export LD_LIBRARY_PATH=`pwd` ; cd t ; while ./perl harness -v run/runenv_randseed.t ; do true ; done )

Expected behavior

Test passed consistently.

Perl configuration

Summary of my perl5 (revision 5 version 37 subversion 12) configuration:
  Commit id: a12bd18fcb7a0a71c07c21e4028d7ee45474a8f9
  Platform:
    osname=solaris
    osvers=2.11
    archname=i86pc-solaris-64
    uname='sunos openindiana 5.11 illumos-e31d2280b8 i86pc i386 i86pc '
    config_args='-des -Dusedevel -Dmake=gmake'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='/usr/bin/gcc'
    ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/gnu/include -m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O'
    cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/gnu/include'
    ccversion=''
    gccversion='11.3.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='/usr/bin/gcc'
    ldflags =' -fstack-protector-strong -L/usr/gnu/lib -m64 '
    libpth=/usr/gcc/11/lib /usr/lib /usr/gnu/lib /usr/ccs/lib
    libs=-lpthread -lsocket -lnsl -lgdbm -ldb -ldl -lm -lc
    perllibs=-lpthread -lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so
    so=so
    useshrplib=true
    libperl=libperl.so
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='  -R /opt/lib/perl5/5.37.12/i86pc-solaris-64/CORE'
    cccdlflags='-fPIC'
    lddlflags=' -shared -m64 -L/usr/gnu/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under solaris
  Compiled at May 10 2023 13:06:23
  @INC:
    lib
    /opt/lib/perl5/site_perl/5.37.12/i86pc-solaris-64
    /opt/lib/perl5/site_perl/5.37.12
    /opt/lib/perl5/5.37.12/i86pc-solaris-64
    /opt/lib/perl5/5.37.12

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions