# [solved] Openoffice will nicht mit nfs

## ixo

Hallo,

ich habe ein seltsames Problem. Von meinem Server habe ich eine Disk per nfs gemounted:

```
$ mount | grep disk2

lotte:/disk2 on /disk2 type nfs (rw,nosuid,nodev,noatime,nfsvers=3,addr=192.168.172.201,user=hjc)

```

Ich kann in den entschprechenden Verzeichnissen normal agieren (lesen, schreiben).

Wenn ich aber mit Openoffice eine Datei öffne, (über konqueror, oder oo von der Commandline starte), öffnet oo die Datei immer nur zum Lesen. Das Öffnen dauert immer ziemlich lange (es passiert dann nichts, weder auf der Platte von auf der CPU):

```
$ strace ooffice gewicht.ods 

execve("/usr/bin/ooffice", ["ooffice", "gewicht.ods"], [/* 63 vars */]) = 0

brk(0)                                  = 0x8101000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f80000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=125562, ...}) = 0

mmap2(NULL, 125562, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f61000

close(3)                                = 0

open("/lib/libncurses.so.5", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\347"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=269752, ...}) = 0

mmap2(NULL, 269860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f1f000

mmap2(0xb7f58000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38) = 0xb7f58000

close(3)                                = 0

open("/lib/libdl.so.2", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\f\0\000"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=10192, ...}) = 0

mmap2(NULL, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f1b000

mmap2(0xb7f1d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f1d000

close(3)                                = 0

open("/lib/libc.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200Y\1"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1245984, ...}) = 0

mmap2(NULL, 1213884, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7df2000

mmap2(0xb7f15000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7f15000

mmap2(0xb7f18000, 9660, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f18000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7df1000

set_thread_area({entry_number:-1 -> 6, base_addr:0xb7df1940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xb7f15000, 4096, PROT_READ)   = 0

mprotect(0xb7f9c000, 4096, PROT_READ)   = 0

munmap(0xb7f61000, 125562)              = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3

close(3)                                = 0

brk(0)                                  = 0x8101000

brk(0x8122000)                          = 0x8122000

getuid32()                              = 1049

getgid32()                              = 100

geteuid32()                             = 1049

getegid32()                             = 100

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

time(NULL)                              = 1177232096

open("/proc/meminfo", O_RDONLY)         = 3

fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7f000

read(3, "MemTotal:      1024916 kB\nMemFre"..., 1024) = 728

close(3)                                = 0

munmap(0xb7f7f000, 4096)                = 0

rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0

uname({sys="Linux", node="fschjc", ...}) = 0

stat64("/disk2/home/hjc", {st_mode=S_IFDIR|0755, st_size=3904, ...}) = 0

stat64(".", {st_mode=S_IFDIR|0755, st_size=3904, ...}) = 0

getpid()                                = 15511

getppid()                               = 15510

getpgrp()                               = 15510

rt_sigaction(SIGCHLD, {0x8081f50, [], 0}, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/usr/bin/ooffice", O_RDONLY|O_LARGEFILE) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfc00818) = -1 ENOTTY (Inappropriate ioctl for device)

_llseek(3, 0, [0], SEEK_CUR)            = 0

read(3, "#!/bin/sh\nexport OOO_EXTRA_ARG=\'"..., 80) = 80

_llseek(3, 0, [0], SEEK_SET)            = 0

getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0

dup2(3, 255)                            = 255

close(3)                                = 0

fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0

fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)

fstat64(255, {st_mode=S_IFREG|0755, st_size=94, ...}) = 0

_llseek(255, 0, [0], SEEK_CUR)          = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "#!/bin/sh\nexport OOO_EXTRA_ARG=\'"..., 94) = 94

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7df1988) = 15512

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGINT, {0x807ef00, [], 0}, {SIG_DFL}, 8) = 0

waitpid(-1, libGL warning: 3D driver claims to not support visual 0x7d

                                       =============> hier wartet die Kiste ca. 30 Sekunden

[{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 15512

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

--- SIGCHLD (Child exited) @ 0 (0) ---

waitpid(-1, 0xbfc002ac, WNOHANG)        = -1 ECHILD (No child processes)

sigreturn()                             = ? (mask now [])

rt_sigaction(SIGINT, {SIG_DFL}, {0x807ef00, [], 0}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "", 94)                       = 0

exit_group(0)                           = ?

Process 15511 detached

```

Wenn ich dieselbe Datei von einem lokalen Filesystem lade, öffnet oo sie (schnell) zum Lesen + Schreiben:

```

$ strace ooffice gewicht.ods 

execve("/usr/bin/ooffice", ["ooffice", "gewicht.ods"], [/* 63 vars */]) = 0

brk(0)                                  = 0x8101000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f37000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=125562, ...}) = 0

mmap2(NULL, 125562, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f18000

close(3)                                = 0

open("/lib/libncurses.so.5", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\347"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=269752, ...}) = 0

mmap2(NULL, 269860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ed6000

mmap2(0xb7f0f000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38) = 0xb7f0f000

close(3)                                = 0

open("/lib/libdl.so.2", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\f\0\000"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=10192, ...}) = 0

mmap2(NULL, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ed2000

mmap2(0xb7ed4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7ed4000

close(3)                                = 0

open("/lib/libc.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200Y\1"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1245984, ...}) = 0

mmap2(NULL, 1213884, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7da9000

mmap2(0xb7ecc000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7ecc000

mmap2(0xb7ecf000, 9660, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ecf000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7da8000

set_thread_area({entry_number:-1 -> 6, base_addr:0xb7da8940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xb7ecc000, 4096, PROT_READ)   = 0

mprotect(0xb7f53000, 4096, PROT_READ)   = 0

munmap(0xb7f18000, 125562)              = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3

close(3)                                = 0

brk(0)                                  = 0x8101000

brk(0x8122000)                          = 0x8122000

getuid32()                              = 1049

getgid32()                              = 100

geteuid32()                             = 1049

getegid32()                             = 100

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

time(NULL)                              = 1177232664

open("/proc/meminfo", O_RDONLY)         = 3

fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f36000

read(3, "MemTotal:      1024916 kB\nMemFre"..., 1024) = 728

close(3)                                = 0

munmap(0xb7f36000, 4096)                = 0

rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0

uname({sys="Linux", node="fschjc", ...}) = 0

stat64("/home/hjc", {st_mode=S_IFDIR|0755, st_size=4936, ...}) = 0

stat64(".", {st_mode=S_IFDIR|0755, st_size=4936, ...}) = 0

getpid()                                = 15875

getppid()                               = 15874

getpgrp()                               = 15874

rt_sigaction(SIGCHLD, {0x8081f50, [], 0}, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/usr/bin/ooffice", O_RDONLY|O_LARGEFILE) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf803c28) = -1 ENOTTY (Inappropriate ioctl for device)

_llseek(3, 0, [0], SEEK_CUR)            = 0

read(3, "#!/bin/sh\nexport OOO_EXTRA_ARG=\'"..., 80) = 80

_llseek(3, 0, [0], SEEK_SET)            = 0

getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0

dup2(3, 255)                            = 255

close(3)                                = 0

fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0

fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)

fstat64(255, {st_mode=S_IFREG|0755, st_size=94, ...}) = 0

_llseek(255, 0, [0], SEEK_CUR)          = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "#!/bin/sh\nexport OOO_EXTRA_ARG=\'"..., 94) = 94

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7da8988) = 15876

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGINT, {0x807ef00, [], 0}, {SIG_DFL}, 8) = 0

waitpid(-1, libGL warning: 3D driver claims to not support visual 0x7d

[{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 15876

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

--- SIGCHLD (Child exited) @ 0 (0) ---

waitpid(-1, 0xbf8036bc, WNOHANG)        = -1 ECHILD (No child processes)

sigreturn()                             = ? (mask now [])

rt_sigaction(SIGINT, {SIG_DFL}, {0x807ef00, [], 0}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "", 94)                       = 0

exit_group(0)                           = ?

Process 15875 detached

```

Wie bereits geschrieben - nfs funktioniert außer bei oo ohne Probleme (schnell, performant, rw, . . .)

 :Question: 

Gruss, ixo

EDIT: Passiert mit OO2.1 und OO2.2, selbstkompiliert.Last edited by ixo on Sun Apr 22, 2007 11:42 am; edited 1 time in total

----------

## Max Steel

[merkeimer2malschauen]Kann es sein das du auf dem nfsserver in der /etc/exports noch die disk rw setzen musst, sieht dan so aus

```
/vol10 192.168.0.0/255.255.0.0(rw,async)
```

[/merkeimmer2malschauen]

Wenn du noch root_squash (Standard,soweit ich weiß) verwendest hast du auf diesem FileSystem keine Rootrechte, wenn du welche brauchst musst du no_root_squash verwenden.

----------

## ixo

Wie schon geschrieben, außerhalb von nfs klappt alles. Auf dem Client sieht das so aus:

 *Quote:*   

> $ mount | grep disk2
> 
> lotte:/disk2 on /disk2 type nfs (rw,nosuid,nodev,noatime,nfsvers=3,addr=192.168.172.201,user=hjc)
> 
> 

 

----------

## schachti

Besteht das Problem sowohl bei app-office/openoffice, als auch bei app-office/openoffice-bin?

----------

## franzf

 *schachti wrote:*   

> Besteht das Problem sowohl bei app-office/openoffice, als auch bei app-office/openoffice-bin?

 

Aber vor dem Test noch mit quickpkg openoffice ein bin-Paket erstellen, um sich 3-9h openoffice bauen zu sparen  :Very Happy: 

Alternativ (du schreibst ja dass du auf dem NFS-gemounteten Plattendingens alles machen kannst, außer mit OOo), hast du schomal koffice versucht? (Wenn nicht nimm die Testing  :Wink: )

Grüße

Franz

----------

## ixo

Ich habe koffice nicht installiert. Spasseshalber habe ich 'mal etwas mit scribus abgespeichert - kein Problem; genauso wie Veränderungen mit konqueror oder in der shell (was ich normalerweise verwende).

openoffice-bin habe ich noch nie ausprobiert. Kann man app-office/openoffice-bin gleichzeitig mit app-office/openoffice installieren?

gruss, ixo

EDIT: Über smb kann ich übrigens (von Windoze aus) in dem Verzeichnis lesen und schreiben.

----------

## firefly

nein

zumindestens nicht über portage

----------

## franzf

 *ixo wrote:*   

> openoffice-bin habe ich noch nie ausprobiert. Kann man app-office/openoffice-bin gleichzeitig mit app-office/openoffice installieren?

 

Nein das geht nicht, man muss vorher openoffice(-bin) deinstallieren. Aber wie ich oben schon geschrieben habe, bevor du ein emerge -C openoffice machst, vorher ein Binary erstellen (->quickpkg ist in portage enthalten), so sparst du dir bei weiterem Fortbestehen deines Problems das nochmalige Kompilieren von openoffice.

----------

## Anarcho

Mein Tipp:

Es  liegt am fehlenden Locking Manager.

Versuch mal auf dem Client:

```
/etc/init.d/nfs start
```

Eine eventuelle partielle Fehlermeldung kannst du ignorieren.

Und dann teste nochmal mit OOo.

----------

## ixo

Gleicher Effekt mit der -bin Version. Über nfs keine Schreibrechte, lokal geht's.

Das Irre ist, das ich mit allen (bisher getesteten Programmen / shell) über nfs schreiben kann, nur nicht mit oo   :Exclamation:   :Question: 

----------

## Anarcho

Um zu überprüfen ob der Locking-Manager läuft kannst du folgendes machen, bzw so sollte es aussehen:

```
workstation ~ # rpcinfo -p localhost

   Program Vers Proto   Port

    100000    2   tcp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp  32768  status

    100024    1   tcp  44141  status

    100005    1   udp    916  mountd

    100005    1   tcp    919  mountd

    100005    2   udp    916  mountd

    100005    2   tcp    919  mountd

    100005    3   udp    916  mountd

    100005    3   tcp    919  mountd

    100021    1   udp  32769  nlockmgr

    100021    3   udp  32769  nlockmgr

    100021    4   udp  32769  nlockmgr

workstation ~ # rpcinfo -p server

   Program Vers Proto   Port

    100000    2   tcp    111  portmapper

    100000    2   udp    111  portmapper

    391002    2   tcp    906  sgi_fam

    100024    1   udp  32769  status

    100024    1   tcp  36995  status

    100003    2   udp   2049  nfs

    100003    3   udp   2049  nfs

    100003    2   tcp   2049  nfs

    100003    3   tcp   2049  nfs

    100021    1   udp  32770  nlockmgr

    100021    3   udp  32770  nlockmgr

    100021    4   udp  32770  nlockmgr

    100021    1   tcp  33963  nlockmgr

    100021    3   tcp  33963  nlockmgr

    100021    4   tcp  33963  nlockmgr

    100005    1   udp    905  mountd

    100005    1   tcp    908  mountd

    100005    2   udp    905  mountd

    100005    2   tcp    908  mountd

    100005    3   udp    905  mountd

    100005    3   tcp    908  mountd
```

----------

## Finswimmer

Früher hatte ich das auch mal gehabt. Du brauchst portmap.

Tobi

----------

## Anarcho

Ohne Portmap geht bei NFS nicht viel - das wird also bereits laufen. Aber das initscript für NFS Clients startet den LockManager nicht mit...

----------

## Finswimmer

Jaein. Bei mir war es so, dass auf dem Rechner, der den Share bereitstellt, Portmap lief. Nicht aber auf dem Client, der dann auch das OO Problem hatte.

Daher habe ich dort, Portmap einzeln gestartet, und dann ging es.

Tobi

----------

## ixo

Es war der Lock-Manager.

Danke für den Tipp Anarcho!

Gruss ixo.

----------

