[Bug runtime/32931] New: On Fedora Rawhide, 42, 41, and 40 timeout.stp example fails to build because runs out of memory

wcohen at redhat dot com sourceware-bugzilla@sourceware.org
Fri May 2 19:16:01 GMT 2025


https://sourceware.org/bugzilla/show_bug.cgi?id=32931

            Bug ID: 32931
           Summary: On Fedora Rawhide, 42, 41, and 40 timeout.stp example
                    fails to build because runs out of memory
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: runtime
          Assignee: systemtap at sourceware dot org
          Reporter: wcohen at redhat dot com
  Target Milestone: ---

When reviewing the testsuite results on various distributions I found that
timeout.stp example was failing to build because gcc was killed due to running
out of memory.  The timeout.stp example builds and runs fine on RHEL8 and
RHEL9.

Specifics of what running the tests on:

$ uname -a; rpm -q gcc
Linux rawhide 6.15.0-0.rc3.20250425git02ddfb981de8.32.fc43.x86_64 #1 SMP
PREEMPT_DYNAMIC Fri Apr 25 19:15:22 UTC 2025 x86_64 GNU/Linux
gcc-15.1.1-1.fc43.x86_64

With a local build of the current systemtap git repository checkout:

$ ../install/bin/stap -p4 -v testsuite/systemtap.examples/profiling/timeout.stp 
Pass 1: parsed user script and 615 library scripts using
1170088virt/849956res/16380shr/851716data kb, in 1290usr/400sys/886real ms.
Pass 2: analyzed script: 22 probes, 12 functions, 100 embeds, 15 globals using
1334828virt/1015936res/17684shr/1016456data kb, in 2220usr/60sys/2322real ms.
Pass 3: translated to C into
"/tmp/stap6CHIsB/stap_f12eda4334278cf77faa7b4f5db31814_102246_src.c" using
1334828virt/1016128res/17876shr/1016456data kb, in 20usr/0sys/14real ms.
make[2]: ***
[/usr/src/kernels/6.15.0-0.rc3.20250425git02ddfb981de8.32.fc43.x86_64/scripts/Makefile.build:203:
stap_f12eda4334278cf77faa7b4f5db31814_102246_src.o] Terminated
make[1]: ***
[/usr/src/kernels/6.15.0-0.rc3.20250425git02ddfb981de8.32.fc43.x86_64/Makefile:2057:
.] Terminated
make: *** [Makefile:260: __sub-make] Terminated
WARNING: kbuild exited with signal: 15 (Terminated)
Pass 4: compiled C into "stap_f12eda4334278cf77faa7b4f5db31814_102246.ko" in
21710usr/3460sys/52825real ms.
Pass 4: compilation failed.  [man error::pass4]
Kernel version 6.15.0 is outside tested range 3.10 ... 6.15-rc

When the C code for the module is being compiled the process is attempting to
use 5+GB of memory.  The offending code in the systemtap script is in the
prometheus probe.  If the handler code in probe prometheus is removed,
timeout.stp works as expected on Fedora rawhide.  Also if the prom_arr arity is
is reduced to 3 keys or fewer and the associated @rometheus_dump_array7 is
adjusted accordingly timeout.stp works as expected.  Comparing the stap*_src.i
files when changing the arity of the prometheus array shows that the C
preprocessing expansion is causing the code to get very large.  With a fix to
tapset/prometheus.stpm for the 4 arity size, the largest that can be compiled
the .i file is 16MB in size vs 5.4M for the 3 arity sized version.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Systemtap mailing list