Skip to content
This repository was archived by the owner on Jul 15, 2023. It is now read-only.
This repository was archived by the owner on Jul 15, 2023. It is now read-only.

Bug: not update node directory tree info after rename operation #57

@xzy256

Description

@xzy256

Hi,
When using hdfs-mount,i find a bug. If exec mv one file to one directory, then read that file. It will occur Input/output error. Only if you do ls conmand, update the nodes attribution, read it successfully. Occuring this bug , because rename oporation changes the file entries cache, but not change corresponding global variable *fs.Server.node attribution.

Recurrence process:

touch 1.txt
ls
mv 1.txt test/
cat test/1.txt    # test is a child directory

The client log:

[xzy]# ls
1.sh test
[xzy]# touch 1.txt
[xzy]# ls
1.sh 1.txt test
[xzy]# mv 1.txt test
[xzy]# cat test/1.txt <--------------- not click tab for automatic completion
cat: test/1.txt: Input/output error

The hdfs-mount service log:

Warning: 2019/11/16 18:49:07 Dir.go:187: stat [1.txt]: stat /xuezhiyou/xzy/1.txt: file does not existstat /xuezhiyou/xzy/1.txt: file does not exist
INFO: 2019/11/16 18:49:07 [ /xuezhiyou/xzy/1.txt ] Create -rw-r--r--
INFO: 2019/11/16 18:49:07 newFile= true
INFO: 2019/11/16 18:49:07 This staging file name:/var/hdfs-mount/xuezhiyou/xzy/1.txt
INFO: 2019/11/16 18:49:07 [ /xuezhiyou/xzy/1.txt ] flush ( 0 new bytes written)
INFO: 2019/11/16 18:49:07 [ /xuezhiyou/xzy/1.txt ] flush ( 0 new bytes written)
INFO: 2019/11/16 18:49:07 [ /xuezhiyou/xzy/1.txt ] Close/Write: err=
INFO: 2019/11/16 18:49:08 [ /xuezhiyou/xzy ]ReadDirAll
Warning: 2019/11/16 18:49:16 Dir.go:187: stat [1.txt]: stat /xuezhiyou/xzy/test/1.txt: file does not existstat /xuezhiyou/xzy/test/1.txt: file does not exist
Warning: 2019/11/16 18:49:16 Dir.go:187: stat [1.txt]: stat /xuezhiyou/xzy/test/1.txt: file does not existstat /xuezhiyou/xzy/test/1.txt: file does not exist
INFO: 2019/11/16 18:49:16 Rename [ /xuezhiyou/xzy/1.txt ] to /xuezhiyou/xzy/test/1.txt
INFO: 2019/11/16 18:49:24 Open: /xuezhiyou/test/1.txt OpenReadOnly
Error: 2019/11/16 18:49:24 FileHandleReader.go:35: [ /xuezhiyou/test/1.txt ] Opening: open /xuezhiyou/test/1.txt: file does not exist

I fix this bug. The git diff look at commit aa603121e8650d53893fdd43f98673353d106b0a

Because i use dep for managing the dependcies and modify fuse.server.go for getting node entity by inode. I do not commit a pull request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions