Project

General

Profile

Bug #4389

ansible: osmo-gsm-tester host needs patchelf > 0.9.1

Added by pespin over 1 year ago. Updated 11 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
02/05/2020
Due date:
% Done:

90%

Spec Reference:

Description

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).
https://packages.debian.org/buster/amd64/patchelf

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).

Update:
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 ?

Associated revisions

Revision 3cee04dd (diff)
Added by pespin 7 months ago

ogt: Update installed patchelf to required version 0.11

osmo-gsm-tester requires patchelf 0.11 since a while ago to solve some
bugs on older versions. See osmo-ci
d276db78afbb3f28fc6a4a949bca131d0cfac1d4 for more information.

Related: OS#4389

Change-Id: I3a0c2168420d2a4ee2302a191824f571ec17786b

History

#1 Updated by pespin over 1 year ago

It seems srsepc is not happy with newer patchelf while srsue requires a newer patchelf... we may end up with 2 installed patchelf...

#2 Updated by pespin over 1 year ago

since srsue does stuff with netns, we may need to be root anyway, so it may not be worth it.

#3 Updated by laforge over 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).

#5 Updated by pespin about 1 year ago

I created an upstream bug here, since the issue is still present in current patchelf master:
https://github.com/NixOS/patchelf/issues/192

#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:
https://gerrit.osmocom.org/c/osmo-ci/+/17128

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.

#7 Updated by pespin 11 months ago

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.

#8 Updated by pespin 11 months ago

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

#9 Updated by pespin 11 months ago

  • Status changed from Feedback to Resolved

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)