Bug 449689

Summary: [bug]: Files opened from a webdav network drive are not saved.
Product: [Frameworks and Libraries] kiofuse Reporter: Nikolaj <79625490833>
Component: generalAssignee: a.saoutkin
Status: REPORTED ---    
Severity: normal CC: 79625490833, fabian, kio-bugs-null, nate
Priority: NOR    
Version: 5.0.1   
Target Milestone: ---   
Platform: Mageia RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: libreoffice authorization window in webdav cloud
crash open the libreoffice
QT_LOGGING_RULES
KDE_FORK_SLAVES=1 QT_LOGGING_RULES
journalctl --user

Description Nikolaj 2022-02-06 10:26:53 UTC
Description of problem:
The problem is that the file opened from the webdav cloud service is not saved.

Version-Release number of selected component (if applicable):
Version: 7.2.5.2.0+
Build ID: 20(Build:2)
CPU threads: 6; OS: Linux 5.15; UI render: default; VCL: kf5 (cairo+xcb)
Locale: ru-RU (ru_RU.UTF-8); UI: ru-RU
Calc: threaded

nikolanp@localhost ~> rpm -qa | grep kio-fuse
kio-fuse-5.0.0-1.mga8
nikolanp@localhost ~> 


Operating System: Mageia 8
KDE Plasma Version: 5.20.4
KDE Frameworks Version: 5.76.0
Qt Version: 5.15.2
Kernel Version: 5.15.18-desktop-2.mga8
OS Type: 64-bit
Processors: 6 × AMD FX(tm)-6300 Six-Core Processor
Memory: 7.7 ГиБ of RAM
Graphics Processor: GeForce GT 630/PCIe/SSE2

nikolanp@localhost ~> rpm -qa | grep libre
lib64djvulibre21-3.5.28-1.1.mga8
libreoffice-ure-7.2.5.2-1.mga8
libreoffice-help-ru-7.2.5.2-1.mga8
libreoffice-ogltrans-7.2.5.2-1.mga8
libreoffice-data-7.2.5.2-1.mga8
libreoffice-ure-common-7.2.5.2-1.mga8
libreoffice-core-7.2.5.2-1.mga8
libreoffice-impress-7.2.5.2-1.mga8
libreoffice-opensymbol-fonts-7.2.5.2-1.mga8
libreoffice-pdfimport-7.2.5.2-1.mga8
libreoffice-math-7.2.5.2-1.mga8
libreoffice-pyuno-7.2.5.2-1.mga8
libreoffice-draw-7.2.5.2-1.mga8
libreoffice-kf5-7.2.5.2-1.mga8
libreoffice-calc-7.2.5.2-1.mga8
librepository-1.1.6-14.mga8
libreoffice-xsltfilter-7.2.5.2-1.mga8
libreoffice-graphicfilter-7.2.5.2-1.mga8
libreoffice-writer-7.2.5.2-1.mga8
libreoffice-gtk3-7.2.5.2-1.mga8
libreoffice-langpack-ru-7.2.5.2-1.mga8
libreoffice-base-7.2.5.2-1.mga8
nikolanp@localhost ~> 

How reproducible:
Open the document with webdav cloud and try to save the file.

Steps to Reproduce:
1. I open a document from the webdav cloud
2. Editing a document
3. Saving it

The error itself:
Error saving document 2_5452057959720817381:
/run/user/1000/kio-fuse-FTNvvj/webdavs/
ya.nicksab1491% 40yandex.ru @ webdav.yandex.ru:443/2_5452057959720817381.xls
does not exist.
Error saving document 2_5452057959720817381:
Object creation error.
Unable to create a backup.
ok
Comment 1 Fabian Vogt 2022-02-06 14:12:23 UTC
Is was also reported here: https://invent.kde.org/system/kio-fuse/-/issues/10

The cause was a bug in kio_http, which is fixed by https://invent.kde.org/frameworks/kio/-/merge_requests/48. That is part of kio 5.76.0 though, so you shold have the fix already. So this is probably a new issue.

Please try "killall kio-fuse; QT_LOGGING_RULES=*.debug=true /usr/lib64/libexec/kio-fuse -d" (the path might be different), reproduce the issue, and attach the output of the command.
Comment 2 Nikolaj 2022-02-06 14:27:59 UTC
(In reply to Fabian Vogt from comment #1)
> Is was also reported here: https://invent.kde.org/system/kio-fuse/-/issues/10
> 
> The cause was a bug in kio_http, which is fixed by
> https://invent.kde.org/frameworks/kio/-/merge_requests/48. That is part of
> kio 5.76.0 though, so you shold have the fix already. So this is probably a
> new issue.
> 
> Please try "killall kio-fuse; QT_LOGGING_RULES=*.debug=true
> /usr/lib64/libexec/kio-fuse -d" (the path might be different), reproduce the
> issue, and attach the output of the command.

nikolanp@localhost ~> sudo killall kio-fuse
nikolanp@localhost ~> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~
Comment 3 Fabian Vogt 2022-02-06 14:35:33 UTC
(In reply to Nikolaj from comment #2)
> (In reply to Fabian Vogt from comment #1)
> > Is was also reported here: https://invent.kde.org/system/kio-fuse/-/issues/10
> > 
> > The cause was a bug in kio_http, which is fixed by
> > https://invent.kde.org/frameworks/kio/-/merge_requests/48. That is part of
> > kio 5.76.0 though, so you shold have the fix already. So this is probably a
> > new issue.
> > 
> > Please try "killall kio-fuse; QT_LOGGING_RULES=*.debug=true
> > /usr/lib64/libexec/kio-fuse -d" (the path might be different), reproduce the
> > issue, and attach the output of the command.
> 
> nikolanp@localhost ~> sudo killall kio-fuse
> nikolanp@localhost ~> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
> FUSE library version: 3.10.1
> nikolanp@localhost ~

That happens if kio-fuse was still running when running the command. It's possible that it was restarted by dbus or systemd already. If it's the latter, you can try systemctl --user stop kio-fuse.service.
Comment 4 Nikolaj 2022-02-06 14:38:45 UTC
nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse.service
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
nikolanp@localhost ~ [1]>
Comment 5 Fabian Vogt 2022-02-06 14:39:57 UTC
(In reply to Nikolaj from comment #4)
> nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse.service
> Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not
> defined (consider using --machine=<user>@.host --user to connect to bus of
> other user)
> nikolanp@localhost ~ [1]>

Don't run it with sudo.
Comment 6 Nikolaj 2022-02-06 14:41:49 UTC
nikolanp@localhost ~> sudo killall kio-fuse
nikolanp@localhost ~> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~ [1]> kio-fuse 2>&1 | tee debug.log
fish: Unknown command: kio-fuse
nikolanp@localhost ~ [127]> /usr/libexec/kio-fuse 2>&1 | tee debug.log
nikolanp@localhost ~ [1|0]> sudo systemctl --user stop kio-fuse.service
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
nikolanp@localhost ~ [1]> sudo systemctl stop kio-fuse.service
Failed to stop kio-fuse.service: Unit kio-fuse.service not loaded.
nikolanp@localhost ~ [5]> sudo systemctl --user nikolanp stop kio-fuse.service
Unknown command verb nikolanp.
nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse.service
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
nikolanp@localhost ~ [1]> sudo systemctl stop kio-fuse
Failed to stop kio-fuse.service: Unit kio-fuse.service not loaded.
nikolanp@localhost ~ [5]> systemctl --user stop kio-fuse
nikolanp@localhost ~> sudo killall kio-fuse
kio-fuse: процесс не найден
nikolanp@localhost ~ [1]> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~ [1]>
Comment 7 Nikolaj 2022-02-06 14:42:29 UTC
(In reply to Fabian Vogt from comment #5)
> (In reply to Nikolaj from comment #4)
> > nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse.service
> > Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not
> > defined (consider using --machine=<user>@.host --user to connect to bus of
> > other user)
> > nikolanp@localhost ~ [1]>
> 
> Don't run it with sudo.

I tried it, same thing.
Comment 8 Fabian Vogt 2022-02-06 14:53:38 UTC
(In reply to Nikolaj from comment #7)
> (In reply to Fabian Vogt from comment #5)
> > (In reply to Nikolaj from comment #4)
> > > nikolanp@localhost ~ [1]> sudo systemctl --user stop kio-fuse.service
> > > Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not
> > > defined (consider using --machine=<user>@.host --user to connect to bus of
> > > other user)
> > > nikolanp@localhost ~ [1]>
> > 
> > Don't run it with sudo.
> 
> I tried it, same thing.

Then try to make sure through other ways that kio-fuse isn't running, like repeatedly calling "killall kio-fuse" before starting it.
Comment 9 Nikolaj 2022-02-06 15:14:14 UTC
Created attachment 146342 [details]
libreoffice authorization window in webdav cloud

After several attempts, the window came out. The log appeared, I did not reproduce the problem, if I reproduce it is not.
nikolanp@localhost ~ [1]> killall kio-fuse
nikolanp@localhost ~> killall kio-fuse
kio-fuse: процесс не найден
nikolanp@localhost ~ [1]> killall kio-fuse
kio-fuse: процесс не найден
nikolanp@localhost ~ [1]> systemctl --user stop kio-fuse
nikolanp@localhost ~> killall kio-fuse
kio-fuse: процесс не найден
nikolanp@localhost ~ [1]> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
unique: 2, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.34
flags=0x33fffffb
max_readahead=0x00020000
   INIT: 7.31
   flags=0x00409021
   max_readahead=0x00020000
   max_write=0x00100000
   max_background=0
   congestion_threshold=0
   time_gran=1000000000
   unique: 2, success, outsize: 80
unique: 4, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 2453
   unique: 4, success, outsize: 120
unique: 6, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2453
   unique: 6, success, outsize: 96
unique: 8, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 2453
   unique: 8, success, outsize: 120
unique: 10, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2453
   unique: 10, success, outsize: 96
^Z⏎                                                                                                                                                                                                                nikolanp@localhost ~ [1]> killall kio-fuse
nikolanp@localhost ~> systemctl --user stop kio-fuse
nikolanp@localhost ~> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~ [1]> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~ [1]> QT_LOGGING_RULES=*.debug=true /usr/libexec/kio-fuse -d
FUSE library version: 3.10.1
nikolanp@localhost ~ [1]>
Comment 10 Nikolaj 2022-02-06 15:16:40 UTC
Created attachment 146343 [details]
crash open the libreoffice

but the document doesn't open now.
Comment 11 Nikolaj 2022-02-06 15:29:12 UTC
Created attachment 146344 [details]
QT_LOGGING_RULES

launched before playback, otherwise the log does not go. I had to restart the system.
Comment 12 Fabian Vogt 2022-02-06 16:04:56 UTC
unique: 578, opcode: RENAME (12), nodeid: 6, insize: 108, pid: 4432
   unique: 578, error: -5 (Ошибка ввода/вывода), outsize: 16

That's probably the issue. However, I also don't see any WRITE operations with anywhere near enogh data (insize) for a document.

Using KDE_FORK_SLAVES=1 together with QT_LOGGING_RULES=*.debug=true would help here, but unfortunately kio_http does not try to strip passwords and other information from the logging, so I don't recommend uploading that log.

I was unable to reproduce the issue with "rclone serve webdav" as server, it might be a yandex specific issue like the SFTP one about hidden files also reported in https://invent.kde.org/system/kio-fuse/-/issues/10. Not sure how to proceed here...
Comment 13 Nikolaj 2022-02-07 07:24:15 UTC
Created attachment 146379 [details]
KDE_FORK_SLAVES=1 QT_LOGGING_RULES

Did.
Comment 14 Fabian Vogt 2022-02-07 09:02:54 UTC
(In reply to Nikolaj from comment #13)
> Created attachment 146379 [details]
> KDE_FORK_SLAVES=1 QT_LOGGING_RULES
> 
> Did.

Strangely that didn't have  the desired effect - no kio_http logs at all. No idea why, that should work. Maybe the messages ended up in a log file or the systemd journal?
Comment 15 Nikolaj 2022-02-07 10:06:20 UTC
Created attachment 146381 [details]
journalctl --user

Yes, there is something in journalctl.
Comment 16 Nikolaj 2022-02-09 12:24:50 UTC
Is there a solution? or no changes yet?