I have the debian root nfsroot served from a PB G4 17" with 10.4.3
This setup worked in OS X 10.4.2. After the upgrade to 10.4.3 it no longer works. The bug is a subtle one. If I compile a file using gcc on the arm 9 and the a.out gets saved to the nfs file system (served by my P
This makes it impossible to build anything that uses a big make file.
The test is simple put the following in a file say foo.c
int main(){return 0;}
run
gcc foo.c
the result should be a file a.out with execute permissions.
However in 10.4.3 it doesn't. I think it is a timing problem or race condition problem. In unix you can't create a file with execute permissions due to the base mask. One has to change the permissions after the file is created. Normally gcc will do this if the file compiles correctly. I believe that in 10.4.3 the file gets created alright but when gcc then tries to change the permissions it can't because the server is caching the file creation.
If I run gcc foo.c a second time without first deleting a.out, a.out will then have execute permissions. I believe because it doesn't have to create the file this time so no race condition when it sets the permissions.
Once I detected the problem it took me a while to believe it was nfs that was the culprit. However if I do the nfs mount on 10.3.9 there is no problem. If I do the same gcc on the local flash file system of the ARM 9 a.out has execute permissions. In every case the nfs parameters are identical. I run the test as root. I discovered this problem while trying to build python from src.
Anybode have any idea how I can reconfigure 10.4.3 nfs server to behave like 10.4.2? or what changed so that I can experiment with my client configuration to compensate?
here is the fstab entry on my linux client
10.0.2.150:/nfs/nfsroot/ / nfs defaults,noauto 0 0
I believe the nfs client default options are as follows
rsize = 1024
wsize = 1024
timeo = 7
retrans = 3
acregmin = 3
acregmax = 60
acdirmin = 30
acdirmax = 60
flags = hard, nointr, noposix, cto, ac
and my nfs server export
nidump exports .
/Data/nfsroot -maproot=root -network=10.0.2.0 -mask=255.255.255.0