fix(storage): delete storage fails if a panic occurred during initialization #7501
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
修复问题
#7487 中的第
2
个问题:如果在alist
启动时,某个storage
的初始化过程中发生panic
,之后删除这个storage
时会报错:failed get storage driver: no mount path for an storage is: XXXX
.问题原因
storage
时,会去storagesMap
中查询,如果查不到则会报错;initStorage
流程中,如果storageDriver.Init()
发生了panic
,在recover()
中没有向storagesMap
写入这个storage
,所以后续的删除操作会报错。修复方案
panic
时,在recover()
中向storagesMap
写入这个storage
;driver
的Drop
方法完善nil
检查。自测
2024-11-14.16.03.00-1.mp4