Project

General

Profile

Actions

Bug #41148

closed

client: _readdir_cache_cb() may use the readdir_cache already clear

Added by huanwen ren over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
huanwen ren
Category:
-
Target version:
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
nautilus,mimic,luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
fs
Component(FS):
Client
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Calling function A means to get dir information from the cache, but in the while loop,
the contents of readdir_cache are not static.

For example, _getattr() will trigger insert_trace to update readdir_cache, such as:
1. insert_trace()->clear_dir_complete_and_ordered() or
2. insert_trace()->add_update_inode()->add_update_cap()-> check_cap_issue()->clear_dir_complete_and_ordered()

So, there is a possibility that dn is empty after the _getattr() call.


Files

client.log (24.8 KB) client.log huanwen ren, 08/07/2019 07:19 AM
2019-08-07_152907.png (93.4 KB) 2019-08-07_152907.png huanwen ren, 08/07/2019 07:31 AM

Related issues 3 (0 open3 closed)

Copied to CephFS - Backport #42038: mimic: client: _readdir_cache_cb() may use the readdir_cache already clearResolvedNathan CutlerActions
Copied to CephFS - Backport #42039: luminous: client: _readdir_cache_cb() may use the readdir_cache already clearResolvedNathan CutlerActions
Copied to CephFS - Backport #42040: nautilus: client: _readdir_cache_cb() may use the readdir_cache already clearResolvedNathan CutlerActions
Actions

Also available in: Atom PDF