Closed SystemKeeper closed 8 months ago
The trace doesn't look too specific to richdocuments. It looks a bit like https://github.com/nextcloud/server/blob/cec0b310a5af84d5afae4afa2449840dcdca56be/apps/files_versions/lib/Listener/FileEventsListener.php#L202 is called with an empty path for some reason.
Wondering if https://github.com/nextcloud/groupfolders/pull/2543 might be related/needed for 27.1
The trace doesn't look too specific to richdocuments.
Hm, right, I didn't even notice that. I did take a look at older logs and also found the same error in 27.0.2.1. So I guess it's not related to the PR mentioned above?!
{
"Exception": "Exception",
"Message": "OC\\Files\\View::basicOperation(): Argument #2 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 518 in file '/var/www/nextcloud/lib/private/Files/View.php' line 1110",
"Code": 0,
"Trace": [
{
"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
"line": 183,
"function": "dispatch",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Route/Router.php",
"line": 315,
"function": "main",
"class": "OC\\AppFramework\\App",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/base.php",
"line": 1071,
"function": "match",
"class": "OC\\Route\\Router",
"type": "->"
},
{
"file": "/var/www/nextcloud/index.php",
"line": 36,
"function": "handleRequest",
"class": "OC",
"type": "::"
}
],
"File": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"Line": 169,
"Previous": {
"Exception": "TypeError",
"Message": "OC\\Files\\View::basicOperation(): Argument #2 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 518",
"Code": 0,
"Trace": [
{
"file": "/var/www/nextcloud/lib/private/Files/View.php",
"line": 518,
"function": "basicOperation",
"class": "OC\\Files\\View",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/Filesystem.php",
"line": 545,
"function": "file_exists",
"class": "OC\\Files\\View",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/files_versions/lib/Storage.php",
"line": 189,
"function": "file_exists",
"class": "OC\\Files\\Filesystem",
"type": "::"
},
{
"file": "/var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php",
"line": 210,
"function": "store",
"class": "OCA\\Files_Versions\\Storage",
"type": "::"
},
{
"file": "/var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php",
"line": 107,
"function": "write_hook",
"class": "OCA\\Files_Versions\\Listener\\FileEventsListener",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php",
"line": 86,
"function": "handle",
"class": "OCA\\Files_Versions\\Listener\\FileEventsListener",
"type": "->"
},
{
"file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 251,
"function": "__invoke",
"class": "OC\\EventDispatcher\\ServiceEventListener",
"type": "->"
},
{
"file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 73,
"function": "callListeners",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php",
"line": 94,
"function": "dispatch",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php",
"line": 106,
"function": "dispatch",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/Node/HookConnector.php",
"line": 112,
"function": "dispatchTyped",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/legacy/OC_Hook.php",
"line": 105,
"function": "write",
"class": "OC\\Files\\Node\\HookConnector",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/View.php",
"line": 586,
"function": "emit",
"class": "OC_Hook",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/private/Files/View.php",
"line": 629,
"function": "emit_file_hooks_pre",
"class": "OC\\Files\\View",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/Node/File.php",
"line": 73,
"function": "file_put_contents",
"class": "OC\\Files\\View",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php",
"line": 504,
"function": "putContent",
"class": "OC\\Files\\Node\\File",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php",
"line": 786,
"function": "OCA\\Richdocuments\\Controller\\{closure}",
"class": "OCA\\Richdocuments\\Controller\\WopiController",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php",
"line": 763,
"function": "retryOperation",
"class": "OCA\\Richdocuments\\Controller\\WopiController",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/Lock/LockManager.php",
"line": 39,
"function": "OCA\\Richdocuments\\Controller\\{closure}",
"class": "OCA\\Richdocuments\\Controller\\WopiController",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php",
"line": 766,
"function": "runInScope",
"class": "OC\\Files\\Lock\\LockManager",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php",
"line": 503,
"function": "wrappedFilesystemOperation",
"class": "OCA\\Richdocuments\\Controller\\WopiController",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 230,
"function": "putFile",
"class": "OCA\\Richdocuments\\Controller\\WopiController",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 137,
"function": "executeController",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
"line": 183,
"function": "dispatch",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Route/Router.php",
"line": 315,
"function": "main",
"class": "OC\\AppFramework\\App",
"type": "::"
},
{
"file": "/var/www/nextcloud/lib/base.php",
"line": 1071,
"function": "match",
"class": "OC\\Route\\Router",
"type": "->"
},
{
"file": "/var/www/nextcloud/index.php",
"line": 36,
"function": "handleRequest",
"class": "OC",
"type": "::"
}
],
"File": "/var/www/nextcloud/lib/private/Files/View.php",
"Line": 1110
}
Ah, just found a server issue about this, sounds like the same problem: https://github.com/nextcloud/server/issues/40090
Hi. We found the same problem using a.) Android NC-App or iOS NC-app trying to save a collabora-document b.) NC 27.1.1 (in docker) + NC-Office 8.2.0, collabora/code:23.05.4.2.1 (in docker), NC-AndroidApp v3.25.0 c.) no groupfolder app d.) the user is trying to edit a file inside a shared folder which he/she is not allow to create/delete documents in.
does this help to track it down? I do get five log-messages corresponding to five tries by collabora. The collabora log says:
office | wsd-00010-53877 2023-10-05 20:58:49.851467 +0000 [ docbroker_352 ] ERR Failed to upload docKey [https%3A%2F%2Fcloud.xxxxxxxx%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F4525979_oc5ejzyaxyvh] to URI [https://cloud.xxxxxxxxxxxxxx/index.php/apps/richdocuments/wopi/files/4525979_oc5ejzyaxyvh?access_token=24Lye5KB0IUUQdGMTNu0GaFkRIJ6gimc&access_token_ttl=1696575335000]. Notifying client.| wsd/DocumentBroker.cpp:2045
office | wsd-00010-53877 2023-10-05 20:58:49.851585 +0000 [ docbroker_352 ] ERR Failed to store the document and reached maximum retry count of 5. Giving up. The document should be recoverable from the quarantine. Save failures: 0, Upload failures: 5| wsd/DocumentBroker.cpp:436
The trace doesn't look too specific to richdocuments. It looks a bit like https://github.com/nextcloud/server/blob/cec0b310a5af84d5afae4afa2449840dcdca56be/apps/files_versions/lib/Listener/FileEventsListener.php#L202 is called with an empty path for some reason.
Hi @juliushaertl I can verify this now: Here: https://github.com/nextcloud/server/issues/40090#issuecomment-1750762886 I have reproduced that the mobile editing of a file shared with me is differently handled than the webediting of the same shared file by me.
In the mobile-editing case, the $path is "null", since the $node is the $node of the file-owner. Thus the truncation to a relativepath fails, since /alice/files/i_own_this/file.odt
does not compare to /bob/file/file.odt
. I am not sure, if the $node object is the wrong one or that is the way richdocuments does it in the mobileediting case.
In the web-editing case, everything works out. the $node is the $node of the editor, not the file-owner.
This looks like #2896.
When I disable the version app, the problem is solved for me. The version of the version app is 1.20.0 Is this solved in a newer version?
Is this solved in a newer version?
I have disabled the files_version app since the error occurred, so not sure. From my gut feeling I would say "no", as otherwise this or the server issue would have been referenced, but of course it's always possible it was fixed as a side effect of some other change.
Fixed for me with the latest NC version, I actived the version App again.
Describe the bug When opening a file via the iOS Files app on an iPad and edit something, I am unable to save the changes. When closing the document and opening it again it's still the old state.
To Reproduce Steps to reproduce the behavior:
Please note: The file that was tried to edit is on a groupfolder and was then shared to a user (not sure if relevant). So User1 -> Groupfolder1 -> File1 User1 shares File1 to User2 User2 tries to edit File1
Expected behavior The changes should be saved, but they're not (or not always? not sure). Log see below. When I tested it again, it worked. But I can see the exception regularly in my log.
Screenshots If applicable, add screenshots to help explain your problem.
Client details:
Server details
Operating system: Debian 11.7
Web server: Apache
Database: MySQL
PHP version: 8.2.8
Nextcloud version: 27.1.0 RC 1
Version of the richdocuments app 8.1.1
Version of Collabora Online Coolwsd version details: 23.05.3.1 - a719c0f - id 176fd4c0 - on Debian GNU/Linux 12 (bookworm)
Logs
#### Nextcloud log (data/nextcloud.log) ``` { "Exception": "Exception", "Message": "OC\\Files\\View::basicOperation(): Argument #2 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 518 in file '/var/www/nextcloud/lib/private/Files/View.php' line 1118", "Code": 0, "Trace": [ { "file": "/var/www/nextcloud/lib/private/AppFramework/App.php", "line": 183, "function": "dispatch", "class": "OC\\AppFramework\\Http\\Dispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Route/Router.php", "line": 315, "function": "main", "class": "OC\\AppFramework\\App", "type": "::" }, { "file": "/var/www/nextcloud/lib/base.php", "line": 1071, "function": "match", "class": "OC\\Route\\Router", "type": "->" }, { "file": "/var/www/nextcloud/index.php", "line": 36, "function": "handleRequest", "class": "OC", "type": "::" } ], "File": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php", "Line": 169, "Previous": { "Exception": "TypeError", "Message": "OC\\Files\\View::basicOperation(): Argument #2 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 518", "Code": 0, "Trace": [ { "file": "/var/www/nextcloud/lib/private/Files/View.php", "line": 518, "function": "basicOperation", "class": "OC\\Files\\View", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Files/Filesystem.php", "line": 545, "function": "file_exists", "class": "OC\\Files\\View", "type": "->" }, { "file": "/var/www/nextcloud/apps/files_versions/lib/Storage.php", "line": 189, "function": "file_exists", "class": "OC\\Files\\Filesystem", "type": "::" }, { "file": "/var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php", "line": 210, "function": "store", "class": "OCA\\Files_Versions\\Storage", "type": "::" }, { "file": "/var/www/nextcloud/apps/files_versions/lib/Listener/FileEventsListener.php", "line": 107, "function": "write_hook", "class": "OCA\\Files_Versions\\Listener\\FileEventsListener", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php", "line": 86, "function": "handle", "class": "OCA\\Files_Versions\\Listener\\FileEventsListener", "type": "->" }, { "file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php", "line": 251, "function": "__invoke", "class": "OC\\EventDispatcher\\ServiceEventListener", "type": "->" }, { "file": "/var/www/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php", "line": 73, "function": "callListeners", "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php", "line": 94, "function": "dispatch", "class": "Symfony\\Component\\EventDispatcher\\EventDispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/EventDispatcher/EventDispatcher.php", "line": 106, "function": "dispatch", "class": "OC\\EventDispatcher\\EventDispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Files/Node/HookConnector.php", "line": 112, "function": "dispatchTyped", "class": "OC\\EventDispatcher\\EventDispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/legacy/OC_Hook.php", "line": 105, "function": "write", "class": "OC\\Files\\Node\\HookConnector", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Files/View.php", "line": 586, "function": "emit", "class": "OC_Hook", "type": "::" }, { "file": "/var/www/nextcloud/lib/private/Files/View.php", "line": 629, "function": "emit_file_hooks_pre", "class": "OC\\Files\\View", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Files/Node/File.php", "line": 73, "function": "file_put_contents", "class": "OC\\Files\\View", "type": "->" }, { "file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php", "line": 504, "function": "putContent", "class": "OC\\Files\\Node\\File", "type": "->" }, { "file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php", "line": 786, "function": "OCA\\Richdocuments\\Controller\\{closure}", "class": "OCA\\Richdocuments\\Controller\\WopiController", "type": "->", "args": [ "*** sensitive parameters replaced ***" ] }, { "file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php", "line": 763, "function": "retryOperation", "class": "OCA\\Richdocuments\\Controller\\WopiController", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Files/Lock/LockManager.php", "line": 39, "function": "OCA\\Richdocuments\\Controller\\{closure}", "class": "OCA\\Richdocuments\\Controller\\WopiController", "type": "->", "args": [ "*** sensitive parameters replaced ***" ] }, { "file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php", "line": 766, "function": "runInScope", "class": "OC\\Files\\Lock\\LockManager", "type": "->" }, { "file": "/var/www/nextcloud/apps/richdocuments/lib/Controller/WopiController.php", "line": 503, "function": "wrappedFilesystemOperation", "class": "OCA\\Richdocuments\\Controller\\WopiController", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php", "line": 230, "function": "putFile", "class": "OCA\\Richdocuments\\Controller\\WopiController", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php", "line": 137, "function": "executeController", "class": "OC\\AppFramework\\Http\\Dispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/AppFramework/App.php", "line": 183, "function": "dispatch", "class": "OC\\AppFramework\\Http\\Dispatcher", "type": "->" }, { "file": "/var/www/nextcloud/lib/private/Route/Router.php", "line": 315, "function": "main", "class": "OC\\AppFramework\\App", "type": "::" }, { "file": "/var/www/nextcloud/lib/base.php", "line": 1071, "function": "match", "class": "OC\\Route\\Router", "type": "->" }, { "file": "/var/www/nextcloud/index.php", "line": 36, "function": "handleRequest", "class": "OC", "type": "::" } ], "File": "/var/www/nextcloud/lib/private/Files/View.php", "Line": 1118 } ``` #### Collabora log ``` wsd-00001-01352 2023-09-08 07:09:08.998918 +0000 [ docbroker_03f ] ERR Unexpected response to WOPI::PutFile. Cannot upload file to WOPI storage uri [https://<...>/index.php/apps/richdocuments/wopi/files/847474_oc4r8rpp6vq8/contents?access_token=<...>&access_token_ttl=1694192312000&permission=edit]: 500 (Internal Server Error) Internal Server Error: ..... wsd-00001-01352 2023-09-08 07:09:08.999299 +0000 [ docbroker_03f ] ERR Failed to upload docKey [https%3A%2F%2F<....>%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F847474_oc4r8rpp6vq8] to URI [https://<...>/index.php/apps/richdocuments/wopi/files/847474_oc4r8rpp6vq8?access_token=<...>&access_token_ttl=1694192312000&permission=edit]. Notifying client.| wsd/DocumentBroker.cpp:2045 wsd-00001-01352 2023-09-08 07:09:12.476455 +0000 [ docbroker_03f ] ERR Failed to store the document and reached maximum retry count of 5. Giving up. The document should be recoverable from the quarantine. Save failures: 0, Upload failures: 7| wsd/DocumentBroker.cpp:436 ```