https://bugs.kde.org/show_bug.cgi?id=452729

Harald Sitter <sit...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|SMB Copy to Windows 10      |SlaveBase::mimeType never
                   |always fails for large      |returns
                   |files                       |
           Severity|normal                      |major
          Component|Samba                       |general
     Ever confirmed|0                           |1
            Version|21.12.3                     |git master
           Priority|NOR                         |HI
                 CC|                            |fa...@kde.org,
                   |                            |kdelibs-b...@kde.org,
                   |                            |meven....@kdemail.net
           Assignee|plasma-b...@kde.org         |kio-bugs-n...@kde.org
            Product|kio-extras                  |frameworks-kio
             Status|REPORTED                    |CONFIRMED

--- Comment #5 from Harald Sitter <sit...@kde.org> ---
This is the weirdest bug I've seen like ever. It's 100% reproducible and also
not that hard to hit during regular use. Bumping bug importance consequently.
Moving to KIO since I suspect there's a bug in there somewhere. This happens
also with samba servers.

The easiest way to test is to simply copy a file from local to remote twice,
i.e. have an overwrite on the second copy. `smbstatus -L` on the server should
show that the file remains locked after the second copy and further copying
will fail on the busy file.

What happens here ultimately is that mimeType() in the SMB worker never
returns. Why that happens I don't understand.
Specifically this is the result of a rather unfortunate chain of events:
Something inside plasmashell (supposedly the progress notification) is causing
a call to ::get() (supposedly for mimetype query) and that SMB::get() call
never returns because it gets stuck on emitting mimeType(), which in turn is
stuck because the Interface never replies with the correct CMD. Because
mimeType() never returns, get() never returns, thus the open file is never
closed and that is why the file is busy (i.e. open file = locked file = busy
file = cannot be written to). 

I've tried to bisect this in KIO but that lead to
1306904f90b21b663e68a7dec4f67d81ef4fa11c which I don't see how it cause this
other than incidentally enabling whatever it is inside plasmashell that causes
the ::get() call.

Needs someone who has the slave IPC loaded into brain.

David, Meven, thoughts?

As a workaround one can `killall kioslave5` and that should free the file lock
almost instantly.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to