Bug 1233062 - [Backup]: Modify after a rename is getting logged as a rename entry (only) in the outfile
Summary: [Backup]: Modify after a rename is getting logged as a rename entry (only) in...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: glusterfind
Version: rhgs-3.1
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: RHGS 3.1.0
Assignee: Milind Changire
QA Contact: Sweta Anandpara
URL:
Whiteboard:
Depends On: 1228247
Blocks: 1202842 1223636
TreeView+ depends on / blocked
 
Reported: 2015-06-18 07:22 UTC by Sweta Anandpara
Modified: 2016-09-17 15:20 UTC (History)
7 users (show)

Fixed In Version: glusterfs-3.7.1-8
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-07-29 05:05:56 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:1495 0 normal SHIPPED_LIVE Important: Red Hat Gluster Storage 3.1 update 2015-07-29 08:26:26 UTC

Description Sweta Anandpara 2015-06-18 07:22:19 UTC
Description of problem:
In a >2node cluster, with a volume and corresponding glusterfind session(s) created for the same, any data modification entry should get logged in as a MODIFY entry and file/dir rename should get logged as RENAME. 
When both these operations (rename followed with a data modification) are done one after the other to the same file, and a glusterfind pre and post is run on the session - only RENAME entry is getting logged. 

This gives an incorrect information about the filesystem.


Version-Release number of selected component (if applicable):
glusterfs-3.7.1-3.el6rhs.x86_64

How reproducible: Always


Steps to Reproduce:
1. Have a >2 node cluster, with volume 'vol1' and glusterfind session 'vol1s1' created for the same
2. Create a file 'file1' and run glusterfind pre and post and verify the output file for a NEW entry
3. Rename the file 'file1' to 'newfile1' and modify the contents of the file 'newfile1'
4. Run glusterfind pre and post and verify the contents of output file

Actual results:
RENAME file1 newfile1

Expected results:
RENAME file1 newfile1
MODIFY newfile1

Additional info:

[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# glusterfind list
SESSION                   VOLUME                    SESSION TIME             
---------------------------------------------------------------------------
sessn2                    nash                      2015-06-17 18:27:56      
sessn3                    nash                      2015-06-17 20:54:20      
vol1s3                    vol1                      2015-06-17 21:08:52      
vol1s2                    vol1                      2015-06-17 21:31:09      
ps3                       pluto                     2015-06-17 20:26:47      
sessn4                    nash                      2015-06-17 20:54:48      
ps2                       pluto                     2015-06-17 20:26:42      
sesso1                    ozone                     2015-06-15 23:48:42      
ps1                       pluto                     2015-06-17 20:26:24      
sessn1                    nash                      2015-06-17 18:13:16      
vol1s1                    vol1                      2015-06-17 21:30:44      
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# glusterfind post vol1s1 vol1
Session vol1s1 with volume vol1 updated
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# glusterfind pre vol1s1 vol1 /tmp/outv1.txt 
Generated output file /tmp/outv1.txt
[root@dhcp43-93 ~]# cat /tmp/outv1.txt 
NEW file1 
[root@dhcp43-93 ~]# # after renaming file1 to newfile1 and modifying the contents of newfile1
[root@dhcp43-93 ~]# glusterfind post vol1s1 vol1
Session vol1s1 with volume vol1 updated
[root@dhcp43-93 ~]# date
Thu Jun 18 18:19:03 IST 2015
[root@dhcp43-93 ~]# glusterfind pre vol1s1 vol1 /tmp/outv1.txt 
Generated output file /tmp/outv1.txt
[root@dhcp43-93 ~]# cat /tmp/outv1.txt 
RENAME file1 newfile1
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# 
[root@dhcp43-93 ~]# rpm -qa | grep glusterfs
glusterfs-api-3.7.1-3.el6rhs.x86_64
glusterfs-libs-3.7.1-3.el6rhs.x86_64
glusterfs-3.7.1-3.el6rhs.x86_64
glusterfs-fuse-3.7.1-3.el6rhs.x86_64
glusterfs-server-3.7.1-3.el6rhs.x86_64
glusterfs-client-xlators-3.7.1-3.el6rhs.x86_64
glusterfs-cli-3.7.1-3.el6rhs.x86_64
[root@dhcp43-93 ~]#

Comment 4 Kotresh HR 2015-07-06 10:53:36 UTC
The fix for https://bugzilla.redhat.com/show_bug.cgi?id=1228247 also fixes this

Downstream Patch:
https://code.engineering.redhat.com/gerrit/#/c/52285/

Comment 5 Sweta Anandpara 2015-07-09 13:39:50 UTC
Tested and verified this on the build glusterfs-3.7.1-8.el6rhs.x86_64

Multiple modify's and renames of files across directories, with the same or different names across same/different locations, does log a correct entry in the output file. 

Moving this to fixed in 3.1 everglades. Detailed logs are pasted below:

SERVER
=========

[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# gluster v list
testvol
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# rpm -qa | grep gluster
glusterfs-libs-3.7.1-8.el6rhs.x86_64
glusterfs-fuse-3.7.1-8.el6rhs.x86_64
glusterfs-3.7.1-8.el6rhs.x86_64
glusterfs-api-3.7.1-8.el6rhs.x86_64
glusterfs-cli-3.7.1-8.el6rhs.x86_64
glusterfs-geo-replication-3.7.1-8.el6rhs.x86_64
glusterfs-client-xlators-3.7.1-8.el6rhs.x86_64
glusterfs-server-3.7.1-8.el6rhs.x86_64
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# gluster v create ozone replica 2 10.70.43.140:/rhs/thinbrick1/ozone 10.70.42.75:/rhs/thinbrick1/ozone 10.70.43.140:/rhs/thinbrick2/ozone 10.70.42.75:/rhs/thinbrick2/ozone
volume create: ozone: success: please start the volume to access data
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# gluster v info ozone
 
Volume Name: ozone
Type: Distributed-Replicate
Volume ID: aa2e4386-ab12-4d17-8cf6-894e29e94563
Status: Created
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.70.43.140:/rhs/thinbrick1/ozone
Brick2: 10.70.42.75:/rhs/thinbrick1/ozone
Brick3: 10.70.43.140:/rhs/thinbrick2/ozone
Brick4: 10.70.42.75:/rhs/thinbrick2/ozone
Options Reconfigured:
performance.readdir-ahead: on
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# gluster v start ozone



volume start: ozone: success
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# gluster v info ozone
 
Volume Name: ozone
Type: Distributed-Replicate
Volume ID: aa2e4386-ab12-4d17-8cf6-894e29e94563
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.70.43.140:/rhs/thinbrick1/ozone
Brick2: 10.70.42.75:/rhs/thinbrick1/ozone
Brick3: 10.70.43.140:/rhs/thinbrick2/ozone
Brick4: 10.70.42.75:/rhs/thinbrick2/ozone
Options Reconfigured:
performance.readdir-ahead: on
[root@dhcp43-140 ~]# glusterfind list
SESSION                   VOLUME                    SESSION TIME             
---------------------------------------------------------------------------
testvol_session_53        testvol                   2015-07-07 00:00:23      
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind create so1 ozone
Session so1 created with volume ozone
[root@dhcp43-140 ~]# glusterfind create so12ozone
usage: glusterfind create [-h] [--debug] [--force] [--reset-session-time]
                          session volume
glusterfind create: error: too few arguments
[root@dhcp43-140 ~]#  
[root@dhcp43-140 ~]# glusterfind create so12 ozone
Session so12 created with volume ozone
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind delete so12 ozone
root.42.75's password: root.42.75's password: 


root.42.75's password: 
Session so12 with volume ozone deleted
[root@dhcp43-140 ~]# glusterfind list
SESSION                   VOLUME                    SESSION TIME             
---------------------------------------------------------------------------
testvol_session_53        testvol                   2015-07-07 00:00:23      
so1                       ozone                     2015-07-09 21:30:24      
[root@dhcp43-140 ~]# glusterfind create so2 ozone
Session so2 created with volume ozone
[root@dhcp43-140 ~]# glusterfind create so3 ozone
Session so3 created with volume ozone
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind list
SESSION                   VOLUME                    SESSION TIME             
---------------------------------------------------------------------------
so2                       ozone                     2015-07-09 21:31:31      
testvol_session_53        testvol                   2015-07-07 00:00:23      
so1                       ozone                     2015-07-09 21:30:24      
so3                       ozone                     2015-07-09 21:32:37      
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
MODIFY .trashcan%2F 
NEW test1 
NEW test2 
NEW test3 
NEW dir1 
NEW dir1%2F%2Fdir2 
NEW dir1%2Fdir2%2F%2Fdir3 
NEW dir1%2Fdir2%2Fdir3%2F%2Fdir4 
NEW d1 
NEW d1%2F%2Fd2 
NEW d1%2Fd2%2F%2Fd3 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
NEW dir1%2Fdir2%2Fdir3%2F%2Fd3a 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
RENAME dir1%2Fdir2%2Fdir3%2F%2Fd3a d3a
MODIFY d3a 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
MODIFY .trashcan%2Finternal_op%2F 
RENAME test1 dir1%2Fdir2%2F%2Ftest1
MODIFY dir1%2Fdir2%2Ftest1 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind pre so2 ozone /tmp/out2
Generated output file /tmp/out2
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# cat /tmp/out1
RENAME test2 dir1%2Fdir2%2Fdir3%2Fdir4%2F%2Ftest22
MODIFY dir1%2Fdir2%2Fdir3%2Fdir4%2Ftest22 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# cat /tmp/out2 
MODIFY .trashcan%2F 
NEW dir1%2Fdir2%2F%2Ftest1 
NEW dir1%2Fdir2%2Fdir3%2Fdir4%2F%2Ftest22 
NEW test3 
NEW dir1 
NEW dir1%2F%2Fdir2 
NEW dir1%2Fdir2%2F%2Fdir3 
NEW dir1%2Fdir2%2Fdir3%2F%2Fdir4 
NEW d1 
NEW d1%2F%2Fd2 
NEW d1%2Fd2%2F%2Fd3 
NEW d3a 
MODIFY .trashcan%2Finternal_op%2F 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind post so2 ozone
Session so2 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
NEW dir1%2Fdir2%2F%2Ftest22_link 
NEW test3_ln 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind post so2 ozone
Pre script is not run
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
RENAME test3_ln d1%2Fd2%2Fd3%2F%2Ftest3_link2
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind post so1 ozone
Session so1 with volume ozone updated
[root@dhcp43-140 ~]# glusterfind pre so1 ozone /tmp/out1
Generated output file /tmp/out1
[root@dhcp43-140 ~]# cat /tmp/out1
RENAME dir1%2Fdir2%2F%2Ftest22_link test22_link
RENAME dir1%2Fdir2%2Fdir3%2Fdir4%2Ftest22 test22_link
MODIFY dir1%2Fdir2%2Fdir3%2Fdir4%2Ftest22 
MODIFY test22_link 
[root@dhcp43-140 ~]# 


CLIENT
========

[root@dhcp43-71 ~]# 
[root@dhcp43-71 ~]# mount | grep testvol
10.70.43.93:testvol on /mnt/glusterfs type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
[root@dhcp43-71 ~]# 
[root@dhcp43-71 ~]# 
[root@dhcp43-71 ~]# mount | grep oz
10.70.42.30:/ozone on /mnt/ozone type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
10.70.43.93:/ozone on /mnt/oz type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
[root@dhcp43-71 ~]# umount /mnt/ozone
[root@dhcp43-71 ~]# mount -t glusterfs 10.70.43.140:/ozone /mnt/ozone
[root@dhcp43-71 ~]# cd /mnt/ozone
[root@dhcp43-71 ozone]# ls -a
.  ..  .trashcan
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# echo "what a beautiful day" > test1
[root@dhcp43-71 ozone]# echo "hello world" > test2
[root@dhcp43-71 ozone]# touch test3
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mkdir -p dir1/dir2/dir3/dir4
[root@dhcp43-71 ozone]#
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# ls -a
.  ..  dir1  test1  test2  test3  .trashcan
[root@dhcp43-71 ozone]# mkdir -p d1/d2/d3
[root@dhcp43-71 ozone]# touch d1/dia
[root@dhcp43-71 ozone]# rm d1/dia
rm: remove regular empty file `d1/dia'? y
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# echo "whatever" > d1/d2/d3/d3a
[root@dhcp43-71 ozone]# mv d1/d2/d3/d3a dir1/dir2/dir3/
[root@dhcp43-71 ozone]# ls d1/d2/d3/
[root@dhcp43-71 ozone]# ls dir1/dir2/dir3/
d3a  dir4
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# echo 'whatever again' >> dir1/dir2/dir3/d3a 
[root@dhcp43-71 ozone]# mv dir1/dir2/dir3/d3a .
[root@dhcp43-71 ozone]# ls -a
.  ..  d1  d3a  dir1  test1  test2  test3  .trashcan
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# find
.
./.trashcan
./.trashcan/internal_op
./test1
./test2
./dir1
./dir1/dir2
./dir1/dir2/dir3
./dir1/dir2/dir3/dir4
./d1
./d1/d2
./d1/d2/d3
./d3a
./test3
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# cat test1
what a beautiful day
[root@dhcp43-71 ozone]# echo ".. and it is raining" >> test1 
[root@dhcp43-71 ozone]# mv test1 dir1/dir2/
[root@dhcp43-71 ozone]# mv dir1/dir2/test1 dir1/dir2/dir3/dir4/
[root@dhcp43-71 ozone]# echo ".. even more" >> dir1/dir2/dir3/dir4/test1 
[root@dhcp43-71 ozone]# mv dir1/dir2/dir3/dir4/test1 dir1/dir2/
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# ls -lrt
total 3
-rw-r--r--. 1 root root 12 Jul  9 21:43 test2
-rw-r--r--. 1 root root  0 Jul  9 21:43 test3
drwxr-xr-x. 3 root root 34 Jul  9 21:43 dir1
drwxr-xr-x. 3 root root 30 Jul 10 00:16 d1
-rw-r--r--. 1 root root 24 Jul 10 00:20 d3a
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv test2 test2new
[root@dhcp43-71 ozone]# mv test2new d1/d2/
[root@dhcp43-71 ozone]# cat d1/d2/test2new 
hello world
[root@dhcp43-71 ozone]# echo ".." >> d1/d2/test2new 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# echo "here I come.. " >> d1/d2/test2new 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv d1/d2/test2new d1/d2/test22
[root@dhcp43-71 ozone]# mv d1/d2/test22 dir1/dir2/dir3/dir4/
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# l s-lrt
-bash: l: command not found
[root@dhcp43-71 ozone]# ls -lrt
total 3
-rw-r--r--. 1 root root  0 Jul  9 21:43 test3
drwxr-xr-x. 3 root root 34 Jul  9 21:43 dir1
drwxr-xr-x. 3 root root 30 Jul 10 00:16 d1
-rw-r--r--. 1 root root 24 Jul 10 00:20 d3a
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# ln dir1/dir2/dir3/dir4/test22 dir1/dir2/test22_link
[root@dhcp43-71 ozone]# ls dir1/dir2/test22_link
dir1/dir2/test22_link
[root@dhcp43-71 ozone]# ll dir1/dir2/test22_link
-rw-r--r--. 2 root root 30 Jul 10 00:26 dir1/dir2/test22_link
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# cat dir1/dir2/test22_link 
hello world
..
here I come.. 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# link test3 test3_link
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv test3_link test3_ln
[root@dhcp43-71 ozone]# l s-lrt
-bash: l: command not found
[root@dhcp43-71 ozone]# ls -lrt
total 3
-rw-r--r--. 2 root root  0 Jul  9 21:43 test3_ln
-rw-r--r--. 2 root root  0 Jul  9 21:43 test3
drwxr-xr-x. 3 root root 34 Jul  9 21:43 dir1
drwxr-xr-x. 3 root root 30 Jul 10 00:16 d1
-rw-r--r--. 1 root root 24 Jul 10 00:20 d3a
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv test3_ln d1/d2/d3/test3_link
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv d1/d2/d3/test3_link d1/d2/d3/test3_link2
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# ls d1/d2/d3/
test3_link2
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# cat dir1/dir2/
dir3/        test1        test22_link  
[root@dhcp43-71 ozone]# cat dir1/dir2/test22_link 
hello world
..
here I come.. 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# echo "still coming" >> dir1/dir2/test22_link 
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# mv dir1/dir2/test22_link .
[root@dhcp43-71 ozone]# 
[root@dhcp43-71 ozone]# ls -lrt
total 3
-rw-r--r--. 2 root root  0 Jul  9 21:43 test3
drwxr-xr-x. 3 root root 34 Jul  9 21:43 dir1
drwxr-xr-x. 3 root root 30 Jul 10 00:16 d1
-rw-r--r--. 1 root root 24 Jul 10 00:20 d3a
-rw-r--r--. 2 root root 43 Jul 10 00:35 test22_link
[root@dhcp43-71 ozone]#

Comment 6 Sweta Anandpara 2015-07-09 13:51:24 UTC
The issue wrt modify/rename of hardlink (seen above in the logs) is being tracked by bug 1233147

Comment 7 errata-xmlrpc 2015-07-29 05:05:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-1495.html


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