Bug 2134397

Summary: libtraceevent build is missing symbols
Product: Red Hat Enterprise Linux 9 Reporter: Michael Petlan <mpetlan>
Component: libtraceeventAssignee: Michael Petlan <mpetlan>
Status: CLOSED ERRATA QA Contact: Qiao Zhao <qzhao>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.2CC: acme, bhu, ihuguet, jbenc, kernel-general-qe, lilu, mmalik, xuwei, zsun
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libtraceevent-1.5.3-3.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-09 08:15:04 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 Michael Petlan 2022-10-13 11:01:00 UTC
Description of problem:

I totally don't know how that happened, but the library built in brew is missing some API symbols. When I build the package myself via `rpmbuild --rebuild`, it is OK. The same applies for the centos-stream build in KOJI -- the build is OK. I have built a scratchbuild in brew and it is OK. So it appears that something must have been broken in brew at the time the build was being built.

Version-Release number of selected component (if applicable):
libtraceevent-1.5.3-1.el9 from brew

How reproducible:
100% -- the library just does not contain some symbols

Steps to Reproduce:
1. readelf -Ws /usr/lib64/libtraceevent.so.1.5.3 | grep tep_filter
2.
3.

Actual results:
no entries are found

Expected results:
10 entries are found:

    72: 0000000000014c80    33 FUNC    GLOBAL DEFAULT   13 tep_filter_free
    73: 0000000000015810   492 FUNC    GLOBAL DEFAULT   13 tep_filter_copy
    95: 0000000000015e40   260 FUNC    GLOBAL DEFAULT   13 tep_filter_match
   104: 0000000000012790   200 FUNC    GLOBAL DEFAULT   13 tep_filter_remove_event
   113: 0000000000013f40    59 FUNC    GLOBAL DEFAULT   13 tep_filter_alloc
   115: 0000000000012980   354 FUNC    GLOBAL DEFAULT   13 tep_filter_compare
   122: 0000000000013220    86 FUNC    GLOBAL DEFAULT   13 tep_filter_strerror
   160: 0000000000015160  1706 FUNC    GLOBAL DEFAULT   13 tep_filter_add_filter_str
   174: 0000000000012920    85 FUNC    GLOBAL DEFAULT   13 tep_filter_make_string
   197: 0000000000012860    93 FUNC    GLOBAL DEFAULT   13 tep_filter_reset


Additional info:

Link to the broken BREW build:
https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=2178971

Link to the correct build in KOJI:
https://kojihub.stream.centos.org/koji/buildinfo?buildID=25343

Link to the correct scratchbuild in BREW:
https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=48278346

It's also worth of noting that there were some outages in Westford, and also that previous build in brew was unsuccessful, because the i686 variant could not be linked. I was investigating it and was totally out of ideas, so I just kicked off the build again with no source changes. It passed and linked i686 libs well. However, now it seems that this build was also broken, but in a different way.

Let's just bump NVR and rebuild it, since from the scratchbuild above, and from the koji build for c9s, it is highly probable, that correct library will be build this time.

Comment 3 Michael Petlan 2022-10-14 07:26:56 UTC
The problem is not in the rebase itself, for me it works on my testing box well:

# rpmquery libtraceevent trace-cmd 
libtraceevent-1.5.3-1.el9.x86_64
trace-cmd-2.9.2-9.el9.x86_64

[root@intel-sharkbay-mb-01 ~]# systemctl start trace-cmd 
[root@intel-sharkbay-mb-01 ~]# systemctl status trace-cmd 
● trace-cmd.service - trace-cmd Flightrecorder
     Loaded: loaded (/usr/lib/systemd/system/trace-cmd.service; disabled; vendor preset: disabled)
     Active: active (exited) since Fri 2022-10-14 03:21:09 EDT; 16s ago
    Process: 125560 ExecStart=/usr/bin/trace-cmd start $OPTS (code=exited, status=0/SUCCESS)
   Main PID: 125560 (code=exited, status=0/SUCCESS)
        CPU: 54ms

The problem is in brew, since some strange issue has broken the package build. Otherwise, it would normally work.

The example mentioned in this comment works, because the libtraceevent-1.5.3-1.el9 used here is my own local "rpmbuild --rebuild" one.

Comment 4 Ziqian SUN (Zamir) 2022-10-14 07:48:57 UTC
Oh thanks for the info.

It actually reminded me that I also met missing symbols when I update to 1.5.3 in Fedora. I checked the log and see when I disable parallel build the issue actually goes away in Fedora. So maybe you can also check if disable parallel build will fix the issue in RHEL or not

https://src.fedoraproject.org/rpms/libtraceevent/c/17c3a0d638abcf502d1311dd8d50f59a7b6112b4?branch=rawhide

Comment 8 Ziqian SUN (Zamir) 2022-10-19 01:19:12 UTC
*** Bug 2135774 has been marked as a duplicate of this bug. ***

Comment 9 Ziqian SUN (Zamir) 2022-10-19 01:22:31 UTC
For all who have been affected and need to use trace-cmd, you can make trace-cmd work again by temporary downgrade to libtraceevent-1.1.1-8.el9 before a permanent solution is applied.

Comment 10 Jiri Benc 2022-10-19 13:06:25 UTC
Any ETA for this, please? This is blocking us from merging *all* kernel MRs touching networking, since lnst testing depends on brew builds.

Comment 11 Michael Petlan 2022-10-19 14:31:04 UTC
Posted a new MR with disabling parallel building. If that goes well, it should be solved in a day.

Comment 15 Ziqian SUN (Zamir) 2022-10-26 02:59:16 UTC
*** Bug 2137498 has been marked as a duplicate of this bug. ***

Comment 20 errata-xmlrpc 2023-05-09 08:15:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (libtraceevent bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2465