bcgsc / tigmint

⛓ Correct misassemblies using linked AND long reads
https://bcgsc.github.io/tigmint/
GNU General Public License v3.0
54 stars 13 forks source link

ImportError: /lib64/libc.so.6: version `GLIBC_2.18' not found #6

Closed QiushiLi closed 6 years ago

QiushiLi commented 6 years ago

Hi,

Sadly to see tigmint stopped by another error...

Cmd line:

$ tigmint tigmint draft=draft reads=reads t=30

Screen output:

/data/qiushi/tubesnout-rj/tigmint/bin/tigmint-molecule -b draft.reads.sortbx.bam -o draft.reads.as0.65.nm5.molecule.tsv -a 0.65 -n 5 -q 0 -d 50000
awk 'NR>1 { print $1"\t"$2-1"\t"$3-1"\tReads="$7",Size="$4",Mapq="$8",AS="$9",NM="$10",BX="$5",MI="$6"\t"$7 }' draft.reads.as0.65.nm5.molecule.tsv \
        | sort -k1,1 -k2,2n -k3,3n >draft.reads.as0.65.nm5.molecule.bed
awk '$3 - $2 >= 2000' draft.reads.as0.65.nm5.molecule.bed >draft.reads.as0.65.nm5.molecule.size2000.bed
samtools faidx draft.fa
/data/qiushi/tubesnout-rj/tigmint/bin/tigmint-cut -p30 -w1000 -n20 -t0 -o draft.reads.as0.65.nm5.molecule.size2000.trim0.window1000.span20.breaktigs.fa draft.fa draft.reads.as0.65.nm5.molecule.size2000.bed
Traceback (most recent call last):
  File "/data/qiushi/tubesnout-rj/tigmint/bin/tigmint-cut", line 11, in <module>
    import pybedtools
  File "/data/qiushi/anaconda3/lib/python3.6/site-packages/pybedtools/__init__.py", line 10, in <module>
    from .cbedtools import (Interval, IntervalFile, overlap, Attributes,
ImportError: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/linuxbrew/.linuxbrew/lib/libstdc++.so.6)
make: *** [draft.reads.as0.65.nm5.molecule.size2000.trim0.window1000.span20.breaktigs.fa] Error 1

Information about the server you might need:

$cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.4 (Maipo)

$/usr/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 

[qiushi.li@itbioyeaman02 ~]$strings /usr/lib64/libc.so.6 | grep ^GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE
GLIBC_PRIVATE
GLIBC_2.8
GLIBC_2.3
GLIBC_2.5
GLIBC_2.4
GLIBC_2.9
GLIBC_2.7
GLIBC_2.6
GLIBC_2.3.2
GLIBC_2.3.4
GLIBC_2.3.3
GLIBC_2.15
GLIBC_2.14
GLIBC_2.11
GLIBC_2.16
GLIBC_2.10
GLIBC_2.17
GLIBC_2.12
GLIBC_2.13
GLIBC_2.2.5
GLIBC_2.2.6

I tried to sudo update glibc with local built but failed.

$curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
$tar zxf glibc-2.18.tar.gz 
$cd glibc-2.18/
$mkdir build
$cd build/
$../configure --prefix=/usr
$make -j2
$sudo make install

Error info:

Inconsistency detected by ld.so: get-dynamic-info.h: 134: elf_get_dynamic_info: Assertion `info[15] == ((void *)0)' failed!
make[2]: *** [/usr/lib64/gconv/gconv-modules] Error 127
make[2]: Leaving directory `/data/programs/glibc-2.18/iconvdata'
make[1]: *** [iconvdata/subdir_install] Error 2
make[1]: Leaving directory `/data/programs/glibc-2.18'
make: *** [install] Error 2

I would be very cautious on doing anything to the default glibc... And I notice that if

$strings /home/linuxbrew/.linuxbrew/lib/libc.so.6 | grep ^GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_PRIVATE
GLIBC_2.23
GLIBC_2.8
GLIBC_2.5
GLIBC_2.9
GLIBC_2.7
GLIBC_2.6
GLIBC_2.18
GLIBC_2.11
GLIBC_2.16
GLIBC_2.10
GLIBC_2.17
GLIBC_2.13
GLIBC_2.2.6

There is GLIBC_2.18 in linuxbrew library.

Any idea about this?

Thanks! Qiushi

lcoombe commented 6 years ago

Hi Qiushi,

Are you running the job on the same server where you compiled pybedtools? Also, are you ensuring that your desired python3 installation is being used? (Ie. runningwhich python3 prints the path to your conda python installation with pybedtools?) You could also try installing pybedtools with conda install (as per https://github.com/daler/pybedtools/issues/187) @sjackman might have some suggestions as well!

Lauren

sjackman commented 6 years ago

Please enclose copy-and-paste blocks in triple back ticks. See https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code

sjackman commented 6 years ago

Hi, @QiushiLi. I'd suggest reinstalling Linuxbrew from scratch. It will install glibc 2.23 for you. Since you have root access on your machine, installation is quite painless. See http://linuxbrew.sh/#install-linuxbrew Remove your old installation of Linuxbrew

rm -rf /home/linuxbrew/.linuxbrew/

and reinstall Linuxbrew

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
QiushiLi commented 6 years ago

Thanks Lauren & Shaun!

@lcoombe Both answers are yes... I "source activate" the environment with python3 installed, and double checked with "which python" .

@sjackman The linuxbrew was sudo installed from scratch (I did it several time to debug). I typed the same command lines you wrote here, but it seems like /home/linuxbrew/.linuxbrew/lib/libstdc++.so.6 still requires the system glibc, learned from the error info.

Our server's built environment has troubles now due to the failed sudo glibc update... waiting for help from the IT support. But the good news is I managed to run the basic tigmint on my mac.

Qiushi

sjackman commented 6 years ago

I tried to sudo update glibc with local built but failed.

I think that's the source of your trouble. Installing Glibc 2.18 (quite old, released on 2013-08-12) in /usr could cause much grief.

njia commented 6 years ago

@QiushiLi Did you get it working? I had this problem as well on my CentOS 7 but managed to fix it by using pyenv "pyenv local 3.6.6" in YouCompleteMe directory.

[njia@fed YouCompleteMe]$ pyenv versions
  system
  2.7.12
* 3.6.6 (set by /home/njia/.vim/plugged/YouCompleteMe/.python-version)
SrishtiUnthinkable commented 2 years ago

thanks , this actually worked for me !!