Race condition with data loss in ReadWritePart

Martin Pley kde-core at pley.org
Sat Feb 23 19:52:19 GMT 2008


> I noticed a race condition with data loss in ReadWritePart:
>
> Try to open a non-local-file from a slow or offline server. Then, instead
> of waiting for the file, just open another local file. Now, when you delete
> the part, the file is deleted(!).
>
> If I see it correctly, this is because m_bTemp is set to "true" while
> opening the remote file. And when you open the local file it will not be
> set to false again.

It's actually not a race condition. I reimplemented ReadWritePart::closeURL() 
without setting m_bTemp to false. And when I delete the part, ~ReadOnlyPart 
calls ReadOnlyPart::closeURL(), which deletes the file.

Perhaps one should add a warning to the documentation of closeURL().






More information about the kde-core-devel mailing list