Hi,

While playing around with patches on OAK-2192 and compaction in general I
ran into a Root refresh issue.

The idea behind this is during segment compaction new states are being
created, and I'm making sure Root#refresh is being called, but I still see
some errors here from having stale references to non existing segments.
I think the problem comes from the fact that the PermissionStoreImpl
doesn't refresh the root reference on the privilegeBitsProvider variable.
The stacktrace I have is here [0], link to the code mentioned code is here
[1].

I'd love to hear some thought on this!

best,
alex


[0] ...org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException

   at
org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.flush(PermissionStoreImpl.java:75)

   at
org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:134)

   at
org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:79)

   at
org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:237)
[1]
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStoreImpl.java#L72

Reply via email to