mnutt / davros

Personal file storage server
Apache License 2.0
298 stars 35 forks source link

The new Davros (0.24) still does not sync with Webdav Clients #101

Closed bytersproblem closed 4 years ago

bytersproblem commented 4 years ago

I have purchased the ExpanDrive, which can connect to both Nextcloud and Webdav (among others). However, when I try to upload a file, it appears in the Sandstorm web intrface as a zero-byte file. ExpanDrive loops as if it uploads, but I didn't see it finished. The new version however, seems to do good with gvfs (for example Thunar, although copy/paste files in a davs:// folder raises an error. I would not write about this issue, if I didn't like the way Davros is conceived.

Greetings to the developers.

ocdtrekkie commented 4 years ago

@nukedone I know that Davros is no longer compatible with Nextcloud/ownCloud clients specifically. Did you look at the updated configuration instructions in 0.24? Are you getting any sort of error message either on ExpanDrive or in Davros' grain debug log?

bytersproblem commented 4 years ago

As I said, when I connect the Davros Grain as a WebDAV folder, and try to copy something into it, the ExpanDrive says it is uploading the file (infinitely) and the Davros Web Interface displays a zero-byte file in the list of files.

bytersproblem commented 4 years ago

I would like to assist you by providing logs or any beahavior from both Expandrive and Davros on my sandstorm server.

bytersproblem commented 4 years ago
Warning: SandstormPermissions.grainPermissions() took 564 milliseconds to complete for the vertex {"grain":{"_id":"CApomwxxNCkJFZuyr93Lew","accountId":"ZwsyqK3RBper7gfnw"}}
Warning: SandstormPermissions.grainPermissions() took 853 milliseconds to complete for the vertex {"grain":{"_id":"pvmrE2srxr23BCWzs9Q7Ld","accountId":"ZwsyqK3RBper7gfnw"}}
Warning: SandstormPermissions.grainPermissions() took 852 milliseconds to complete for the vertex {"grain":{"_id":"o9sADSbdLxcYdxqjJyGWrc","accountId":"ZwsyqK3RBper7gfnw"}}
Warning: SandstormPermissions.grainPermissions() took 895 milliseconds to complete for the vertex {"grain":{"_id":"H2ueNZfJjRfWHzAXXc9J9m","accountId":"ZwsyqK3RBper7gfnw"}}
capnp/rpc.c++:145: info: returning failure over rpc; exception = kj/async-inl.h:1192: failed: PromiseFulfiller was destroyed without fulfilling the promise.
stack: 4803a0 6bcf90
bytersproblem commented 4 years ago

This is the grain log


Debug log: test3

...7.896 ms - -
PROPFIND /remote.php/webdav/ 207 40.923 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PUT /remote.php/webdav/Bash%20Script - - ms - -
_http_outgoing.js:470
    throw new ERR_HTTP_HEADERS_SENT('set');
    ^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:470:11)
    at setHeadersFromObject (/opt/app/node_modules/on-headers/index.js:94:16)
    at ServerResponse.setWriteHeadHeaders (/opt/app/node_modules/on-headers/index.js:122:5)
    at ServerResponse.writeHead (/opt/app/node_modules/on-headers/index.js:30:36)
    at /opt/app/node_modules/jsDAV/lib/DAV/handler.js:902:47
    at /opt/app/node_modules/jsDAV/lib/shared/asyncEvents.js:82:13
    at handler (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:371:33)
    at handler (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:146:21)
    at Object.next (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:451:13)
    at exports.Generator.next (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:144:20)
** HTTP-BRIDGE: App server exited with status code: 1
** SANDSTORM SUPERVISOR: App exited with status code: 1
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
[info] jsDAV cannot load plugin 'codesearch': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filelist': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filesearch': Cannot find module 'gnu-tools'
Mounting webdav from data dir /var/davros/data
Storing temporary files in /var/davros/tmp
Davros started in 376ms, listening on port 8000
PUT /LibreOffice%20Document%20in%20English.odt 200 11.637 ms - 2492
PROPFIND /remote.php/webdav/ 207 122.354 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/apollo-6.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fapollo-6.jpg&width=24&height=24&op=fit&ts=1582905988000 200 9.129 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/pluto.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fpluto.jpg&width=24&height=24&op=fit&ts=1582905988000 200 2.827 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/shuttle.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fshuttle.jpg&width=24&height=24&op=fit&ts=1582905988000 200 1.254 ms - -
GET /files 200 1.229 ms - -
PROPFIND /remote.php/webdav/ 207 211.490 ms - -
GET /api/permissions 200 0.105 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/apollo-6.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fapollo-6.jpg&width=24&height=24&op=fit&ts=1582905988000 200 0.967 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/pluto.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fpluto.jpg&width=24&height=24&op=fit&ts=1582905988000 200 0.810 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/shuttle.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fshuttle.jpg&width=24&height=24&op=fit&ts=1582905988000 200 11.137 ms - -
PROPFIND /remote.php/webdav/test/ 207 108.588 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
(node:5) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
PROPFIND /remote.php/webdav/ 207 39.195 ms - -
PROPFIND /remote.php/webdav// 207 40.691 ms - -
PROPFIND /remote.php/webdav/ 207 13.856 ms - -
PROPFIND /remote.php/webdav/ 207 80.833 ms - -
PROPFIND /remote.php/webdav/ 207 41.188 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/apollo-6.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fapollo-6.jpg&width=24&height=24&op=fit&ts=1582905988000 200 3.938 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/pluto.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fpluto.jpg&width=24&height=24&op=fit&ts=1582905988000 200 1.927 ms - -
Thumbnailer cache hit for 24-24-fit-/remote.php/webdav/shuttle.jpg
GET /api/thumbnail?url=%2Fremote.php%2Fwebdav%2Fshuttle.jpg&width=24&height=24&op=fit&ts=1582905988000 200 1.119 ms - -
PROPFIND /remote.php/webdav/ 207 34.023 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt - - ms - -
_http_outgoing.js:470
    throw new ERR_HTTP_HEADERS_SENT('set');
    ^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:470:11)
    at setHeadersFromObject (/opt/app/node_modules/on-headers/index.js:94:16)
    at ServerResponse.setWriteHeadHeaders (/opt/app/node_modules/on-headers/index.js:122:5)
    at ServerResponse.writeHead (/opt/app/node_modules/on-headers/index.js:30:36)
    at /opt/app/node_modules/jsDAV/lib/DAV/handler.js:902:47
    at /opt/app/node_modules/jsDAV/lib/shared/asyncEvents.js:82:13
    at handler (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:371:33)
    at handler (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:146:21)
    at Object.next (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:451:13)
    at exports.Generator.next (/opt/app/node_modules/jsDAV/node_modules/asyncjs/lib/async.js:144:20)
** HTTP-BRIDGE: App server exited with status code: 1
** SANDSTORM SUPERVISOR: App exited with status code: 1
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
[info] jsDAV cannot load plugin 'codesearch': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filelist': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filesearch': Cannot find module 'gnu-tools'
Mounting webdav from data dir /var/davros/data
Storing temporary files in /var/davros/tmp
Davros started in 351ms, listening on port 8000
(node:5) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt 500 120015.229 ms - -
PROPFIND /remote.php/webdav/ 207 81.404 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PROPFIND /remote.php/webdav/ 207 41.061 ms - -
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt 500 120004.562 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt 500 120066.549 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
PROPFIND /remote.php/webdav/test/ 207 39.220 ms - -
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt 500 120007.678 ms - -
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
** SANDSTORM SUPERVISOR: Grain no longer in use; shutting down.
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
[info] jsDAV cannot load plugin 'codesearch': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filelist': Cannot find module 'gnu-tools'
[info] jsDAV cannot load plugin 'filesearch': Cannot find module 'gnu-tools'
Mounting webdav from data dir /var/davros/data
Storing temporary files in /var/davros/tmp
Davros started in 366ms, listening on port 8000
(node:5) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
GET /changelog 200 18.824 ms - -
PUT /remote.php/webdav/LibreOffice%20Document%20in%20Serbian%20%28Latin%29.odt 500 120016.435 ms - -
GET /api/publish/info 200 73.684 ms - 2
bytersproblem commented 4 years ago

It seems now that EpanDrive only errors when the file is inputted thought the file manager (Thunar). When I use ExpanDrive Interface, files seem to copy to Davros well.

ocdtrekkie commented 4 years ago

@nukedone I actually installed a trial of ExpanDrive to test, and yeah, the file explorer view is weird... it seems to mount a drive letter for me, and the UI shows the files in Davros, but the file explorer folder does not. I can confirm the UI also works fine for uploading to a Davros grain.

I would lean towards that being an ExpanDrive bug, not a Davros bug. (Although, if someone ever contributes a fix for #93, it may also improve oddities with Davros sync to clients that know ownCloud/Nextcloud's WebDAV implementation.

I would point out that @mnutt largely released 0.24 to officially state that support for ownCloud/Nextcloud isn't supported, not to actually fix anything about the WebDAV implementation. So unless someone wants to really take this side of things up, you may not see a ton of fixes here. Davros is still super useful from it's UI and web publishing features.

bytersproblem commented 4 years ago

Yet it seems that the cat is in ExpanDrive's yard. I will close the issue report with this comment.