Hi Alex As discussed yesterday, I think you are right. The PermissionStoreImpl should always get a new instance upon refresh... that issues has been introduced while addressing the jcr:all issue earlier this year. I will fix it today.
Thanks for spotting! Angela On 05/11/14 20:13, "Alex Parvulescu" <[email protected]> wrote: >I've created OAK-2255 for followup. > >On Wed, Nov 5, 2014 at 4:57 PM, Alex Parvulescu ><[email protected]> >wrote: > >> 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.PermissionSto >>reImpl.flush(PermissionStoreImpl.java:75) >> >> at >> >>org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermi >>ssionImpl.refresh(CompiledPermissionImpl.java:134) >> >> at >> >>org.apache.jackrabbit.oak.security.authorization.permission.PermissionPro >>viderImpl.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/jav >>a/org/apache/jackrabbit/oak/security/authorization/permission/PermissionS >>toreImpl.java#L72 >> >>
