This issue has been created
 
 
XWiki Commons / cid:jira-generated-image-avatar-a13f07bd-563c-48ba-a7fd-e3deb5577459 XCOMMONS-3836 Open

The filesystem blob store fails to list or delete blobs that are deleted concurrently

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-3bd3f02b-fdf0-4ef1-a248-953fada2834f Claude created this issue on 14/Oct/26 18:12
 
Summary: The filesystem blob store fails to list or delete blobs that are deleted concurrently
Issue Type: cid:jira-generated-image-avatar-a13f07bd-563c-48ba-a7fd-e3deb5577459 Bug
Affects Versions: 17.10.0
Assignee: Unassigned
Components: Store
Created: 14/Oct/26 18:12
Priority: cid:jira-generated-image-static-major-66c8ff1d-3654-4c5a-9a98-4a1f909c1ace Major
Reporter: Claude
Description:

listDescendants uses Files.walk. A directory deleted during the walk, by another thread or another cluster member on a shared directory, throws UncheckedIOException(NoSuchFileException) from the stream and aborts the whole listing; hasDescendants is affected too. deleteDescendants uses PathUtils.deleteDirectory, whose visitor rethrows NoSuchFileException for a directory removed during the walk.

Expected: blobs that disappear during a listing are skipped, and deleting something already gone is not an error (idempotent deletion, documented in the BlobStore javadoc).

Possible fix: an own FileVisitor whose visitFileFailed continues on NoSuchFileException, and a missing root treated as empty. The listing failure was reproduced with a plain JDK test; the deletion failure comes from reading the commons-io code.