https://bugs.documentfoundation.org/show_bug.cgi?id=98949

            Bug ID: 98949
           Summary: Filesystem locks not released
           Product: LibreOffice
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: LibreOffice
          Assignee: [email protected]
          Reporter: [email protected]

Hi,


I've noticed locking problems when I want to open LO files stored on my
Synology NAS, exported via NFS. I run LO from Linux Ubuntu clients (15.10).

When trying to open a file on the NFS server, LO shows an error message (after
about 30 seconds, probably a timeout) and proposes to open the file read-only
or to open a copy.

I "solved" the problem by rebooting the NAS, but it re-occurs after some time.

I've just given a quick look at LO sources, and noticed that in
sal/osl/unx/file.cxx (openFilePath), locks are acquired using fcntl(F_WRLCK),
but I couldn't find code to unlock the file.

There is support to unlock files in sal/osl/unx/profile.cxx
(OslProfile_lockFile), but I don't know if it's actually used.

My assumption is that LO could keep acquiring locks, never releasing them,
until the NAS is out of resources.

I ran:
$ strace -f soffice /path/to/nfs/file |& grep LK
[pid 19093] fcntl(14, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(14, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(29, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}
<unfinished ...>
[pid 19093] fcntl(35, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(35, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(35, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(42, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19093] fcntl(42, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19096] fcntl(43, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0
[pid 19107] fcntl(14, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0})
= 0

I only opened the file, then quit LibreOffice.

As you can see several locks are acquired, but none is released, possibly
leading to resource exhaustion.

I've updated bug #75488 which seems similar, but I'm not sure it got any
attention.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to