I’m getting this when I try to run PhotoStructure on one of my servers:
photostructure_1 | Please wait, setting up...
photostructure_1 | {"fatal":true,"exit":true,"status":13,"pid":14,"ppid":7,"error":"Setup timed out after 35 seconds.\nPlease visit https://photostructure.com/troubleshooting for help."}
The photos are mounted at /mnt/photos
via NFS. However, I see barely any network traffic at all while PhotoStructure is starting up, so I don’t think that’s the cause of the issue. The NFS files are all owned by the same user I’m running PhotoStructure as (UID 112 and GID 116, which are for a system user called “photos”)
I looked through https://photostructure.com/faq/troubleshooting but it seems like the troubleshooting is primarily aimed at Windows issues . The mount is healthy and df
works:
root@chi03:/mnt/photos# df -h /mnt/photos
Filesystem Size Used Avail Use% Mounted on
chi01.vpn.d.sb:/data/photos 2.0T 375G 1.5T 21% /mnt/photos
I don’t see much in the log:
root@chi03:/var/log/photostructure/2021-01-07# tail -n100 -f *.log
==> main-16-001.log <==
{"ts":1609998969437,"l":"info","ctx":"SettingsIO.importFileSettings(/ps/config/settings.toml)","msg":"loaded","meta":{"tomlMap":{"logLevel":"debug"},"imported":[{"name":"logLevel","value":"info","persist":false}]}}
==> main-17-001.log <==
{"ts":1609999020935,"l":"debug","ctx":"SettingsIO.importFileSettings(/ps/config/settings.toml)","msg":"ENV before","meta":{"NODE_ENV":"production","PS_CACHE_DIR":"/ps/tmp","PS_ENABLE_VIPS_CACHE":"1","PS_FORCE_LOCAL_DB_REPLICA":"1","PS_LIBRARY_PATH":"/ps/library","PS_LOG_COLOR":"true","PS_LOG_DIR":"/ps/logs","PS_LOG_LEVEL":"debug"}}
{"ts":1609999020951,"l":"debug","ctx":"SettingsIO","msg":"read(/ps/config/settings.toml)","meta":{"result":{"logLevel":"debug"}}}
{"ts":1609999020952,"l":"info","ctx":"SettingsIO.importFileSettings(/ps/config/settings.toml)","msg":"loaded","meta":{"tomlMap":{"logLevel":"debug"},"imported":[{"name":"logLevel","value":"debug","persist":false}]}}
{"ts":1609999020954,"l":"debug","ctx":"SettingsIO","msg":"libraryPathHasSettings","meta":{"result":true,"librarySettingsFile":"/ps/library/.photostructure/settings.toml"}}
{"ts":1609999020955,"l":"debug","ctx":"SettingsIO.importFileSettings(/ps/library/.photostructure/settings.toml)","msg":"ENV before","meta":{"NODE_ENV":"production","PS_CACHE_DIR":"/ps/tmp","PS_ENABLE_VIPS_CACHE":"1","PS_FORCE_LOCAL_DB_REPLICA":"1","PS_LIBRARY_PATH":"/ps/library","PS_LOG_COLOR":"true","PS_LOG_DIR":"/ps/logs","PS_LOG_LEVEL":"debug"}}
{"ts":1609999055947,"l":"info","ctx":"Service(main)","msg":"exit()","meta":{"status":13,"reason":"Setup timed out after 35 seconds.\nPlease visit https://photostructure.com/troubleshooting for help.","ending":false}}
{"ts":1609999055947,"l":"debug","ctx":"stdoutWrite","msg":"()","meta":{"obj":{"fatal":true,"exit":true,"status":13,"pid":17,"ppid":10,"error":"Setup timed out after 35 seconds.\nPlease visit https://photostructure.com/troubleshooting for help."},"ready":false}}
{"ts":1609999055948,"l":"info","ctx":"\u001b[35mEndable\u001b[39m","msg":"endEndables()","meta":{"isTest":false}}
{"ts":1609999055948,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"vacuumEndables()","meta":[["first",["Idle"]],["logger",["LogWriter(/ps/logs)"]],["service",["PromiseTimer"]]]}
{"ts":1609999055948,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"endEndables(): ending first"}
{"ts":1609999055949,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"Idle ending...","meta":{"timeoutMs":5000}}
{"ts":1609999055949,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"Idle.end() completed"}
{"ts":1609999055949,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"endEndables(): ending service"}
{"ts":1609999055949,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"PromiseTimer ending...","meta":{"timeoutMs":5000}}
{"ts":1609999055952,"l":"info","ctx":"PromiseTimer","msg":"timings:\n","meta":{"fs.readFile":{"mean":5,"mode":5,"max":5,"min":5,"k":1},"fs.stat":{"mean":0.5,"mode":0,"sd":0.71,"max":1,"min":0,"k":2}}}
{"ts":1609999055952,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"PromiseTimer.end() completed"}
{"ts":1609999055952,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"endEndables(): ending logger"}
{"ts":1609999055952,"l":"debug","ctx":"\u001b[35mEndable\u001b[39m","msg":"LogWriter(/ps/logs) ending...","meta":{"timeoutMs":15000}}
I’m using docker-compose with the following config:
version: "3.7"
services:
photostructure:
image: photostructure/server
restart: on-failure
stop_grace_period: 2m
user: 112:116
volumes:
# This is where your PhotoStructure Library will be stored.
# It must be readable, writable, and have sufficient free space.
# If it is a remote volume, uncomment the PS_FORCE_LOCAL_DB_REPLICA
# environment line below.
- type: bind
source: /mnt/photos
target: /ps/library
# This must be fast, local disk with many gigabytes free.
# PhotoStructure will use this directory for file caching
# and for storing a temporary database replica when your
# library is on a remote volume.
- type: bind
source: "/var/tmp/photostructure"
target: /ps/tmp
# This directory stores your "system settings"
- type: bind
source: "/etc/photostructure"
target: /ps/config
# This directory stores PhotoStructure logfiles.
- type: bind
source: "/var/log/photostructure/"
target: /ps/logs
# Example additional directories to import into your library.
# Add as many as you'd like, or remove one or both of these examples.
# Set the target to /media/... or /mnt/...
# (the name doesn't matter, as long as it is unique)
#- type: bind
# source: "/mnt/Photos backup" # < CHANGE THIS LINE
# target: /var/photos-backup
# Here's another example directory to scan:
# - type: bind
# source: /home/jamie/Pictures
# target: /var/home-jamie-pictures
ports:
- "127.0.0.1:1787:1787"
- "10.123.1.41:1787:1787"
environment:
# PhotoStructure has _tons_ of settings. See
# <https://photostructure.com/faq/environment-variables/>
- "PS_LOG_LEVEL=debug"
- "PS_FORCE_LOCAL_DB_REPLICA=1"
- "PS_ENABLE_VIPS_CACHE=1"
labels:
# See https://containrrr.dev/watchtower/container-selection/
- "com.centurylinklabs.watchtower.enable=true"
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# Check for updates every couple hours: (3h * 60m * 60s)
command: --interval 10800
environment:
- "WATCHTOWER_LABEL_ENABLE=true"
Any ideas?
Debian Testing (Buster)
Docker version 20.10.2, build 2291f61