scripts/pahole-flags.sh change return to exit 0

Bug #2035123 reported by David Thompson
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
Fix Committed
Medium
Matthew Ruffell
linux-bluefield (Ubuntu)
Triaged
Undecided
Unassigned
Jammy
Fix Committed
Medium
Matthew Ruffell

Bug Description

BugLink: https://bugs.launchpad.net/bugs/2035123

[Impact]

When building the Jammy linux-bluefield kernel tree on a system without pahole installed, the following warning is emitted:

./scripts/pahole-flags.sh: line 7: return: can only `return' from a function or sourced script

scripts/pahole-flags.sh attempts to return from an if statement that is not within a function, and generates a warning.

The fix is straightforward, changing return to an exit 0.

--- a/scripts/pahole-flags.sh
+++ b/scripts/pahole-flags.sh
@@ -4,7 +4,7 @@
 extra_paholeopt=

 if ! [ -x "$(command -v ${PAHOLE})" ]; then
- return
+ exit 0
 fi

[Testcase]

Clone the linux-bluefield kernel tree and build it on a arm64 system without
pahole installed.

A test kernel is available with the fix applied in:

https://launchpad.net/~mruffell/+archive/ubuntu/sf368560-test

Both linux-bluefield and ubuntu-jammy build correctly.

[Fix]

This was fixed by Linus Torvalds in the following merge commit:

commit fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4
Merge: bfc484fe6abb 84882cf72cd7
Author: Linus Torvalds <email address hidden>
Date: Tue Nov 2 06:20:58 2021 -0700
Subject: Merge tag 'net-next-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4

Note, the original commit does not have the fix included:

commit 9741e07ece7c247dd65e1aa01e16b683f01c05a8
Author: Jiri Olsa <email address hidden>
Date: Fri Oct 29 14:57:29 2021 +0200
Subject: kbuild: Unify options for BTF generation for vmlinux and modules
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9741e07ece7c247dd65e1aa01e16b683f01c05a8

The Ubuntu kernel cherry-picked the original commit and did not pick up the
silent fix made in the merge commit. Submitting the silent fix as a SAUCE patch
with changelog describing the change.

Note: I know SAUCE patches are bad, but in this scenario, to revert the initial commit and re-apply the fixed version would require us to revert two additional dependency commits, making six patches to review, vs, a one line change in a SAUCE commit that has a real changelog entry.

[Where problems could occur]

The Ubuntu kernel is built with pahole enabled, and requires pahole to be installed as a build dependency. It is extremely unlikely that any users are disabling pahole at build time, apart from linux-bluefield engineers.

If a regression were to occur, engineers would see errors during build time about scripts/pahole-flags.sh not executing properly.

[Other info]

Linus remarked about the issue in the following lkml discussion:

https://lore.kernel<email address hidden>/
https://lore.kernel<email address hidden>/

This was silently Incorporated into the linux-stable commit:

commit 0baced0e0938f2895ceba54038eaf15ed91032e7 5.15.y
From: Jiri Olsa <email address hidden>
Date: Sun, 4 Sep 2022 15:19:00 +0200
Subject: kbuild: Unify options for BTF generation for vmlinux and modules
Link: https://github.com/gregkh/linux/commit/0baced0e0938f2895ceba54038eaf15ed91032e7

Revision history for this message
dann frazier (dannf) wrote :

It appears that Linus applied a fix for this directly in a merge commit:
  https://github.com/torvalds/linux/commits/fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4

When the change with this bug was backported to stable, the fix was squashed. But we appear to have cherry-picked the version from mainline instead of the one from stable which had the bug.

Changed in linux-bluefield (Ubuntu):
status: New → Triaged
dann frazier (dannf)
Changed in linux (Ubuntu Jammy):
status: New → Triaged
Changed in linux-bluefield (Ubuntu Jammy):
status: New → Triaged
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 2035123

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
summary: - scripts/pahole-flags.sh needs upstream fix
+ scripts/pahole-flags.sh change return to exit 0
description: updated
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
Changed in linux (Ubuntu Jammy):
status: Triaged → In Progress
Changed in linux-bluefield (Ubuntu Jammy):
status: Triaged → In Progress
Changed in linux (Ubuntu Jammy):
importance: Undecided → Medium
Changed in linux-bluefield (Ubuntu Jammy):
importance: Undecided → Medium
Changed in linux (Ubuntu Jammy):
assignee: nobody → Matthew Ruffell (mruffell)
Changed in linux-bluefield (Ubuntu Jammy):
assignee: nobody → Matthew Ruffell (mruffell)
description: updated
Revision history for this message
Matthew Ruffell (mruffell) wrote :
Changed in linux-bluefield (Ubuntu Jammy):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-bluefield/5.15.0-1029.31 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-bluefield' to 'verification-done-jammy-linux-bluefield'. If the problem still exists, change the tag 'verification-needed-jammy-linux-bluefield' to 'verification-failed-jammy-linux-bluefield'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-bluefield-v2 verification-needed-jammy-linux-bluefield
Stefan Bader (smb)
Changed in linux (Ubuntu Jammy):
status: In Progress → Fix Committed
Revision history for this message
Matthew Ruffell (mruffell) wrote :

Performing verification for Jammy. David Thompson has tested the Ubuntu-bluefield-5.15.0-1029.31 git tag on a arm64 system, and built a kernel successfully, with no more pahole warnings occurring.

Marking verified for linux-bluefield.

tags: added: verification-done-jammy-linux-bluefield
removed: verification-needed-jammy-linux-bluefield
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux/5.15.0-90.100 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux' to 'verification-done-jammy-linux'. If the problem still exists, change the tag 'verification-needed-jammy-linux' to 'verification-failed-jammy-linux'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-v2 verification-needed-jammy-linux
Revision history for this message
Matthew Ruffell (mruffell) wrote :

Performing verification for Jammy. I checked out the Ubuntu-5.15.0-90.100 git tag from the source repository on an arm64 system, and made sure that pahole was removed. I completed a build and looked at the build log, and there were no more pahole warnings.

Marking verified for jammy.

tags: added: verification-done-jammy-linux
removed: verification-needed-jammy-linux
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.