Bug 596372

Summary: NFSv3 file attributes are not updated by READDIRPLUS reply [rhel-4.8.z]
Product: Red Hat Enterprise Linux 4 Reporter: RHEL Program Management <pm-rhel>
Component: kernelAssignee: Vitaly Mayatskikh <vmayatsk>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 4.8CC: dhoward, fleite, jlayton, jwest, pm-eus, rbinkhor, rwheeler, steved, vmayatsk, yanwang
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-15 23:54:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 577378    
Bug Blocks:    

Description RHEL Program Management 2010-05-26 17:02:02 UTC
This bug has been copied from bug #577378 and has been proposed
to be backported to 4.8 z-stream (EUS).

Comment 3 Vitaly Mayatskikh 2010-06-01 08:54:45 UTC
Committed in 89.0.26.EL

Comment 4 yanfu,wang 2010-06-09 05:25:00 UTC
At the server, remove the file and create a symlink with the same name or in reverse, the RHEL-4 NFS client can't perceive the change immediately, always a few seconds delay, but can returns updated information eventually.

server:
[root@dell-pe2900-01 test]# uname -a
Linux dell-pe2900-01.rhts.eng.bos.redhat.com 2.6.9-89.0.26.ELsmp #1 SMP Sun May 30 09:34:08 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

client:
[root@dell-pe800-01 ~]# uname -a
Linux dell-pe800-01.rhts.eng.bos.redhat.com 2.6.9-89.0.26.ELsmp #1 SMP Sun May 30 09:31:52 EDT 2010 i686 i686 i386 GNU/Linux
[root@dell-pe800-01 ~]# mount
...
10.16.64.127:/test on /mnt type nfs (rw,addr=10.16.64.127)


pls refer to below test results:
first try:
server:
[root@dell-pe2900-01 test]# rm -f file 
[root@dell-pe2900-01 test]# ln -s tmp/ file
[root@dell-pe2900-01 test]# date
Wed Jun  9 01:04:58 EDT 2010

client:
[root@dell-pe800-01 ~]# date
Wed Jun  9 01:05:01 EDT 2010
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  symlink      16          2  file             --> got correct
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# date
Wed Jun  9 01:05:16 EDT 2010


2rd try:
server:
[root@dell-pe2900-01 test]# rm -f file 
[root@dell-pe2900-01 test]# ln -s tmp/ file
[root@dell-pe2900-01 test]# date
Wed Jun  9 01:07:06 EDT 2010

client:
[root@dell-pe800-01 ~]# date
Wed Jun  9 01:07:08 EDT 2010
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  symlink      16          2  file            --> got correct
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp

3rd try:
server:
[root@dell-pe2900-01 test]# ls -l
total 12
lrwxrwxrwx  1 root root    4 Jun  9 01:10 file -> tmp/
drwxr-xr-x  2 root root 4096 Jun  9 00:35 tmp

[root@dell-pe2900-01 test]# rm -f file
[root@dell-pe2900-01 test]# touch file
[root@dell-pe2900-01 test]# date
Wed Jun  9 01:11:22 EDT 2010

client:
[root@dell-pe800-01 ~]# date
Wed Jun  9 01:11:26 EDT 2010
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  symlink      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  symlink      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  symlink      16          2  file
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# ./getdents /mnt
--------------- nread=64 ---------------
i-node#  file type  d_reclen  d_off   d_name
 9404417  directory    16          1  ..
 9404419  regular      16          2  file            --> got correct
 9404417  directory    16          3  .
 9404418  directory    16          4  tmp
[root@dell-pe800-01 ~]# date
Wed Jun  9 01:11:37 EDT 2010


the server and client reserved for check if needed.
user/passwd: root/redhat

Comment 5 yanfu,wang 2010-06-10 07:39:39 UTC
在 2010-06-10四的 09:11 +0200,Vitaly Mayatskikh写道:
Hi, Jeff! 
> 
> Regarding bz "NFSv3 file attributes are not updated by READDIRPLUS
> reply". There's a few second delay before update on client side. Is it
> ok and safe to release?
> 
> Thanks!
> -- 
> wbr, Vitaly

Comment 6 Jeff Layton 2010-06-10 11:29:52 UTC
Yes, that's expected. The client is subject to the acdirmin/max settings. Changes to the directory may not be noticed immediately until the attributes on it are refreshed.

Comment 7 yanfu,wang 2010-06-11 06:23:33 UTC
move to verified as per Comment #4 and Comment #6.

Comment 9 errata-xmlrpc 2010-06-15 23:54:28 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0474.html

Comment 10 Red Hat Bugzilla 2023-09-14 01:21:19 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days