Details
-
Bug
-
Resolution: Fixed
-
Major
-
3.0.1
-
1
-
Sprint 91
Description
The BlobStoreManagerImpl uses a simple HashMap for its stores member which isn't properly protected from concurrent access:
- Fire NX3 up with a debugger
- Set a breakpoint in BlobStoreManagerImpl.track() (https://github.com/sonatype/nexus-internal/blob/525334ca25c2463544b12dd49aa54ef55ee2a703/components/nexus-core/src/main/java/org/sonatype/nexus/internal/blobstore/BlobStoreManagerImpl.java#L207)
- In one browser tab, create a new blob store
- Observe breakpoint gets hit, leave thread suspended at it
- In another browser tab, create another blob store
- Observe breakpoint gets hit again, i.e. a concurrent thread attempts to modify the stores