Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mdtest quits halfway through #1501

Closed
ilixiaocui opened this issue May 25, 2022 · 2 comments
Closed

mdtest quits halfway through #1501

ilixiaocui opened this issue May 25, 2022 · 2 comments
Assignees
Labels
bug Something isn't working high high priority need test Completion of development, requires QA verification

Comments

@ilixiaocui
Copy link
Contributor

ilixiaocui commented May 25, 2022

Describe the bug (描述bug)
sudo mdtest -C -F -L -z 4 -b 10 -I 10000 -d /mnt/fakes3_2/100_million_small_files/mdtest3
image

client error log
image

metaserver error log
image

To Reproduce (复现方法)

Expected behavior (期望行为)

Versions (各种版本)
OS:
Compiler:
branch: master with no diskcache and with fakeS3
commit id:

Additional context/screenshots (更多上下文/截图)

@ilixiaocui ilixiaocui added bug Something isn't working high high priority labels May 25, 2022
@Wine93
Copy link
Contributor

Wine93 commented May 25, 2022

According to the client logs we found that some inode and dentry which should belong to the same partition but sended request to different partitions:

CreateInode :  inodeId: 686037139456 (copysetId: 161 partitionId: 40931) -> SUCCESS
CreateDentry:  inodeId: 686037139456 parentInodeId: 1142863953920 name: mdtest_tree.138 type: TYPE_DIRECTORY channel: 10.166.16.60:7802 (copysetId: 267 partitionId: 68158) -> SUCCESS
GetDentry   :  parentInodeId: 686037139456 name: "mdtest_tree.1381" (copysetId: 165 partitionId: 40930) -> NOT_FOUND
CreateInode :  inodeId: 340929806336 (copysetId: 84 partitionId: 20358) -> SUCCESS
CreateDentry:  inodeId: 340929806336 parentInodeId: 686037139456 name: mdtest_tree.1381 type: TYPE_DIRECTORY Channel: 10.166.16.61:7801 (copysetId: 165, partitionId: 40930) -> NOT_FOUND

then we list all partitions and found that two different partitions with the same inode range, so we doubt that something went wrong while creating the partition:

$ curvefs_tool list-partition -fsId=1

...
partitionInfoList {
  fsId: 1
  poolId: 1
  copysetId: 165
  partitionId: 40930
  start: 686037139456
  end: 686053916671
  txId: 0
  status: READWRITE
  inodeNum: 0
  dentryNum: 1
}
partitionInfoList {
  fsId: 1
  poolId: 1
  copysetId: 161
  partitionId: 40931
  start: 686037139456
  end: 686053916671
  txId: 0
  status: READWRITE
  inodeNum: 1
  dentryNum: 0
}
...

@SeanHai
Copy link
Contributor

SeanHai commented May 26, 2022

The process of create partition have no lock to limit sequential execution at mds. So when create partition occurs on multiple mount points may create the partitions with same range.

void TopologyManager::CreatePartitions(const CreatePartitionRequest *request,

@SeanHai SeanHai added the need test Completion of development, requires QA verification label May 27, 2022
@Wine93 Wine93 closed this as completed Jun 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working high high priority need test Completion of development, requires QA verification
Projects
None yet
Development

No branches or pull requests

3 participants