Issue 92644 - Freezes until a NFS access is timed out
Summary: Freezes until a NFS access is timed out
Status: CONFIRMED
Alias: None
Product: ucb
Classification: Code
Component: code (show other issues)
Version: DEV300m28
Hardware: Sun Solaris
: P4 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on: 104535
Blocks:
  Show dependency tree
 
Reported: 2008-08-11 06:56 UTC by tora3
Modified: 2017-05-20 11:35 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description tora3 2008-08-11 06:56:48 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.
Comment 1 tora3 2008-08-11 18:48:48 UTC
Corrected OS and Platform fields.
Lowered priority from P3 to P4.
Comment 2 matthias.huetsch 2008-08-21 13:48:23 UTC
mhu->kso: Kay, can you please have a look who would be the best person to
evaluate / fix this issue? Thanks, Matthias
Comment 3 matthias.huetsch 2008-08-21 13:49:55 UTC
Adding myself to CC ...
Comment 4 kai.sommerfeld 2008-08-25 08:21:05 UTC
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 ;-)
Comment 5 Marcus 2017-05-20 11:35:07 UTC
Reset assigne to the default "issues@openoffice.apache.org".