[ 
http://jira.magnolia-cms.com/browse/MAGNOLIA-3671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ondřej Chytil updated MAGNOLIA-3671:
------------------------------------

    Description: 
I updated to Magnolia 4.4.3, my frontend configuration is clustered, two public 
instances.
When the load rises, sometimes this exception below happens. This is 
particularly problematic because after the problem the instance is completely 
locked, and shows the magnolia login.
This seems to be caused by modification done in MAGNOLIA-3557, that stores the 
access count. Doing so for the anonymous user seems to cause concurrent 
modification. I'll do further investigation, but this is a real blocking 
problem for me because my instances are failing often.


ERROR  info.magnolia.cms.security.SystemUserManager 28.04.2011 10:35:53 -- 
Failed to login as anonymous user
javax.security.auth.login.LoginException: java.lang.RuntimeException: 
javax.jcr.InvalidItemStateException: 
2d78094b-8f7e-4c95-8b1d-22e3dc417c34/{}failedAttempts has been modified 
externally
        at 
info.magnolia.cms.security.MgnlUser.setFailedLoginAttempts(MgnlUser.java:96)
        at 
info.magnolia.jaas.sp.jcr.JCRAuthenticationModule.matchPassword(JCRAuthenticationModule.java:140)

  was:
I updated to Magnolia 4.4.3, my frontend configuration is clustered, two public 
instances.
When the load rises, sometimes this exception below happens. This is 
particularly problematic because after the problem the instance is completely 
locked, and shows the magnolia login.
This seems to be caused by modification done in MAGNOLIA-3557, that stores the 
access count. Doing so for the anonymous user seems to cause concurrent 
modification. I'll do further investigation, but this is a real blocking 
problem for me because my instances are failing often.


ERROR  info.magnolia.cms.security.SystemUserManager 28.04.2011 10:35:53 -- 
Failed to login as anonymous user
javax.security.auth.login.LoginException: java.lang.RuntimeException: 
javax.jcr.InvalidItemStateException: 
2d78094b-8f7e-4c95-8b1d-22e3dc417c34/{}failedAttempts has been modified 
externally
        at 
info.magnolia.cms.security.MgnlUser.setFailedLoginAttempts(MgnlUser.java:96)
        at 
info.magnolia.jaas.sp.jcr.JCRAuthenticationModule.matchPassword(JCRAuthenticationModule.java:140)
        at 
info.magnolia.jaas.sp.jcr.JCRAuthenticationModule.validateUser(JCRAuthenticationModule.java:104)
        at 
info.magnolia.jaas.sp.AbstractLoginModule.login(AbstractLoginModule.java:200)
        at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
        at 
javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
        at 
info.magnolia.cms.security.SystemUserManager.getSubject(SystemUserManager.java:177)
        at 
info.magnolia.cms.security.SystemUserManager.getRequiredSystemUser(SystemUserManager.java:154)
        at 
info.magnolia.cms.security.SystemUserManager.getAnonymousUser(SystemUserManager.java:125)
        at 
info.magnolia.cms.security.Security.getAnonymousUser(Security.java:69)
        at 
info.magnolia.context.UserContextImpl.getUser(UserContextImpl.java:75)
        at info.magnolia.context.MgnlContext.getUser(MgnlContext.java:83)
        at 
info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:88)
        at 
info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
        at 
info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at 
info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:66)
        at 
info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
        at 
info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:105)
        at 
info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
        at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.jcr.InvalidItemStateException: 
2d78094b-8f7e-4c95-8b1d-22e3dc417c34/{}failedAttempts has been modified 
externally
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1124)
        at info.magnolia.cms.core.DefaultContent.save(DefaultContent.java:528)
        at info.magnolia.cms.util.ContentWrapper.save(ContentWrapper.java:390)
        at 
info.magnolia.cms.security.MgnlUser.setFailedLoginAttempts(MgnlUser.java:94)
        ... 44 more

        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:872)
        at 
javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
        at 
info.magnolia.cms.security.SystemUserManager.getSubject(SystemUserManager.java:177)
        at 
info.magnolia.cms.security.SystemUserManager.getRequiredSystemUser(SystemUserManager.java:154)
        at 
info.magnolia.cms.security.SystemUserManager.getAnonymousUser(SystemUserManager.java:125)
        at 
info.magnolia.cms.security.Security.getAnonymousUser(Security.java:69)
        at 
info.magnolia.context.UserContextImpl.getUser(UserContextImpl.java:75)
        at info.magnolia.context.MgnlContext.getUser(MgnlContext.java:83)
        at 
info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:88)
        at 
info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
        at 
info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at 
info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:66)
        at 
info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)
        at 
info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:105)
        at 
info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:216)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
        at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:662)



> Anonymous user locked under heavy load.
> ---------------------------------------
>
>                 Key: MAGNOLIA-3671
>                 URL: http://jira.magnolia-cms.com/browse/MAGNOLIA-3671
>             Project: Magnolia
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 4.4.3
>            Reporter: Danilo Ghirardelli
>            Assignee: Ondřej Chytil
>            Priority: Blocker
>             Fix For: 4.4.4
>
>         Attachments: JCRAuthenticationModule.java, MgnlUser.java, 
> stacktrace.txt
>
>
> I updated to Magnolia 4.4.3, my frontend configuration is clustered, two 
> public instances.
> When the load rises, sometimes this exception below happens. This is 
> particularly problematic because after the problem the instance is completely 
> locked, and shows the magnolia login.
> This seems to be caused by modification done in MAGNOLIA-3557, that stores 
> the access count. Doing so for the anonymous user seems to cause concurrent 
> modification. I'll do further investigation, but this is a real blocking 
> problem for me because my instances are failing often.
> ERROR  info.magnolia.cms.security.SystemUserManager 28.04.2011 10:35:53 -- 
> Failed to login as anonymous user
> javax.security.auth.login.LoginException: java.lang.RuntimeException: 
> javax.jcr.InvalidItemStateException: 
> 2d78094b-8f7e-4c95-8b1d-22e3dc417c34/{}failedAttempts has been modified 
> externally
>       at 
> info.magnolia.cms.security.MgnlUser.setFailedLoginAttempts(MgnlUser.java:96)
>       at 
> info.magnolia.jaas.sp.jcr.JCRAuthenticationModule.matchPassword(JCRAuthenticationModule.java:140)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.magnolia-cms.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

Reply via email to