Bug 2023972

Summary: systemtap fails to run with various compile/missing symbols error
Product: Red Hat Enterprise Linux 8 Reporter: Chung <cchung>
Component: systemtapAssignee: Frank Ch. Eigler <fche>
systemtap sub component: system-version QA Contact: qe-baseos-tools-bugs
Status: CLOSED DUPLICATE Docs Contact:
Severity: high    
Priority: unspecified CC: lberk, mcermak, mjw
Version: 8.6   
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-16 21:20:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Chung 2021-11-16 21:17:32 UTC
Description of problem:

stap fail to run with the following error with:

/usr/share/systemtap/runtime/stp_utrace.c:38:21: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?

Version-Release number of selected component (if applicable):

4.18.0-348.6.el8

How reproducible:


Steps to Reproduce:
1. 1mintutetip 1MT-RHEL-8.6.0-20211108.2
2. Login to the host, update the rhel.repo to RHEL-8.6.0-20211112.1, turned on rhel-debuginfo.
3. yum update and yum install kernel-debuginfo
4. create a file with simple-test.stp

# Script to test basic System Tap functionality.

global tickCounter = 0;
global vmallocCounter = 0;

function sayHello()
%{
    printk("systemtap script says hello\n");
%}

probe begin
{
    sayHello();
    printf("hello\n");
}

probe timer.ms(100)
{
    tickCounter++;
}

function sayGoodbye()
%{
    printk("systemtap script says goodbye\n");
%}

// Force use of some basic debug info.
probe kernel.function("vmalloc")
{
    vmallocCounter++;
}

probe end
{
    sayGoodbye();
    printf("counter = %d\nvmalloc = %d\nbye!\n", tickCounter, vmallocCounter);
}

5. run:  stap -v -F   -g --disable-cache  simple-test.stp


Actual results:

Pass 3: translated to C into "/tmp/stapydegvc/stap_4827_src.c" using 307156virt/150144res/13716shr/136320data kb, in 40usr/70sys/110real ms.
In file included from /usr/share/systemtap/runtime/linux/task_finder2.c:4,
                 from /usr/share/systemtap/runtime/linux/task_finder.c:17,
                 from /usr/share/systemtap/runtime/linux/runtime.h:256,
                 from /usr/share/systemtap/runtime/runtime.h:26,
                 from /tmp/stapydegvc/stap_4827_src.c:21:
/usr/share/systemtap/runtime/stp_utrace.c: In function ‘utrace_do_stop’:
/usr/share/systemtap/runtime/stp_utrace.c:38:14: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
  do { (tsk)->state = (state_value); } while (0)
              ^~~~~
/usr/share/systemtap/runtime/stp_utrace.c:1246:4: note: in expansion of macro ‘__stp_set_task_state’
    __stp_set_task_state(target, TASK_TRACED);
    ^~~~~~~~~~~~~~~~~~~~
/usr/share/systemtap/runtime/stp_utrace.c: In function ‘utrace_wakeup’:
/usr/share/systemtap/runtime/stp_utrace.c:1266:11: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
   target->state = TASK_STOPPED;
           ^~~~~

Expected results:

Pass 1: parsed user script and 483 library scripts using 108160virt/88524res/12512shr/75504data kb, in 170usr/40sys/234real ms.
Pass 2: analyzed script: 4 probes, 2 functions, 0 embeds, 2 globals using 170396virt/151684res/13760shr/137740data kb, in 1550usr/350sys/9849real ms.
Pass 3: translated to C into "/tmp/stap8Z8k6B/stap_250212_src.c" using 170396virt/151816res/13892shr/137740data kb, in 20usr/90sys/114real ms.
Pass 4: compiled C into "stap_250212.ko" in 16760usr/3720sys/11779real ms.
Pass 5: starting run.

Disconnecting from systemtap module.
To reconnect, type "staprun -A stap_250924"
Pass 5: run completed in 10usr/30sys/46real ms.

Additional info:

This happen with 4.18.0-348.6.el8 that was updated with 20211112.1
earlier version worked.

Comment 1 Frank Ch. Eigler 2021-11-16 21:20:12 UTC

*** This bug has been marked as a duplicate of bug 2022834 ***