Upgrade irqbalance to 1.9.5 and add patches to fix ENOSPC handling#16746
Upgrade irqbalance to 1.9.5 and add patches to fix ENOSPC handling#16746suresh-thelkar wants to merge 2 commits into3.0-devfrom
Conversation
a6c9ee9 to
b448d36
Compare
|
@microsoft/cbl-mariner-stable-maintainers, Could you please help review this PR? We are planning to include it in the upcoming monthly release, hence requesting a priority review. |
|
Buddy build after recent force push. |
|
Marking this PR as a draft for now to test an edge case identified which does not come in normal scenarios. |
b448d36 to
6bf2d09
Compare
|
Buddy build results after the recent push to GitHub are given below. |
|
Note on PR Checks: One of the ptests for libguestfs is failing, which is a known issue and not related to irqbalance. |
kgodara912
left a comment
There was a problem hiding this comment.
Patch matched with both the upstream merged PRs of irqbalancer. The analysis of patch with AI says that the patch is good. The extra changes are few corner cases in original patch and are accepted at upstream quickly. Buddy build is successful.
thanks for the review and sign off. |
|
|
||
| %install | ||
| make DESTDIR=%{buildroot} install | ||
| rm -rf %{buildroot}%{_prefix}/etc |
There was a problem hiding this comment.
question(blocking): Could you double-check the generated irqbalance.service in the built RPM? In 1.9.5, upstream’s service template uses EnvironmentFile=@pkgconfdir@/irqbalance.env, and pkgconfdir appears to default to $prefix/etc/default (/usr/etc/default with --prefix=/usr). This
PR then removes %{buildroot}%{_prefix}/etc and installs the env file as /etc/sysconfig/irqbalance.
I’m worried the final unit may require /usr/etc/default/irqbalance.env while the RPM only ships /etc/sysconfig/irqbalance, which could make the service fail to start. The old sed for /path/to/irqbalance.env may no longer match 1.9.5.
There was a problem hiding this comment.
question(blocking): Could you double-check the generated
irqbalance.servicein the built RPM? In 1.9.5, upstream’s service template usesEnvironmentFile=@pkgconfdir@/irqbalance.env, andpkgconfdirappears to default to$prefix/etc/default(/usr/etc/defaultwith--prefix=/usr). This PR then removes%{buildroot}%{_prefix}/etcand installs the env file as/etc/sysconfig/irqbalance.I’m worried the final unit may require
/usr/etc/default/irqbalance.envwhile the RPM only ships/etc/sysconfig/irqbalance, which could make the service fail to start. The old sed for/path/to/irqbalance.envmay no longer match 1.9.5.
Thanks for the review and catching this. Modified the spec file to fix this packaging issue at the configure step instead of post-install:
- Pass
--with-pkgconfdir=%{_sysconfdir}/sysconfigand--sysconfdir=%{_sysconfdir}so configure substitutes@pkgconfdir@→/etc/sysconfigdirectly in the unit. Nothing ever lands under/usr/etc, so therm -rf %{buildroot}%{_prefix}/etcis gone. - Replaced the obsolete
/path/to/irqbalance.envsed with one that matches the actual 1.9.5 substituted path (/etc/sysconfig/irqbalance.env→/etc/sysconfig/irqbalance), keeping the historical env file path for upgrade compatibility. - Install the unit manually (
make installskips it when pkg-config can't resolvesystemdsystemunitdir).
Also verified the following after installing the RPM and once again completed all the testing. Everything went well.
sthelkar@TDC4164394045 [ /workspace/AfterUpstrmMerge ]$ rpm -q irqbalance
irqbalance-1.9.5-1.azl3.x86_64
sthelkar@TDC4164394045 [ /workspace/AfterUpstrmMerge ]$ sudo systemctl restart irqbalance
sthelkar@TDC4164394045 [ /workspace/AfterUpstrmMerge ]$ systemctl is-active irqbalance
active
sthelkar@TDC4164394045 [ /workspace/AfterUpstrmMerge ]$ sudo journalctl -u irqbalance -b --no-pager
Apr 30 05:14:54 TDC4164394045 systemd[1]: Started irqbalance.service - irqbalance daemon.
Apr 30 05:31:42 TDC4164394045 systemd[1]: Stopping irqbalance.service - irqbalance daemon...
Apr 30 05:31:42 TDC4164394045 systemd[1]: irqbalance.service: Deactivated successfully.
Apr 30 05:31:42 TDC4164394045 systemd[1]: Stopped irqbalance.service - irqbalance daemon.
Apr 30 05:31:42 TDC4164394045 systemd[1]: Started irqbalance.service - irqbalance daemon.
Service starts cleanly, no EnvironmentFile not found or non-absolute-path warnings.
There was a problem hiding this comment.
I've once again ran the buddy build. Here are the results -
https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1106074&view=results
There was a problem hiding this comment.
@christopherco, I've addressed your comments. Can you please take a look at the latest commit and let me know if you have any further feedback.
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
What does the PR accomplish, why was it needed?
Change Log
Does this affect the toolchain?
NO
Associated issues
Links to CVEs
Test Methodology