[Development] [QLockFile] Whether it is reasonable to use 0644 permission ?
Denis Shienkov
denis.shienkov at gmail.com
Wed Jul 27 08:49:14 CEST 2016
Hi all.
As I can see, the QLockFile opens a lock-file with the 0644 permissions
in Linux, e.g. see QLockFile::LockError QLockFilePrivate::tryLock_sys() [1].
That means that only one user (owner) can modify this file. But it leads
to problems, for example, when this use-case:
1. User 'A' creates the lock-file for the some resource
2. The application crashed, and this lock-file stays undeleted/unchanged
3. User 'B' tries to use same free resource, but it is failed due to
QLockFile can not write appropriate pid to the lock-file, since user 'B'
has not access to modify this lock-file.
This happens, e.g. when user 'A' is root and so on.
Currently this problem belongs to QSerialPort which internally uses
QLockFile to indication of employment of the /dev/ttyXYZ resources.
When it is impossible to open serial port when its lock-file has been
created from other user. There are only one workaround - it is remove
this lock-file manually.
Why just do not use 0666 permissions for this?
BR,
Denis
[1]
http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/io/qlockfile_unix.cpp#n181
More information about the Development
mailing list