Bug 596372 - NFSv3 file attributes are not updated by READDIRPLUS reply [rhel-4.8.z] [NEEDINFO]
NFSv3 file attributes are not updated by READDIRPLUS reply [rhel-4.8.z]
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel (Show other bugs)
4.8
All Linux
urgent Severity urgent
: rc
: ---
Assigned To: Vitaly Mayatskikh
Red Hat Kernel QE team
: ZStream
Depends On: 577378
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-26 13:02 EDT by RHEL Product and Program Management
Modified: 2010-06-15 19:54 EDT (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-06-15 19:54:28 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
yanwang: needinfo? (vmayatsk)


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0474 normal SHIPPED_LIVE Important: kernel security and bug fix update 2010-06-15 19:53:35 EDT

  None (edit)
Description RHEL Product and Program Management 2010-05-26 13:02:02 EDT
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 04:54:45 EDT
Committed in 89.0.26.EL
Comment 4 yanfu,wang 2010-06-09 01:25:00 EDT
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 03:39:39 EDT
在 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 07:29:52 EDT
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 02:23:33 EDT
move to verified as per Comment #4 and Comment #6.
Comment 9 errata-xmlrpc 2010-06-15 19:54:28 EDT
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

Note You need to log in before you can comment on or make changes to this bug.