ownCloud Client 1.2.3

owncloud-icon-256Today, along with the server updates, we have released ownCloud Client 1.2.3. This release will continue working users of the 4.5 series. Clearly the most important and single-most annoying bug this release addresses is the creation of illegitimate conflict files. This can happen due to several reasons. Lately, it has been reported due to a regression in 5.0.0 (which was fixed in 5.0.3). We now compare the files for equality, which avoids illegitimate conflict files on the client side.

We also fixed the sync handling of Microsoft Office Documents and possibly other locked files on Windows: Before, when a file was locked (e.g. by an Office application), the client would think that the file was gone, deleting it from the server (and hence other clients) until the application would release the file again. In 1.2.2, when a file is locked, the Client simply skips it. We all ignore the lock files.

People have reported this behavior as a bug for OpenOffice files already, because they think that we should transport the lock file. However, this is wrong: Suppose you sync while someone else has a lock on the file and then you go on the train: You will not be able to open the file due to the lock file. Also, by the time the lock file is synced, the original author might already have closed down the Application that was locking it. This is a matter of principle: unlike on a local file system, two people editing the same file is perfectly ok — it will result in a legitimate conflict during sync, and only on one of the sides.

Finally, a quick tour through the additional changes: We fixed some of the crashes seen especially on Mac OS when setting up a folder. Also, Linux users using Nautilus will now have their sync folder will be automatically added to Nautilus during sync setup. Finally, the Client now works with screen readers on Windows. For those observing crashes after some time on Linux, please read this post for a description of workarounds.

The packages are available at the usual place and pose a significant improvement over 1.2.1 for many users, especially when using a 5.0 server (which you should also upgrade). For the next release, we are working on chunked syncing, and an overhaul of the user interface, which also brings a lot of code improvements along the way. Stay tuned.

On ownCloud Client Linux-Crashes

We had many reports on crashes due to exhaustion of file descriptors on Linux. When we started to look into them, we found that unfortunately they all have their cause in broken packages further down the dependency chain:

One confirmed leak is due to a bug in libgnutls/libgcrypt, which is not unload-safe and keeps opening /dev/random at every sync run. I added a workaround for this in 1.2.1, but that will only work if you have the unversioned .so files installed. Those are part of your distributions libgnutls-devel package.

The other leak we observed, which leaks sockets, has not finally be investigated, but seems to be related to gnome-keyring’s pkcs#11 support. Moving away /etc/pkcs11/modules/gnome-keyring-module works around the issue. We are on working proper fixes and/or getting in touch with the original authors and distro package maintainers.

I will update this post with more findings as they appear.