https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119607

            Bug ID: 119607
           Summary: [15 regression] glib miscompiled since
                    r15-7895-gb191e8bdecf881
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: needs-source, wrong-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

Created attachment 60970
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60970&action=edit
meson.i686-pc-linux-gnu.x86.ini

All the failing tests involve threads which is a pain. It also only fails with
-m32 so can't use Valgrind, and sanitizers make things work.

I'm going to do the basic bits (comparing objects, getting dumps) but likely
need some help to finish it then, not comfortable debugging threaded
applications yet when the threads are relevant to the problem. I'll say when
I'm at that point.

--

```
$ mkdir ~/bugs/glib && cd ~/bugs/glib
$ wget https://download.gnome.org/sources/glib/2.84/glib-2.84.0.tar.xz
$ tar xvf glib-2.84.0.tar.xz
$ mkdir build && cd build
$ meson setup --native-file ~/scripts/meson/meson.i686-pc-linux-gnu.x86.ini
~/bugs/glib/glib-2.84.0
$ ninja test
[...]
Summary of Failures:

165/384 glib:gobject / signals-refcount4                                      
ERROR            1.22s   killed by signal 6 SIGABRT
194/384 glib:gobject / properties-refcount1                                   
ERROR            1.63s   killed by signal 11 SIGSEGV
175/384 glib:gobject / signals-refcount2                                      
ERROR            1.67s   killed by signal 5 SIGTRAP
210/384 glib:gobject+slow / closure-refcount                                  
ERROR            3.78s   killed by signal 6 SIGABRT
321/384 glib:gio / gsettings                                                  
ERROR            0.56s   killed by signal 5 SIGTRAP
300/384 glib:gio+slow / actions                                               
ERROR            3.59s   killed by signal 5 SIGTRAP

Ok:                372
Fail:              6
Skipped:           6
```

An example failure:
```
$ MESON_TEST_ITERATION=1 MALLOC_PERTURB_=117
G_TEST_BUILDDIR=/home/sam/bugs/glib/build/gobject/tests MALLOC_CHECK_=2
LD_LIBRARY_PATH=/home/sam/bugs/glib/build/gobject:/home/sam/bugs/glib/build/glib
G_DEBUG=gc-friendly G_TEST_SRCDIR=/home/sam/bugs/glib/glib-2.84.0/gobject/tests
G_ENABLE_DIAGNOSTIC=1
/home/sam/bugs/glib/build/gobject/tests/properties-refcount1
TAP version 14
# random seed: R02S95fc5335f798bde46c993a52cc355a49
1..1
# Start of gobject tests
# Start of refcount tests
# .b
# .e
# .c
not ok /gobject/refcount/properties-1 - GLib-GObject-FATAL-CRITICAL:
g_closure_ref: assertion 'closure->ref_count > 0' failed
Bail out!
Segmentation fault         (core dumped) MESON_TEST_ITERATION=1
MALLOC_PERTURB_=117 G_TEST_BUILDDIR=/home/sam/bugs/glib/build/gobject/tests
MALLOC_CHECK_=2
LD_LIBRARY_PATH=/home/sam/bugs/glib/build/gobject:/home/sam/bugs/glib/build/glib
G_DEBUG=gc-friendly G_TEST_SRCDIR=/home/sam/bugs/glib/glib-2.84.0/gobject/tests
G_ENABLE_DIAGNOSTIC=1
/home/sam/bugs/glib/build/gobject/tests/properties-refcount1
```


The failures aren't stable (sometimes segfault, sometimes trap, rarely passes
too). The reliance on threading means it can't be reproduced under rr record
either.

Reply via email to