Apache OpenOffice (AOO) Bugzilla – Issue 92644
Freezes until a NFS access is timed out
Last modified: 2017-05-20 11:35:07 UTC
Phenomenon: soffice.bin freezes until a NFS access is timed out. Reproduction: 1. File > Open. 2. Fill the File name field with /net/10.0.0.70/ , an IP address of NFS server. Please substitute the IP address with that of your NFS server. 3. Press the Open button. Results: On Solaris, there is a problem that soffice.bin freezes until an attempt of accessing to /net/1 is finished with an error ENOENT because of timeout. It seems that a user has to wait for 500 seconds to see a list of the files in the NFS server if he/she types an IP address of NFS server instead of its hostname. On Linux, there seems no problem from user's point of view. However, some unnecessary accesses can be observed, such as accessing to /net/1, /net/10, /net/10., /net/10.0, and so on. Details: Solaris (Solaris Express Developer Edition 1/08), DEV300_m28 truss -o log.txt -d -p process_id_of_soffice.bin /48: 5.7904 access("/net", F_OK) = 0 /1: 5.7907 pollsys(0x080B84A0, 7, 0x08044B88, 0x00000000) = 0 /48: 5.7909 lstat64("/net", 0xC2E8D8C0) = 0 /1: 5.7910 ioctl(6, I_NREAD, 0x08044B00) = 0 /48: 5.7913 access("/net", F_OK) = 0 /48: 5.7916 lstat64("/net", 0xC2E8D690) = 0 /48: 5.7920 openat(AT_FDCWD, "/net", O_RDONLY|O_NDELAY|O_LARGEFILE) = 62 /48: 5.7922 fcntl(62, F_SETFD, 0x00000001) = 0 /48: 5.7924 fstat64(62, 0xC2E8D3D0) = 0 /48: 5.7926 getdents64(62, 0xD1614000, 8192) = 112 /48: 5.7927 lstat64("/net/10.0.0.50", 0xC2E8D890) = 0 /48: 5.7930 lstat64("/net/10.0.0.70", 0xC2E8D890) = 0 ...(omitted)... /1: 7.2010 ioctl(6, I_NREAD, 0x08044B00) = 0 /7: pollsys(0xC7BFDCF4, 1, 0xC7BFDBF8, 0x00000000) (sleeping...) /49: access("/net/1", F_OK) (sleeping...) /7: 7.2105 pollsys(0xC7BFDCF4, 1, 0xC7BFDBF8, 0x00000000) = 0 ...(omitted)... /49: 509.2507 access("/net/1", F_OK) Err#2 ENOENT /49: 509.2526 access("/net/1", F_OK) Err#2 ENOENT /49: 509.2541 access("/net", F_OK) = 0 /49: 509.2543 lstat64("/net", 0xC2D8D690) = 0 /49: 509.2547 openat(AT_FDCWD, "/net", O_RDONLY|O_NDELAY|O_LARGEFILE) = 62 /49: 509.2550 fcntl(62, F_SETFD, 0x00000001) = 0 /49: 509.2552 fstat64(62, 0xC2D8D3D0) = 0 /49: 509.2556 getdents64(62, 0xD1614000, 8192) = 80 ...(omitted)... /1: 509.2735 access("/net/10.0.0.70", F_OK) = 0 /50: 509.2739 lwp_exit() /1: 509.2777 lstat64("/net/10.0.0.70", 0x08043620) = 0 /1: 509.2872 openat(AT_FDCWD, "/net/10.0.0.70", O_RDONLY|O_NDELAY|O_LARGEFILE) = 62 /1: 509.2874 fcntl(62, F_SETFD, 0x00000001) = 0 /1: 509.2875 fstat64(62, 0x08042E30) = 0 /1: 509.2877 getdents64(62, 0xD1614000, 8192) = 80 /1: 509.2879 lstat64("/net/10.0.0.70/export", 0x08043360) = 0 Linux (Fedora Core 6), OpenOffice.org 2.4.1 strace -o log.txt -t trace=file -f /opt/openoffice.org2.4/program/soffice 2265 access("/net", F_OK) = 0 2265 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2265 access("/net", F_OK) = 0 2265 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2265 open("/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2265 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2266 access("/net/1", F_OK) = -1 ENOENT (No such file or directory) 2266 access("/net/1", F_OK) = -1 ENOENT (No such file or directory) 2266 access("/net", F_OK) = 0 2266 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2266 open("/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2266 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2269 access("/net/10", F_OK) = -1 ENOENT (No such file or directory) 2269 access("/net/10", F_OK) = -1 ENOENT (No such file or directory) 2269 access("/net", F_OK) = 0 2269 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2269 open("/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2269 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2272 access("/net/10.", F_OK) = -1 ENOENT (No such file or directory) 2272 access("/net/10.", F_OK) = -1 ENOENT (No such file or directory) ...(omitted)... 2283 access("/net", F_OK) = 0 2283 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2283 open("/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2283 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2286 access("/net/10.0.0.7", F_OK) = -1 ENOENT (No such file or directory) 2286 access("/net/10.0.0.7", F_OK) = -1 ENOENT (No such file or directory) 2286 access("/net", F_OK) = 0 2286 lstat64("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 2286 open("/net", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2286 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2245 access("/net/10.0.0.70", F_OK) = 0 2245 lstat64("/net/10.0.0.70", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 2245 open("/net/10.0.0.70", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 35 2245 lstat64("/net/10.0.0.70/export", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 Expectation: It could be better if soffice.bin would never freeze even though a user fills the File name field with any type of path name in the file selection dialog. Solutions: Some solutions could be considered. For instance: (a) Removing a series of unnecessary attempts of accessing to partial path. (b) Accepting a ESC key stroke or some similar key one to interrupt the access.
Corrected OS and Platform fields. Lowered priority from P3 to P4.
mhu->kso: Kay, can you please have a look who would be the best person to evaluate / fix this issue? Thanks, Matthias
Adding myself to CC ...
mba: UCB API is synchronous as you know. If we want to avoid freezes we must implement the logic for this in the application framework. Please take over. kso->mhu: My first name is Kai, not Kay ;-)
Reset assigne to the default "issues@openoffice.apache.org".