JakeWharton / docker-gphotos-sync

A Docker image for synchronizing your original-quality Google Photos
https://hub.docker.com/r/jakewharton/gphotos-sync
MIT License
418 stars 37 forks source link

Error relocating /usr/lib/libnspr4.so: gettid: symbol not found #48

Open kylechase opened 2 years ago

kylechase commented 2 years ago

Chrome is failing to start on my system.

Ubuntu Server 20.04

Authenticated via Chromium on PopOS and scp'd the files over.

Error Log

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser.sh: executing... 

Initializing container

User uid: 1000
User gid: 1000

[cont-init.d] 10-adduser.sh: exited 0.
[cont-init.d] 20-cron.sh: executing... 

Not running in cron mode

[cont-init.d] 20-cron.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
crond[202]: crond (busybox 1.31.1) started, log level 6
[services.d] done.
INFO: Starting sync.sh PID 212 Mon Oct  4 21:31:53 UTC 2021
2021/10/04 21:31:53 Session Dir: /tmp/gphotos-cdp
2021/10/04 21:31:53 chrome failed to start:
Error relocating /usr/lib/libnspr4.so: gettid: symbol not found
[cmd] /app/sync.sh exited 1
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
laurentlbm commented 2 years ago

I have the same issue using tag latest. I logged in using Chrome from the recommended docker image dorowu/ubuntu-desktop-lxde-vnc.

Could it be an issue with the Chrome version installed in the gphotos-sync docker? It uses the latest version from Alpine's edge repository instead of a specific version.

Petterderhaag commented 2 years ago

I'm having the same issue; Running on a Linux (Ubuntu 20.04), tried tags: latest, trunk and 0.3.1

Was having issues authenticating with chromium, so I used google-chrome instead, hope that that didn't mess stuff up. Can anyone help?

[REDACTED]~$ sudo docker run -it --rm -v /home/REDACTED/HDD1/docker/gphoto-config/:/tmp/gphotos-cdp -v /home/REDACTED/HDD1/googlephotos_new jakewharton/gphotos-sync /app/sync.sh
[sudo] password for [REDACTED]: 
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser.sh: executing... 

Initializing container

User uid: 1001
User gid: 1001

[cont-init.d] 10-adduser.sh: exited 0.
[cont-init.d] 20-cron.sh: executing... 

Not running in cron mode

[cont-init.d] 20-cron.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
crond[209]: crond (busybox 1.31.1) started, log level 6
INFO: Starting sync.sh PID 207 Fri Dec  3 08:21:44 UTC 2021
2021/12/03 08:21:44 Session Dir: /tmp/gphotos-cdp
2021/12/03 08:21:45 chrome failed to start:
Error relocating /usr/lib/libnspr4.so: gettid: symbol not found
[cmd] /app/sync.sh exited 1
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
OEvgeny commented 2 years ago

I was able to fix the exact issue by updating dependencies.

$ docker-compose exec <container-name> sh
# apk update && apk upgrade

The buckup script seem to work incorrectly though. It backed up only small amount of photo from some albums I have and then exited with an error saying:

2022/01/09 13:43:40 downloading in "/download" took too long to start

Not sure if this is caused by updated deps.

Petterderhaag commented 2 years ago

This made it work in my end! Had to re-authenticate but it's now happily buzzing away downloading.

coolspot18 commented 1 year ago

Running apk update and upgrade doesn't seem to fix the issue anymore, there were several errors with the upgrade.

alborworld commented 1 year ago

Same here.

Got his:

/ # apk update && apk upgrade
fetch http://nl.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/community: UNTRUSTED signature
WARNING: Ignoring APKINDEX.49e1404d.tar.gz: No such file or directory
fetch http://nl.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/main: UNTRUSTED signature
WARNING: Ignoring APKINDEX.1ebd6aac.tar.gz: No such file or directory
2 errors; 151 distinct packages available

Do you recommend an older image version?

Astroamadeus commented 1 year ago

Same here.

Got his:

/ # apk update && apk upgrade
fetch http://nl.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/community: UNTRUSTED signature
WARNING: Ignoring APKINDEX.49e1404d.tar.gz: No such file or directory
fetch http://nl.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/main: UNTRUSTED signature
WARNING: Ignoring APKINDEX.1ebd6aac.tar.gz: No such file or directory
2 errors; 151 distinct packages available

Do you recommend an older image version?

As per the recommendation here, you can force the update and upgrade by adding the --allow-untrusted parameter to each command: apk update --allow-untrusted && apk upgrade --allow-untrusted

Marek77 commented 1 year ago

Same here. Got his:

/ # apk update && apk upgrade
fetch http://nl.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/community: UNTRUSTED signature
WARNING: Ignoring APKINDEX.49e1404d.tar.gz: No such file or directory
fetch http://nl.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
ERROR: http://nl.alpinelinux.org/alpine/edge/main: UNTRUSTED signature
WARNING: Ignoring APKINDEX.1ebd6aac.tar.gz: No such file or directory
2 errors; 151 distinct packages available

Do you recommend an older image version?

As per the recommendation here, you can force the update and upgrade by adding the --allow-untrusted parameter to each command: apk update --allow-untrusted && apk upgrade --allow-untrusted

I updated the image using the above command, now the error changed:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser.sh: executing... 
usermod: no changes

Initializing container

User uid: 1001
User gid: 1001

[cont-init.d] 10-adduser.sh: exited 0.
[cont-init.d] 20-cron.sh: executing... 

Not running in cron mode

[cont-init.d] 20-cron.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
INFO: Starting sync.sh PID 205 Sat Mar 18 18:18:44 UTC 2023
2023/03/18 18:18:44 Session Dir: /tmp/gphotos-cdp
2023/03/18 18:18:45 chrome failed to start:
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_color_has_paint: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_color_glyph_has_paint: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_layout_get_horizontal_baseline_tag_for_script: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_layout_get_baseline_with_fallback: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_input_set_flags: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_input_set: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_or_fail: symbol not found
[cmd] /app/sync.sh exited 1
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

chromium-browser seems broken:

/ # chromium-browser --version
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_color_has_paint: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_color_glyph_has_paint: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_layout_get_horizontal_baseline_tag_for_script: symbol not found
Error relocating /usr/lib/libpango-1.0.so.0: hb_ot_layout_get_baseline_with_fallback: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_input_set_flags: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_input_set: symbol not found
Error relocating /usr/lib/chromium/chrome: hb_subset_or_fail: symbol not found

Same on a Fedora machine:

$ chromium-browser --version
Chromium 111.0.5563.64 Fedora Project
Marek77 commented 1 year ago

Updating the base image to tag 3.17-edge fixed it for me, the photos are syncing.

dakahler commented 1 year ago

tag 3.17-edge didn't seem to exist, so I updated to trunk and that did it for me

renhardy commented 6 months ago

I updated to trunk and I updated the dependencies inside the container. I keep getting the same issue. Any idea what could be tried to fix it please?

[cont-init.d] 20-cron.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
crond[200]: crond (busybox 1.31.1) started, log level 6
[services.d] done.
INFO: Starting sync.sh PID 209 Tue Feb  6 20:28:01 UTC 2024
2024/02/06 20:28:01 Session Dir: /tmp/gphotos-cdp
2024/02/06 20:28:02 chrome failed to start:
Error relocating /usr/lib/libnspr4.so: gettid: symbol not found
[cmd] /app/sync.sh exited 1
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
Kainkun commented 4 months ago

@renhardy try starting over with no containers and no images. Instead of upgrading stuff, try following the regular steps but with this instead without any other changes.

docker run -it --rm
    -v /path/to/config:/tmp/gphotos-cdp \
    -v /path/to/downloads:/download \
    jakewharton/gphotos-sync:trunk \
    /app/sync.sh

If that works, maybe leave a comment in my PR #59 saying that worked

Kainkun commented 4 months ago

although I got my Google Takeout files and the images seem identical even in metadata. Maybe I'm missing something but I thought this process would get more data than Google Takeout