Thanks Tobias for confirming, I've created OAK-2872 & fixed the cleanup
call.

On Wed, May 13, 2015 at 6:39 PM, Tobias Bocanegra <[email protected]> wrote:

> Hi Alex,
> you are probably right that clearState() is missing there.
> regards, toby
>
> On Wed, May 13, 2015 at 3:20 AM, Alex Parvulescu
> <[email protected]> wrote:
> > Hi,
> >
> > Following an investigation into the compaction&cleanup issues, we
> (Michael
> > Duerig and I) noticed some SegmentNotFoundExceptions coming from the
> login
> > calls.
> >
> > Blissfully unaware of how this code is actually supposed to work, I
> > stumbled upon a what looks like a missing call to #clearState() from
> within
> > the #commit method of the ExternalLoginModule [1].
> > I'm only assuming this because other implementations of the
> > AbstractLoginModule call #clearState when the login attempt did not go
> > through [2].
> >
> > What I assume happens next is the old session (probably the initial one
> > created on the very first login call) could be reused throughout the
> > module's lifetime, which would in the end result in the SNFEs post
> > compaction.
> >
> > Could someone clarify this?
> >
> > thanks,
> > alex
> >
> >
> > [1]
> >
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java#L262
> >
> > [2]
> >
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenLoginModule.java#L186
>

Reply via email to