ansible: osmo-gsm-tester host needs patchelf > 0.9.1
So today while patching srsue with debian 9 (which ships with package patchelf 0.9-1+b1), I got into following issue:
$ patchelf --set-rpath /osmo-gsm-tester-srsue/srslte/lib /osmo-gsm-tester-srsue/srslte/bin/srsue warning: working around a Linux kernel bug by creating a hole of 124461056 bytes in ‘/osmo-gsm-tester-srsue/srslte/bin/srsue’ maximum file size exceeded
The command returns 1 and the rpath is not changed.
reading a bit about the issue it seems to be a known patchelf bug fixed in newer versions: https://github.com/NixOS/patchelf/issues/47
I had to test with a newer patchelf to have it working: version 0.9+52 which ships in current stable (buster, debian 10).
So I already installed that deb package (patchelf_0.9+52.20180509-1_amd64.deb) into osmo-gsm-tester Prod setup slave host (where we run stuff like srsue and osmo-trx) since that's where it's needed.
This task is created as a reminder to add that manual installation of the package in ansible (osmo-ci.git).
It seems that 0.9+52 is causing issues on srsepc binary, during run, it fails with:
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion `needed != NULL' failed
Same goes for patchelf_0.10-2_amd64.deb.
So it seems we might need to patch 0.9+1 with https://github.com/NixOS/patchelf/commit/f6886c2c33a1cf8771163919f3d20f6340c0ce38 ?
#3 Updated by laforge about 1 year ago
On Wed, Feb 05, 2020 at 06:29:17PM +0000, pespin [REDMINE] wrote:
It seems srsepc is not happy with newer patchelf while srsue requires a newer patchelf... we may end up with 2 installed patchelf...
Isn't this something that should be filed as upstream bug [and hopefully resolved upstream]?
#4 Updated by pespin about 1 year ago
Confirmed: I'm currently using last released tarball for srspec and still must use old debian9 patchelf to hav eeverything working.
Indeed, I need to investigate and submit the bug appearing on new release to upstream (the old one is known and fixed in the new release).
While it's not fixed, we must build and install manually the new release and use it only for srsue (I already added code to osmo-gsm-tester to support that).
#6 Updated by pespin about 1 year ago
- Status changed from New to Feedback
- % Done changed from 0 to 90
We are meanwhile requiring a manually built patchelf-0.10 only used so far to patch srsue. It's add to ansible scripts here:
Most binaries (osmo-ggsn, rest of srs binaries) are patched with patchelf 0.9-1 coming with debian9. If at some point we move to debian10, then we need to build manually a patchelf 0.9 and use it at least for srsepc.
It seems the issue is already fixed in patchelf by https://github.com/NixOS/patchelf/pull/202
Release patchelf 0.11 was already released and it already contains this fix.
So to me the best is going to be requiring patchelf >= 0.11 in osmo-gsm-tester in setups where srsLTE binaries are used.
I'll give it a try soon.
Tested in our prod setup and 0.11 looks fine for both 2G and 4G binaries.
https://gerrit.osmocom.org/c/osmo-ci/+/19015 ansible/gsm-tester: Install patchelf 0.11 on PATH
https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 Drop using patchelf out of PATH