Session backup don't Caught at login

124 views
Skip to first unread message

alon sar-shalom

unread,
Nov 13, 2013, 6:14:18 AM11/13/13
to memcached-se...@googlegroups.com

Hi,

 When I do 50 logins per minute (or more),

 I get an OK response from my app, and the session saved locally on the tomcat server,

 But, I also get an ERROR from the  memcached (I attached it bellow)

 

I am using memcached-session-manager (version: 1.6.5) on a tomcat server (version 7.0.34) and java version 1.7.0_25,

And my app using spring security (version 3.1.0)

 

my memcached-session-manager configured to work with synchronic session backup as follows:

         <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

         memcachedNodes="sz-all.XXXX.XX.XXX.cache.amazonaws.com:11211"

         requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

         sessionBackupAsync="false"

         sticky="false"

         copyCollectionsForSerialization="false" />

 

To my knowledge, synchronic session backup should prevent this problem,

 And if there is a problem during the session backup Spring security should catch it during the login.

 

 ERROR OUTPUT:

 Nov 13, 2013 12:00:03 AM de.javakaffee.web.msm.LockingStrategy onBackupWithoutLoadedSession

 WARNING: An error when trying to load/update validity info.

 net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: /10.55.77.237:11211

         at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:93)

         at de.javakaffee.web.msm.LockingStrategy.onBackupWithoutLoadedSession(LockingStrategy.java:242)

         at de.javakaffee.web.msm.MemcachedSessionService.backupSession(MemcachedSessionService.java:1048)

         at de.javakaffee.web.msm.RequestTrackingHostValve.backupSession(RequestTrackingHostValve.java:244)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:173)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:170)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)

        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

        at java.lang.Thread.run(Unknown Source)

 Nov 13, 2013 12:00:03 AM de.javakaffee.web.msm.BackupSessionTask handleException

 WARNING: Could not store session AAED5499F0C36F10DF4AB4AAAE5AA204 in memcached.

 net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: /10.55.77.237:11211

         at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:93)

         at de.javakaffee.web.msm.BackupSessionTask.storeSessionInMemcached(BackupSessionTask.java:229)

         at de.javakaffee.web.msm.BackupSessionTask.doBackupSession(BackupSessionTask.java:194)

         at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:119)

         at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:50)

         at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:346)

         at de.javakaffee.web.msm.BackupSessionService.backupSession(BackupSessionService.java:205)

         at de.javakaffee.web.msm.MemcachedSessionService.backupSession(MemcachedSessionService.java:1076)

         at de.javakaffee.web.msm.RequestTrackingHostValve.backupSession(RequestTrackingHostValve.java:244)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:173)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:138)

         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)

         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)

         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

         at java.lang.Thread.run(Unknown Source)

 

Alon Sar Shalom

Martin Grotzke

unread,
Nov 13, 2013, 9:08:00 AM11/13/13
to memcached-se...@googlegroups.com
Hi,

you're running into the sessionBackupTimeout which is set to 100 ms by
default (see
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration).
You should increase it to e.g. 500 (latency on AWS is typically a bit
higher).

Cheers,
Martin
> --
>
> ---
> You received this message because you are subscribed to the Google
> Groups "memcached-session-manager" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to memcached-session-...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

--
inoio gmbh - http://inoio.de
Schulterblatt 36, 20357 Hamburg
Amtsgericht Hamburg, HRB 123031
Geschäftsführer: Dennis Brakhane, Martin Grotzke, Ole Langbehn

signature.asc

alon sar-shalom

unread,
Nov 13, 2013, 11:48:57 AM11/13/13
to memcached-se...@googlegroups.com, martin....@googlemail.com
Thanks! I really appreciate the quick response. We have already increased the sessionBackupTimeout. But what seems strange is that when it times out, it doesn't throw any exception when the session backup fails even though it is set to be synchronous. Is that normal, or a bug?

בתאריך יום רביעי, 13 בנובמבר 2013 16:08:00 UTC+2, מאת Martin Grotzke:

Martin Grotzke

unread,
Nov 13, 2013, 2:07:19 PM11/13/13
to alon sar-shalom, memcached-session-manager

Not sure what you mean. Would you expect that the http request fails with e.g. Status 500 or similar? That's intentionally not the case.

Cheers,
Martin

Reply all
Reply to author
Forward
0 new messages