bauerj / borg-binaries

https://borg.bauerj.eu/
9 stars 4 forks source link

`undefined symbol` error with v1.1.4 #8

Closed pmiossec closed 6 years ago

pmiossec commented 6 years ago

I tried to run the binary borg-1.1.4-armv5 you provide on my synology NAS and get the error:

$ ./borg-1.1.4-armv5 --version
Traceback (most recent call last):
File "src/borg/__main__.py", line 1, in <module>
File "/root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/PyInstaller-3.2.1-py3.5.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "src/borg/archiver.py", line 39, in <module>
File "/root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/PyInstaller-3.2.1-py3.5.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module                                                                                                               
File "src/borg/archive.py", line 24, in <module>                                                                                                                                                                                                                            
File "/root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/PyInstaller-3.2.1-py3.5.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module                                                                                                               
File "src/borg/cache.py", line 30, in <module>                                                                                                                                                                                                                              
File "/root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/PyInstaller-3.2.1-py3.5.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module                                                                                                               
File "src/borg/crypto/key.py", line 19, in <module>                                                                                                                                                                                                                         
File "/root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/PyInstaller-3.2.1-py3.5.egg/PyInstaller/loader/pyimod03_importers.py", line 573, in load_module                                                                                                               
ImportError: /tmp/_MEIVXRPd6/borg.compress.so: undefined symbol: LZ4_compress_default                                                                                                                                                                                         
Failed to execute script __main__   

It tested the previous version and it seems to work:

$ ./borg-1.1.3-armv5 --version
borg-1.1.3-armv5 1.1.3

But I can't use this previous version :( I started to use borg backup and made some very long backup with the last version 1.1.4 (on my desktop) which seems to be not compatible (I have not tested but there is a warning message when I create the backup telling it won't be with previous versions).

Thanks in advance for the help.

PS: thanks a lot for the binaries you provide!

pmiossec commented 6 years ago

Sorry to bother you but could you help me on this issue?

bauerj commented 6 years ago

Hey,

sorry I didn't answer yet but I didn't have time to look into the issue. I hope I can reproduce it on my devices.

I'll try to debug this some time next week.

In the meantime, you can also try to install Python 3 on your NAS and run Borg from source if you want.

pmiossec commented 6 years ago

sorry I didn't answer yet but I didn't have time to look into the issue.

That's 100% fine. I just wanted to be sure that you saw the issue.

I successfully backed up my data so I could wait. That's just that I would appreciate a lot if the issue is fixed one day.

In the meantime, you can also try to install Python 3 on your NAS and run Borg from source if you want.

Unfortunately, that's why I opened the issue... I don't have the knowledge neither the time at the moment (I just had a child some days ago) to do that. I never built a software on my NAS for now so it could be very time consuming. But that's what I wanted to try at the first though...

But, once again, I have time. I just would like it to be fixed but without a big time constrains.

Ps: I am also an open source developer/maintainer (but not in this technology) so I understand it could be time consuming, so no big deal...

bauerj commented 6 years ago

Good news, I can reproduce the issue!

Now I just need to find out how to solve this...

pmiossec commented 6 years ago

:+1:

I hope it won't be too difficult to solve.

Does reproducing the problem give you a hint on where it could come from? A missing dependency because things has changed in the last version about compression algorithm (new one added)?

bauerj commented 6 years ago

I think I found the issue. The build system is running ancient Debian wheezy so that old devices with old kernels/libc are still supported.

borg's Vagrant script automatically installs liblz4 through apt, which in this case pulled in an old version that took precedence over the user-installation I have on that server.

I changed LD_LIBRARY_PATH in my build toolchain and restarted the build. We'll know if it worked in a few hours!

bauerj commented 6 years ago

@pmiossec The issue should be resolved now. Can you please test on your device?

pmiossec commented 6 years ago

Thanks a lot, it is working well now!