Project

General

Profile

Actions

Bug #707

closed

cvs commit: src/sys/vfs/nfs nfs_vnops.c

Added by thomas.nikolajsen almost 17 years ago. Updated almost 17 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

This change causes problems:
'make -j4 buildworld' fails, seemingly random, eg. as below.
this is with /usr/src and /usr/obj nfs mounted; nfs server running dfly 1.8.2.

After make failed, executing 'mv _clear_cache.o.tmp _clear_cache.o' succeded.

- vfs.nfs.pos_cache_timeout=0 doesn't help.
- 'make -j1 buildworld' succeeds.
- using ufs for /usr/obj makes -j4 work.
- backing change in commit out (and using nfs for /usr/obj) makes -j4 work.
-thomas
- 'make -j4 buildworld' with /usr/obj nfs mounted
..
===> gnu/lib/gcc41/libgcc/genchecksum
..
cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c clear_cache.c -o _clear_cache.o
cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D
_GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c enable_execute_stack.c -o _enable_execute_stack.o
cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D
_GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c trampoline.c -o _trampoline.o
cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D
_GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c _main.c -o __main.o
mv: rename _clear_cache.o.tmp to _clear_cache.o: Operation not permitted
cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D
_GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c _absvsi2.c -o _absvsi2.o
  • Error code 1
    cc -O -pipe -mtune=pentiumpro -I/usr/obj/usr/src/world_i386/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../cc_prep/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/gcc/config -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/include -I/usr/src/gnu/lib/gcc41/libgcc/../../../usr.bin/cc41/cc_tools/../../../../contrib/gcc-4.1/libcpp/include -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -DPREFIX1=\"/usr\" -DPREFIX2=\"/usr\" -I. -fexceptions -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -DIN_GCC -c _absvdi2.c -o _absvdi2.o
    1 error
  • Error code 2
    1 error
  • Error code 2
    1 error
  • Error code 2
    1 error
  • Error code 2
Actions #1

Updated by dillon almost 17 years ago

:> Modified files:
:> sys/vfs/nfs nfs_vnops.c
:> Log:
:> Add vfs.nfs.pos_cache_timeout to complement vfs.nfs.neg_cache_timeout.
:
:This change causes problems:
:'make -j4 buildworld' fails, seemingly random, eg. as below.
:this is with /usr/src and /usr/obj nfs mounted; nfs server running dfly 1.8.2.

Ok, I'll reproduce it and track it down.
-Matt
Actions #2

Updated by dillon almost 17 years ago

::This change causes problems:
::'make -j4 buildworld' fails, seemingly random, eg. as below.
::this is with /usr/src and /usr/obj nfs mounted; nfs server running dfly 1.8.2.
:
: Ok, I'll reproduce it and track it down.
:
: -Matt

I figured it out, and reproduced it.  The issue is that the underlying
vnode being disassociated from the namecache topology has to be
synchronized with the NFS server or the next lookup of the filename
may get stale information. In this case, the file permissions for
the newly created file had not yet been synchronized with the server.
I'm working on a fix.  In the mean time, just set the timeout to
around a minute (the 30-second filesystem flush will resynchronize
the client and server so a cache timeout of 60 seconds ought to do
the trick).
-Matt
Matthew Dillon
<>
Actions #3

Updated by dillon almost 17 years ago

I've committed /usr/src/sys/kern/vfs_cache.c rev 1.83 and I believe
it will fix the problem. Please sync up with change and tell me if
you still have the problem!

-Matt
Actions #4

Updated by thomas.nikolajsen almost 17 years ago

Problem solved.

-thomas
Actions

Also available in: Atom PDF