Nextcloud version: 20.0.3 from the official docker image
Operating system and version: Debian GNU/Linux 10
Apache version: Apache/2.4.38
PHP version: 7.4.13
Lately I’m having a problem with a shared folder Recepty
I use for recipes in Cookbook.
The folder can be accessed by the owner without problems. However, other users are getting Storage is temporarily not available very often when they try to access the folder. I think it started happening with Nextcloud 20, but I’m not sure.
I think it might be related to the cookbook application, but I don’t know how to tell that for sure. I just tried sharing a different folder with a few images and that one works so far with the testing users, while the problematic folder always breaks after a while.
What may be the cause or how to debug the issue further?
The event log for the admin users shows the following when the problem happens:
[webdav] Fatal: Sabre\DAV\Exception\ServiceUnavailable: at <<closure>>
0. /var/www/html/3rdparty/sabre/dav/lib/DAV/Tree.php line 80
OCA\DAV\Connector\Sabre\Directory->getChild("Recepty")
1. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 976
Sabre\DAV\Tree->getNodeForPath("files/gplaytryout/Recepty")
2. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 1678
Sabre\DAV\Server->getPropertiesIteratorForPath("files/gplaytryout/Recepty", ["{DAV:}getlastm ... "], 1)
3. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 1661
Sabre\DAV\Server->writeMultiStatus(Sabre\Xml\Writer ... ]}, Generator {}, false)
4. /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 363
Sabre\DAV\Server->generateMultiStatus(Generator {}, false)
5. /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
Sabre\DAV\CorePlugin->httpPropFind(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
6. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 474
Sabre\DAV\Server->emit("method:PROPFIND", [Sabre\HTTP\Requ ... }])
7. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 251
Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
8. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 319
Sabre\DAV\Server->start()
9. /var/www/html/apps/dav/lib/Server.php line 332
Sabre\DAV\Server->exec()
10. /var/www/html/apps/dav/appinfo/v2/remote.php line 35
OCA\DAV\Server->exec()
11. /var/www/html/remote.php line 167
require_once("/var/www/html/a ... p")
PROPFIND /remote.php/dav/files/gplaytryout/Recepty
from 94.142.238.126 by gplaytryout at 2020-12-20T20:03:28+00:00
The config.php is unchanged.
The relevant part of the docker (apache) log when the folder is accessed:
nextcloud_1 | 2020-12-20T20:13:30.893338013Z 127.0.0.1 - - [20/Dec/2020:20:13:30 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:31.894313460Z 127.0.0.1 - - [20/Dec/2020:20:13:31 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:32.895538050Z 127.0.0.1 - - [20/Dec/2020:20:13:32 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:33.896832381Z 127.0.0.1 - - [20/Dec/2020:20:13:33 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:34.348895552Z 172.21.0.2 - - [20/Dec/2020:20:13:34 +0000] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/1.1" 304 249 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:34.898048346Z 127.0.0.1 - - [20/Dec/2020:20:13:34 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:35.899350398Z 127.0.0.1 - - [20/Dec/2020:20:13:35 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:36.648617083Z 172.21.0.2 - - [20/Dec/2020:20:13:36 +0000] "PROPFIND /remote.php/dav/files/gplaytryout/Recepty HTTP/1.1" 503 932 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:36.900091348Z 127.0.0.1 - - [20/Dec/2020:20:13:36 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:37.135007378Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "PROPFIND /public.php/webdav/ HTTP/1.1" 401 1913 "-" "sabre-dav/4.0.3 (http://sabre.io/)"
nextcloud_1 | 2020-12-20T20:13:37.200850618Z 172.21.0.2 - LwPI46dH8PxKsmF [20/Dec/2020:20:13:37 +0000] "PROPFIND /public.php/webdav/ HTTP/1.1" 207 2331 "-" "sabre-dav/4.0.3 (http://sabre.io/)"
nextcloud_1 | 2020-12-20T20:13:37.256439020Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "PROPFIND /public.php/webdav/ HTTP/1.1" 401 1911 "-" "sabre-dav/4.0.3 (http://sabre.io/)"
nextcloud_1 | 2020-12-20T20:13:37.326600496Z 172.21.0.2 - LwPI46dH8PxKsmF [20/Dec/2020:20:13:37 +0000] "PROPFIND /public.php/webdav/ HTTP/1.1" 207 1960 "-" "sabre-dav/4.0.3 (http://sabre.io/)"
nextcloud_1 | 2020-12-20T20:13:37.338381637Z 172.21.0.2 - - [20/Dec/2020:20:13:36 +0000] "PROPFIND /remote.php/dav/files/gplaytryout/ HTTP/1.1" 207 1880 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:37.606325243Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "GET /index.php/apps/files/ajax/getstoragestats.php?dir=%2F HTTP/1.1" 200 975 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:37.802633909Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "GET /index.php/avatar/Luk%C3%A1%C5%A1%20Jirkovsk%C3%BD@https://nextcloud.example.com//32 HTTP/1.1" 302 939 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:37.901668763Z 127.0.0.1 - - [20/Dec/2020:20:13:37 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
nextcloud_1 | 2020-12-20T20:13:38.033161489Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "GET /index.php/core/preview?fileId=8832&c=002401aba12d660c54ae0b41c149a52d&x=250&y=250&forceIcon=0 HTTP/1.1" 404 753 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:38.144129220Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "GET /index.php/apps/dashboard/ HTTP/1.1" 200 9483 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:38.167507536Z 172.21.0.2 - - [20/Dec/2020:20:13:37 +0000] "GET /index.php/core/preview?fileId=8733&c=30c09436ef08fc3f801ecb99f0880879&x=250&y=250&forceIcon=0 HTTP/1.1" 404 753 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
nextcloud_1 | 2020-12-20T20:13:38.902862135Z 127.0.0.1 - - [20/Dec/2020:20:13:38 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.4.13 (internal dummy connection)"
Here is a trimmed-down docker-compose.yml I use (including HTTPS proxy if that’s related):
version: '3.1'
services:
db:
image: postgres:12
restart: unless-stopped
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${NEXTCLOUD_POSTGRES_USER}
- POSTGRES_PASSWORD=${NEXTCLOUD_POSTGRES_PASSWORD}
nextcloud:
image: nextcloud:apache
restart: unless-stopped
volumes:
- nextcloud-config:/var/www/html/config
- nextcloud-data:/var/www/html/data
environment:
# autoconfiguration
- POSTGRES_DB=${NEXTCLOUD_POSTGRES_USER}
- POSTGRES_USER=${NEXTCLOUD_POSTGRES_USER}
- POSTGRES_PASSWORD=${NEXTCLOUD_POSTGRES_PASSWORD}
- POSTGRES_HOST=db
- NEXTCLOUD_DATA_DIR=/var/www/html/data
# required for work behind https proxy
- OVERWRITEPROTOCOL=https
# proxy configuration
- VIRTUAL_HOST=nextcloud.example.com
- LETSENCRYPT_HOST=nextcloud.example.com
- LETSENCRYPT_EMAIL=john.doe@example.com
depends_on:
- db
networks:
- proxy-tier
- default
ports:
- 8080:80
proxy:
image: jwilder/nginx-proxy:alpine
restart: unless-stopped
ports:
- 80:80
- 443:443
# this is required for the letsencrypt-companion to detect the proxy
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- certs:/etc/nginx/certs:ro
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
# custom settings increasing the file upload size
- "./nginx_local_settings.conf:/etc/nginx/conf.d/nginx_local_settings.conf"
environment:
- ENABLE_IPV6=true
networks:
- proxy-tier
letsencrypt-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
restart: unless-stopped
volumes:
- certs:/etc/nginx/certs
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- proxy-tier
depends_on:
- proxy
volumes:
#
# PERSISTENT VOLUMES
#
# postgres database data
db:
# nextcloud data than make sense to backup
nextcloud-config:
nextcloud-data:
#
# VOLATILE VOLUMES
#
# volumes to share data between proxy and letsencrypt-companion
certs:
vhost.d:
html:
networks:
proxy-tier: