Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can bcbio customize the user-defined GLIBC directory? #3718

Open
lovebaboon1989 opened this issue Oct 13, 2023 · 7 comments
Open

Can bcbio customize the user-defined GLIBC directory? #3718

lovebaboon1989 opened this issue Oct 13, 2023 · 7 comments

Comments

@lovebaboon1989
Copy link

Hi there,
I'm running bcbio-nextgen pipeline on an old cluster server, and bcbio just reports an error of "GLIBC 2.16 and GLIBC 2.17 not found", I just checked our platform only has GLIBC up to 2.14 version. But I found in my own directory, there is a libc.so.6 file within which I found GLIBC_2.16 and GLIBC_2.17, so I just wonder whether and how I could let bcbio to use my own libc.so.6 file (or add my directory to the default environmental path)? I'm not the root user on the cluster server, so I can't delete or change the libc.so.6 file from the root/lib64/ directory. Many thanks!

@rollf
Copy link
Contributor

rollf commented Oct 16, 2023

Maybe you can simply set the LD_LIBRARY_PATH to the directory where the newer version is placed? Like here. (I'm guessing though).

@lovebaboon1989
Copy link
Author

Hi, thanks for your help, I tried that before but unfortunately it didn't work.

@naumenko-sa
Copy link
Contributor

You could try to build a newer glibc and use LD_PRELOAD?
https://www.jertype.com/upgrading-glibc/

@lovebaboon1989
Copy link
Author

Hi there, I tried using LD_PRELOAD but got the following errors:
Strategy 1.
LD_PRELOAD=/PHShome/wj092/miniconda3/pkgs/glibc-2.28-999/lib/libc.so.6 /data/klengellab/tools/bcbio/anaconda/bin/bcbio_nextgen.py

And I got the following error message:
/data/klengellab/tools/bcbio/anaconda/bin/python: relocation error: /lib64/librt.so.1: symbol __vdso_clock_gettime, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

Strategy 2.
export LD_PRELOAD=/PHShome/wj092/miniconda3/pkgs/glibc-2.28-999/lib/libc.so.6 /data/klengellab/tools/bcbio/anaconda/bin/bcbio_nextgen

And I got the following error message:
-bash: export: `/data/klengellab/tools/bcbio/anaconda/bin/bcbio_nextgen': not a valid identifier

The article in the link mentions linking the 'libc.so.6' to an executable app, but I'm not sure whether I did it in a correct way...

@naumenko-sa
Copy link
Contributor

linking was to solve a timezone issue.
your second example lacks .py (bcbio_nextgen.py)

@lovebaboon1989
Copy link
Author

Hi, I also tried adding '.py' in the second example:
export LD_PRELOAD=/PHShome/wj092/miniconda3/pkgs/glibc-2.28-999/lib/libc.so.6 /data/klengellab/tools/bcbio/anaconda/bin/bcbio_nextgen.py
But I got the same error message...
-bash: export: `/data/klengellab/tools/bcbio/anaconda/bin/bcbio_nextgen.py': not a valid identifier

@naumenko-sa
Copy link
Contributor

naumenko-sa commented Dec 11, 2023

Yes, this error I can understand: export sets a variable (or many variables) in the current environment and in the child ones, i.e.

$ export A=5 B=6 C
$ echo $A
5
$ echo $B
6
$ echo $C

(C was set as an empty string variable)

However, if you are trying to set something which is not a valid variable name, i.e. a path to a program, bash errors out.

$ export A=5 ./somebin
bash: export: `./somebin': not a valid identifier

So, I am taking back the previous suggestion, you'd need to get PRELOAD working without export.

SN

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants