[Ubuntu 22.04] smc_run does not work, libsmc-preload.so cannot be preloaded
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Skipper Bug Screeners | ||
smc-tools (Ubuntu) |
Fix Released
|
High
|
Frank Heimes | ||
Focal |
Invalid
|
High
|
Frank Heimes | ||
Jammy |
Fix Released
|
High
|
Asa Mirzaieva | ||
Kinetic |
Won't Fix
|
High
|
Frank Heimes | ||
Lunar |
Fix Released
|
High
|
Frank Heimes |
Bug Description
SRU Justification:
==================
[ Impact ]
* The smc_run tools does not work since libsmc-preload.so is placed
in the wrong folder (/usr/lib64/ instead of /usr/lib/).
* smc_run ping <ip>
ERROR: ld.so: object 'libsmc-preload.so' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored.
PING 172.18.39.17 (172.18.39.17) 56(84) bytes of data.
[ Test Plan ]
* Setup an Ubuntu on s390x system with access to RoCE Express adapters.
* Setup a network for RoCE (RDMA).
* Use smc_run to ding a different adapter
(can also be done from one port to a second port of the same adapter)
smc_run ping <ip>
[ Where problems could occur ]
* A change in the Makefile is sufficient.
* This is based on an upstream commit
and affects Ubuntu only.
* Problems could occur in case people adapted the wrong path
in their code/scripts manually.
[ Fix ]
* Add lsb-release as Build-Depends to debian/control, since it's not
installed by default in all build environments, but the lsb_release
command is used in the Makefile.
* Patch the Makefile with upstream commit
'[PATCH] adjust default library path for Ubuntu'
46f397208fa0
[ Other Info ]
* Affects focal and jammy.
__________
---Problem Description---
[Ubuntu 22.04] smc_run does not work, libsmc-preload.so cannot be preloaded
=======
The reason for this is that the aforementioned shared object is installed under: /usr/lib64/
Which is AFAICT not what we want, because AFAIU it violates the Debian Policy Manual (https:/
Interestingly the upstream Make file does try to detect if we are run on Ubuntu, and choose the install path accordingly.
Hereby it relies on "lsb_release -si" returning "Ubuntu", which may or may not be a good idea -- I don't know.
In any case if the upstream Makefile does not suit Ubuntu/Debian, then the packager is ought to patch it.
Thus in my opinion this is a packaging problem.
Contact Information = <email address hidden>
---uname output---
Linux t3545018.lnxne.boe 5.15.0-60-generic #66-Ubuntu SMP Fri Jan 20 14:30:43 UTC 2023 s390x s390x s390x GNU/Linux
Machine Type = LPAR
---Debugger---
A debugger is not configured
---Steps to Reproduce---
$ smc_run ping 172.18.39.17
ERROR: ld.so: object 'libsmc-preload.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
PING 172.18.39.17 (172.18.39.17) 56(84) bytes of data.
BTW
$ LD_PRELOAD=
does work as expected.
Userspace tool common name: smc_run
The userspace tool has the following bit modes: na
Userspace rpm: smc-tools_
Userspace tool obtained from project website: na
*Additional Instructions for <email address hidden>:
-Attach ltrace and strace of userspace application.
tags: | added: architecture-s39064 bugnameltc-201924 severity-high targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
affects: | linux (Ubuntu) → smc-tools (Ubuntu) |
Changed in ubuntu-z-systems: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
importance: | Undecided → High |
Changed in smc-tools (Ubuntu): | |
importance: | Undecided → High |
Changed in smc-tools (Ubuntu Lunar): | |
assignee: | Skipper Bug Screeners (skipper-screen-team) → Frank Heimes (fheimes) |
Changed in smc-tools (Ubuntu Kinetic): | |
assignee: | nobody → Frank Heimes (fheimes) |
Changed in smc-tools (Ubuntu Jammy): | |
assignee: | nobody → Frank Heimes (fheimes) |
Changed in smc-tools (Ubuntu Focal): | |
assignee: | nobody → Frank Heimes (fheimes) |
Changed in smc-tools (Ubuntu Kinetic): | |
importance: | Undecided → High |
Changed in smc-tools (Ubuntu Jammy): | |
importance: | Undecided → High |
Changed in smc-tools (Ubuntu Focal): | |
importance: | Undecided → High |
description: | updated |
Changed in smc-tools (Ubuntu Lunar): | |
status: | In Progress → Fix Committed |
Changed in smc-tools (Ubuntu Kinetic): | |
status: | New → In Progress |
description: | updated |
description: | updated |
Changed in smc-tools (Ubuntu Jammy): | |
status: | New → In Progress |
assignee: | Frank Heimes (fheimes) → Asa Mirzaieva (asaly12) |
tags: |
added: targetmilestone-inin2204 removed: targetmilestone-inin--- |
Changed in smc-tools (Ubuntu Focal): | |
status: | New → In Progress |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Released |
tags: |
added: verification-done removed: verification-needed |
Looks like upstream assumes that the default library path is lib64 for s390x - which is the case for I think RH and SLES, but on Debian and Ubuntu lib is the default location for 64-bit s309x libraries.
I remember vaguely that we had to fix it already in the past ?! maybe in a different package...
But ideally upstream should differentiate and check for the different distros - let's see what the best approach is ...