[Ubuntu] Glibc not installed or too old

Ubuntu version: 16.04.6 LTS
libc6 version:
Installed: 2.23-0ubuntu11
Candidate: 2.23-0ubuntu11
Message:
Detected Debian (derivative) system
Detected systemd
Detected architecture x86_64-linux-glibc
(Glibc not installed or too old (2). Falling back to Android NDK build…)
Error running executable on this system (x86_64). Stopping installation.

Command:
TF=`mktemp` && wget “https://hndl.urbackup.org/Client/2.4.8/UrBackup%20Client%20Linux%202.4.8.sh” -O $TF && sudo sh $TF; rm -f $TF

The error message doesn’t say the minimum required glibc version yet i’ve got the latest one available for my system :S
What can i do?

Hmm, cannot reproduce with Ubuntu 16.04…

Can you run:

uname -a; wget "https://hndl.urbackup.org/Client/2.4.8/UrBackup%20Client%20Linux%202.4.8.sh" -O /tmp/urbackup_installer.sh && sh /tmp/urbackup_installer.sh --target /tmp/urbackup_installer --noexec; tar xf /tmp/urbackup_installer/install-data.tar.gz -C /tmp/urbackup_installer/ && /tmp/urbackup_installer/x86_64-linux-glibc/urbackupclientbackend --version; /tmp/urbackup_installer/x86_64-linux-android/urbackupclientbackend --version

Okay, now it does show the expected versions:

/tmp/urbackup_installer/x86_64-linux-glibc/urbackupclientbackend: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/urbackup_installer/x86_64-linux-glibc/urbackupclientbackend)
/tmp/urbackup_installer/x86_64-linux-glibc/urbackupclientbackend: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/urbackup_installer/x86_64-linux-glibc/urbackupclientbackend)
Illegal instruction

uname -a:
Linux 4.9.78-xxxx-std-ipv6-64 #2 SMP Wed Jan 24 10:27:15 CET 2018 x86_64 x86_64 x86_64 GNU/Linux

i will try to find a way to get up to 2.25

You won’t :wink: Glibc is tied to the system version. I’ll have to fix the Android NDK build for your system…

Can you run:

apt install gdb
wget "https://hndl.urbackup.org/Client/2.4.8/UrBackup%20Client%20Linux%202.4.8-dbg.sh" -O /tmp/urbackup_installer.sh
sh /tmp/urbackup_installer.sh --target /tmp/urbackup_installer --noexec; tar xf /tmp/urbackup_installer/install-data.tar.gz -C /tmp/urbackup_installer/
gdb --args /tmp/urbackup_installer/x86_64-linux-android/urbackupclientbackend --version
run
bt

Also post the output from cat /proc/cpuinfo please

cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel® Atom™ CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm retpoline kaiser dtherm arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 3733.32
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel® Atom™ CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm retpoline kaiser dtherm arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 3733.32
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel® Atom™ CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm retpoline kaiser dtherm arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 3733.32
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel® Atom™ CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 1330.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm retpoline kaiser dtherm arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 3733.32
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

I’m running the commands, i had a strange problem with apt install gdb, always saying “Aborted” while i told it yes, after 3/4 retries is installing it now.

I’m getting now:

Program received signal SIGILL, Illegal instruction.
0x0000000000a03739 in chacha_encrypt_bytes (x=0x7ffff7ff7010, m=0x7ffff7ff7050 “”, c=0x7ffff7ff7050 “”, bytes=1024) at bionic/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h:114
114 bionic/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h: No such file or directory.
(gdb) bt
#0 0x0000000000a03739 in chacha_encrypt_bytes (x=0x7ffff7ff7010, m=0x7ffff7ff7050 “”, c=0x7ffff7ff7050 “”, bytes=1024) at bionic/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h:114
#1 _rs_rekey (dat=0x0, datlen=0) at bionic/libc/upstream-openbsd/lib/libc/crypt/arc4random.c:125
#2 0x0000000000a03539 in _rs_random_buf (_buf=, n=8) at bionic/libc/upstream-openbsd/lib/libc/crypt/arc4random.c:161
#3 arc4random_buf (buf=, n=) at bionic/libc/upstream-openbsd/lib/libc/crypt/arc4random.c:195
#4 0x0000000000a05f72 in __libc_init_main_thread_late () at bionic/libc/bionic/__libc_init_main_thread.cpp:104
#5 0x00000000009e1c2f in __real_libc_init (raw_args=, onexit=, slingshot=0x6fbd90 <main(int, char**)>, structors=0x7fffffffe600, temp_tcb=) at bionic/libc/bionic/libc_init_static.cpp:178
(gdb)

It’s probably because your CPU doesn’t support SSE4 instructions.

Can you try if this one works: http://beta.urbackup.org/tmp/UrBackupUpdateLinux(13).sh ?

  1. Thank you for taking your time to try to make urbackup compatible with my dedicated server!
  2. I removed any file/folder starting with urbackup from /tmp/
  3. I Executed:
wget "http://beta.urbackup.org/tmp/UrBackupUpdateLinux(13).sh" -O /tmp/urbackup_installer.sh
sh /tmp/urbackup_installer.sh --target /tmp/urbackup_installer --noexec; tar xf /tmp/urbackup_installer/install-data.tar.gz -C /tmp/urbackup_installer/
gdb --args /tmp/urbackup_installer/x86_64-linux-android/urbackupclientbackend --version
run
bt

Output:

(gdb) run
Starting program: /tmp/urbackup_installer/x86_64-linux-android/urbackupclientbackend --version
UrBackup Client Backend v2.4.8.0
Copyright © 2011-2019 Martin Raiber
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[Inferior 1 (process 4991) exited normally]
(gdb) bt
No stack.

It seems to have succeeded right?

Yeah, of course the real question is if it gets SIGILL during normal operation…

Hmm, i’m getting:

root@server:/tmp# urbackupclientctl wait-for-backend
Illegal instruction
root@server:/tmp# urbackupclientctl set-settings -k internet_mode_enabled -v true -k internet_server -v -k internet_server_port -v 55415 -k computername -v “Dedicated” -k internet_authkey -v j****A
Illegal instruction

Unfortunately I can’t reproduce the problem in qemu :confused: (with CPU emulation)

Any way i can help you debugging it? maybe some verbose mode that lets us see when does the illegal instruction?

Here is the build with symbols again: http://beta.urbackup.org/tmp/UrBackupUpdateLinux-dbg.sh

Can you do the gdb thing again (e.g. gdb --args urbackupclientctl wait-for-backend)?