[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(R) 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(R) 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(R) 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(R) 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 (C) 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)?

Oh, i’m deeply sorry, i didn’t receive a notification telling me that you replied :frowning:

  1. I deleted everything related to urbackup from /tmp/

  2. I ran:

    wget “http://beta.urbackup.org/tmp/UrBackupUpdateLinux-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

And then:

root@ns:/tmp# gdb --args urbackupclientctl wait-for-backend
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
---Type <return> to continue, or q <return> to quit---
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from urbackupclientctl...(no debugging symbols found)...done.
(gdb) quit
root@ns:/tmp# urbackupclientctl wait-for-backend
Illegal instruction

It’s strange, like if install didn’t overwrite the existing one maybe?

Hmm, ok did you install it?

wget “http://beta.urbackup.org/tmp/UrBackupUpdateLinux-dbg.sh” && sh UrBackupUpdateLinux-dbg.sh

Facepalm, yep, i didn’t install it on my attempt.

Uncompressing UrBackup Client Installer for Linux (debug)  100%  
Installation of UrBackup Client 2.4.8 to /usr/local ... Proceed ? [Y/n]
y
Uncompressing install data...
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...)
Installed daemon configuration at /etc/default/urbackupclient...
Info: Restoring from web interface is disabled per default. Enable by modifying /etc/default/urbackupclient.
Installing systemd unit...
Cannot find systemd unit dir. Assuming /lib/systemd/system
Created symlink from /etc/systemd/system/multi-user.target.wants/urbackupclientbackend.service to /lib/systemd/system/urbackupclientbackend.service.
Starting UrBackup Client service...
Successfully started client service. Installation complete.
+Detected Ubuntu LTS. Dattobd supported
-Detected no btrfs filesystem
+Detected LVM volumes
Please select the snapshot mechanism to be used for backups:
1) dattobd volume snapshot kernel module from https://github.com/datto/dattobd
2) LVM - Logical Volume Manager snapshots
4) Use no snapshot mechanism
1
Configured dattobd. Please install dattobd following the instructions at https://github.com/datto/dattobd
Configured snapshot mechanism via /usr/local/etc/urbackup/snapshot.cfg

Got no idea on what dattobd is, but it was the first option and its repo said was better than LVM (soz, super newbie).

root@ns:/tmp#  gdb --args urbackupclientctl wait-for-backend
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from urbackupclientctl...done.
(gdb) quit
root@ns:/tmp# urbackupclientctl wait-for-backend
root@ns:/tmp# 

Now it does really seem to be working fine! Time to try to set it up properly!

Edit:
I literally copied the line from the setup, but got an error:

urbackupclientctl set-settings -k internet_mode_enabled -v true -k internet_server -v -k internet_server_port -v 55415 -k computername -v "DedicatedServer" -k internet_authkey -v jTcm
PARSE ERROR: Argument: internet_server_port
             Couldn't find match for argument

If i set a -v false on internet_server it works.