Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 946937

Summary: games-emulation/dosbox-staging-0.82.0 fails tests
Product: Gentoo Linux Reporter: Agostino Sarubbo <ago>
Component: Current packagesAssignee: Bernard Cafarelli <voyageur>
Status: RESOLVED FIXED    
Severity: normal CC: esigra
Priority: Normal Keywords: TESTFAILURE
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118475
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118396
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 915000, 932474, 948222    
Attachments: build.log
1-testlog.txt

Description Agostino Sarubbo gentoo-dev 2024-12-26 10:38:54 UTC
https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/

Issue: games-emulation/dosbox-staging-0.82.0 fails tests.
Discovered on: amd64 (internal ref: gcc15_tinderbox)
System: GCC-15-SYSTEM (https://wiki.gentoo.org/wiki/Project:Tinderbox/Common_Issues_Helper#GCC-15)

Info about the issue:
https://wiki.gentoo.org/wiki/Project:Tinderbox/Common_Issues_Helper#CF0015
Comment 1 Agostino Sarubbo gentoo-dev 2024-12-26 10:38:55 UTC
Created attachment 914886 [details]
build.log

build log and emerge --info
Comment 2 Agostino Sarubbo gentoo-dev 2024-12-26 10:38:56 UTC
Created attachment 914887 [details]
1-testlog.txt

1-testlog.txt
Comment 3 Agostino Sarubbo gentoo-dev 2024-12-26 10:38:57 UTC
Error(s) that match a know pattern:


 1/24 gtest example                      EXPECTEDFAIL    0.04s   exit status 1
17/24 gtest dos_files                    FAIL            0.64s   killed by signal 11 SIGSEGV
17/24 gtest dos_files            FAIL            0.64s   killed by signal 11 SIGSEGV
23/24 gtest shell_cmds                   FAIL            0.42s   killed by signal 6 SIGABRT
23/24 gtest shell_cmds           FAIL            0.42s   killed by signal 6 SIGABRT
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.13-r1/work/alsa-lib-1.2.13/src/seq/seq_hw.c:531:(snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
Run-time dependency atomic found: NO (tried pkgconfig and cmake)
Run-time dependency zlib-ng found: NO (tried pkgconfig and cmake)
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-26 10:43:45 UTC
gtest shell_cmds has 'free(): invalid pointer' at the end, I don't immediately see where dos_files crashes tho.

Adding to gcc-15 tracker just in case it's related.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-28 14:34:32 UTC
ago, can you hit it with gcc 14?
Comment 6 Agostino Sarubbo gentoo-dev 2025-01-03 20:24:51 UTC
(In reply to Sam James from comment #5)
> ago, can you hit it with gcc 14?

no
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-01-14 09:37:33 UTC
Reproduced.
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-01-14 09:38:54 UTC
shell_cmds:
```
Thread 1 "shell_cmds" received signal SIGSEGV, Segmentation fault.
0x00000000007d972a in SBLASTER::SBLASTER(Section*) ()
(gdb) bt
#0  0x00000000007d972a in SBLASTER::SBLASTER(Section*) ()
#1  0x00000000007d3311 in init_sblaster(Section*) ()
#2  0x000000000056cb95 in Section::ExecuteInit(bool) ()
#3  0x000000000051e565 in DOSBoxTestFixture::SetUp() ()
#4  0x00007ffff7f488c2 in ?? () from /usr/lib64/libgtest.so.1.15.2
#5  0x00007ffff7f4e9d6 in ?? () from /usr/lib64/libgtest.so.1.15.2
#6  0x00007ffff7f243ea in testing::TestInfo::Run() () from /usr/lib64/libgtest.so.1.15.2
#7  0x00007ffff7f4f82b in ?? () from /usr/lib64/libgtest.so.1.15.2
#8  0x00007ffff7f45888 in testing::internal::UnitTestImpl::RunAllTests() () from /usr/lib64/libgtest.so.1.15.2
#9  0x00007ffff7f38437 in testing::UnitTest::Run() () from /usr/lib64/libgtest.so.1.15.2
#10 0x00007ffff7f77abe in main () from /usr/lib64/libgmock_main.so.1.15.2
#11 0x00007ffff7203547 in __libc_start_call_main (main=main@entry=0x7ffff7f77a80 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffe1f8) at ../sysdeps/nptl/libc_start_call_main.h:58
#12 0x00007ffff72035f7 in __libc_start_main_impl (main=0x7ffff7f77a80 <main>, argc=1, argv=0x7fffffffe1f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffe1e8) at ../csu/libc-start.c:360
#13 0x00000000005038b1 in _start ()
```

dos_files:
```
Thread 1 "dos_files" received signal SIGSEGV, Segmentation fault.
0x00000000007b55aa in SBLASTER::SBLASTER(Section*) ()
(gdb) bt
#0  0x00000000007b55aa in SBLASTER::SBLASTER(Section*) ()
#1  0x00000000007af191 in init_sblaster(Section*) ()
#2  0x000000000054a115 in Section::ExecuteInit(bool) ()
#3  0x000000000050ae65 in DOSBoxTestFixture::SetUp() ()
#4  0x00007ffff7f698c2 in ?? () from /usr/lib64/libgtest.so.1.15.2
#5  0x00007ffff7f6f9d6 in ?? () from /usr/lib64/libgtest.so.1.15.2
#6  0x00007ffff7f453ea in testing::TestInfo::Run() () from /usr/lib64/libgtest.so.1.15.2
#7  0x00007ffff7f7082b in ?? () from /usr/lib64/libgtest.so.1.15.2
#8  0x00007ffff7f66888 in testing::internal::UnitTestImpl::RunAllTests() () from /usr/lib64/libgtest.so.1.15.2
#9  0x00007ffff7f59437 in testing::UnitTest::Run() () from /usr/lib64/libgtest.so.1.15.2
#10 0x00007ffff7f77abe in main () from /usr/lib64/libgmock_main.so.1.15.2
#11 0x00007ffff7203547 in __libc_start_call_main (main=main@entry=0x7ffff7f77a80 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffe1f8) at ../sysdeps/nptl/libc_start_call_main.h:58
#12 0x00007ffff72035f7 in __libc_start_main_impl (main=0x7ffff7f77a80 <main>, argc=1, argv=0x7fffffffe1f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffe1e8) at ../csu/libc-start.c:360
#13 0x00000000004fad81 in _start ()
```
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-01-14 09:43:39 UTC
Better backtraces...

dos_files:
```
Thread 1 "dos_files" received signal SIGSEGV, Segmentation fault.
0x0000000000796076 in __gnu_cxx::__exchange_and_add (__mem=0x7ffff729527c <__GI___libc_free+396>, __val=-1) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/atomicity.h:68
68        { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
(gdb) bt
#0  0x0000000000796076 in __gnu_cxx::__exchange_and_add (__mem=0x7ffff729527c <__GI___libc_free+396>, __val=-1) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/atomicity.h:68
#1  __gnu_cxx::__exchange_and_add_dispatch (__mem=0x7ffff729527c <__GI___libc_free+396>, __val=-1) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/ext/atomicity.h:103
#2  std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7ffff7295274 <__GI___libc_free+388>)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h:350
#3  std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h:1070
#4  std::__shared_ptr<MixerChannel, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h:1532
#5  std::__shared_ptr<MixerChannel, (__gnu_cxx::_Lock_policy)2>::operator= (this=0xeee630 <sb+3504>, __r=...)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr_base.h:1628
#6  std::shared_ptr<MixerChannel>::operator= (this=0xeee630 <sb+3504>, __r=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/shared_ptr.h:439
#7  SBLASTER::SBLASTER (this=<optimized out>, conf=0x2da8790) at ../dosbox-staging-0.82.0/src/hardware/sblaster.cpp:3296
#8  0x000000000078fc01 in std::make_unique<SBLASTER, Section*&> () at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/unique_ptr.h:1077
#9  init_sblaster (sec=0x2da8790) at ../dosbox-staging-0.82.0/src/hardware/sblaster.cpp:3514
#10 0x0000000000544565 in Section::ExecuteInit (this=0x2da8790, init_all=init_all@entry=true) at ../dosbox-staging-0.82.0/src/misc/setup.cpp:1360
#11 0x0000000000506515 in DOSBoxTestFixture::SetUp (this=<optimized out>) at ../dosbox-staging-0.82.0/tests/dosbox_test_fixture.h:59
#12 0x00007ffff7f698c2 in ?? () from /usr/lib64/libgtest.so.1.15.2
#13 0x00007ffff7f6f9d6 in ?? () from /usr/lib64/libgtest.so.1.15.2
#14 0x00007ffff7f453ea in testing::TestInfo::Run() () from /usr/lib64/libgtest.so.1.15.2
#15 0x00007ffff7f7082b in ?? () from /usr/lib64/libgtest.so.1.15.2
#16 0x00007ffff7f66888 in testing::internal::UnitTestImpl::RunAllTests() () from /usr/lib64/libgtest.so.1.15.2
#17 0x00007ffff7f59437 in testing::UnitTest::Run() () from /usr/lib64/libgtest.so.1.15.2
#18 0x00007ffff7f77abe in main () from /usr/lib64/libgmock_main.so.1.15.2
#19 0x00007ffff7203547 in __libc_start_call_main (main=main@entry=0x7ffff7f77a80 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffe1f8) at ../sysdeps/nptl/libc_start_call_main.h:58
#20 0x00007ffff72035f7 in __libc_start_main_impl (main=0x7ffff7f77a80 <main>, argc=1, argv=0x7fffffffe1f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffe1e8) at ../csu/libc-start.c:360
#21 0x00000000004f6681 in _start ()
```
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-01-14 09:44:50 UTC
Valgrind:
```
==903347== Conditional jump or move depends on uninitialised value(s)
==903347==    at 0x794D60: ~__shared_count (shared_ptr_base.h:1069)
==903347==    by 0x794D60: ~__shared_ptr (shared_ptr_base.h:1532)
==903347==    by 0x794D60: operator= (shared_ptr_base.h:1628)
==903347==    by 0x794D60: operator= (shared_ptr.h:439)
==903347==    by 0x794D60: SBLASTER::SBLASTER(Section*) (sblaster.cpp:3296)
==903347==    by 0x78FC00: make_unique<SBLASTER, Section*&> (unique_ptr.h:1077)
==903347==    by 0x78FC00: init_sblaster(Section*) (sblaster.cpp:3514)
==903347==    by 0x544564: Section::ExecuteInit(bool) (setup.cpp:1360)
==903347==    by 0x506514: DOSBoxTestFixture::SetUp() (dosbox_test_fixture.h:59)
==903347==    by 0x49348C1: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x493A9D5: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x49103E9: testing::TestInfo::Run() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x493B82A: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x4931887: testing::internal::UnitTestImpl::RunAllTests() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x4924436: testing::UnitTest::Run() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x48B2ABD: main (in /usr/lib64/libgmock_main.so.1.15.2)
==903347==
2025-01-14 09:44:09.839 (   2.217s) [         65097C0]           sblaster.cpp:420   INFO| SB16: Modern DAC output filter enabled
==903347== Conditional jump or move depends on uninitialised value(s)
==903347==    at 0x78DB4A: dsp_change_mode (sblaster.cpp:1241)
==903347==    by 0x78DB4A: dsp_reset() (sblaster.cpp:1412)
==903347==    by 0x795573: SBLASTER::SBLASTER(Section*) (sblaster.cpp:3335)
==903347==    by 0x78FC00: make_unique<SBLASTER, Section*&> (unique_ptr.h:1077)
==903347==    by 0x78FC00: init_sblaster(Section*) (sblaster.cpp:3514)
==903347==    by 0x544564: Section::ExecuteInit(bool) (setup.cpp:1360)
==903347==    by 0x506514: DOSBoxTestFixture::SetUp() (dosbox_test_fixture.h:59)
==903347==    by 0x49348C1: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x493A9D5: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x49103E9: testing::TestInfo::Run() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x493B82A: ??? (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x4931887: testing::internal::UnitTestImpl::RunAllTests() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x4924436: testing::UnitTest::Run() (in /usr/lib64/libgtest.so.1.15.2)
==903347==    by 0x48B2ABD: main (in /usr/lib64/libgmock_main.so.1.15.2)
==903347==
[...]
==903347== Conditional jump or move depends on uninitialised value(s)
==903347==    at 0x79241A: ~__shared_count (shared_ptr_base.h:1069)
==903347==    by 0x79241A: ~__shared_ptr (shared_ptr_base.h:1532)
==903347==    by 0x79241A: ~shared_ptr (shared_ptr.h:175)
==903347==    by 0x79241A: SbInfo::~SbInfo() (sblaster.cpp:110)
==903347==    by 0x52DEBAD: __run_exit_handlers (exit.c:118)
==903347==    by 0x52DEC7B: exit (exit.c:148)
==903347==    by 0x52BF54D: (below main) (libc_start_call_main.h:74)
```
Comment 11 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-01-14 11:49:59 UTC
I get another crash if I build with -Og at teardown. The test also passes if I run just that one test with --gtest_filter, it seems.

I'll bisect GCC first as it's useful info either way.
Comment 12 Larry the Git Cow gentoo-dev 2025-01-26 22:55:18 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a29609acadd782c9ded64a22aeb49f060abb405a

commit a29609acadd782c9ded64a22aeb49f060abb405a
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2025-01-26 22:54:09 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2025-01-26 22:54:40 +0000

    sys-devel/gcc: add 15.0.1_pre20250126
    
    Not sure what #947760 and #948109 are about yet but may be fixed by
    some miscompilation fixes in this.
    
    Bug: https://bugs.gentoo.org/947760
    Bug: https://bugs.gentoo.org/948109
    Closes: https://bugs.gentoo.org/946937
    Closes: https://bugs.gentoo.org/948222
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-devel/gcc/Manifest                      |  2 ++
 sys-devel/gcc/gcc-15.0.1_pre20250126.ebuild | 53 +++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)