Hi Trygve,

This was a bug and it is now fixed; I also changed the log level as ERROR was indeed inappropriate.

You will need to get a snapshot version of wadi-core as this was a problem with WADI which was not properly re-initiating replicas when sessions were evacuated from a node shutting down to all the remaining nodes. I will review more closely the re-initialisation of replicas in the case of normal shutdown over the week-end as there is still a problem in a very specific race condition (I do not think that you will be able to observe it).


You can get the snapshot there:

http://snapshots.repository.codehaus.org/org/codehaus/wadi/wadi-core/ 2.2-SNAPSHOT/wadi-core-2.2-20090115.131018-1.jar


The simplest thing is to replace

repository/org/codehaus/wadi/wadi-core/2.1/wadi-core-2.1.jar

with this snapshot version. You can also install this artefact in your repo with a version number higher than 2.1. and it will be transparently picked-up instead of 2.1.


I will need to cut a release of WADI very soon as these fixes need to be included in G 2.2. So, you should not have to use this snapshot for more than 3-4 days.

Thanks,
Gianny

On 14/01/2009, at 11:47 PM, Trygve Hardersen wrote:

Great, thanks a lot Gianny.

I updated the source and I'm no longer getting the error. I am however seeing this upon session invalidation:

13:29:01,528 INFO  [HybridRelocater] Unknown session [a4gezreo2fd4]
13:29:03,532 ERROR [StandardManager] Could not acquire session [a4gezreo2fd4]

I guess this is because the browser is redirected after session invalidation but still includes the old session ID in the request. If so the log message from the StandardManager should probably not be at the ERROR level as it is a very common situation. Non- critical nevertheless.

There is still an issue if I stop one of the nodes gracefully (i.e. $GERONIMO_HOME/bin/shutdown.sh). On subsequent requests I'm getting this error:

13:34:39,808 ERROR [log] /profile
org.codehaus.wadi.replication.manager.ReplicationKeyNotFoundException: Key [v9ekd9eipx2h] does not exist at org.codehaus.wadi.replication.manager.basic.SyncReplicationManager.upd ate(SyncReplicationManager.java:147) at org.codehaus.wadi.core.session.AbstractReplicableSession.onEndProcessi ng(AbstractReplicableSession.java:49) at org.codehaus.wadi.core.session.AtomicallyReplicableSession.onEndProces sing(AtomicallyReplicableSession.java:58) at org.codehaus.wadi.web.impl.WebInvocation.invoke (WebInvocation.java:121) at org.codehaus.wadi.core.contextualiser.MemoryContextualiser.handleLocal ly(MemoryContextualiser.java:71) at org.codehaus.wadi.core.contextualiser.AbstractExclusiveContextualiser. handle(AbstractExclusiveContextualiser.java:94) at org.codehaus.wadi.core.contextualiser.AbstractMotingContextualiser.con textualise(AbstractMotingContextualiser.java:37) at org.codehaus.wadi.core.manager.StandardManager.processStateful (StandardManager.java:150) at org.codehaus.wadi.core.manager.StandardManager.contextualise (StandardManager.java:142) at org.codehaus.wadi.core.manager.ClusteredManager.contextualise (ClusteredManager.java:81) at org.apache.geronimo.jetty6.cluster.wadi.WADIClusteredPreHandler $WADIWebClusteredInvocation.invoke(WADIClusteredPreHandler.java:72) at org.apache.geronimo.jetty6.cluster.AbstractClusteredPreHandler.handle( AbstractClusteredPreHandler.java:39) at org.apache.geronimo.jetty6.cluster.ClusteredSessionHandler.handle (ClusteredSessionHandler.java:51) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:405) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101 (TwistyWebAppContext.java:40) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext $TwistyHandler.handle(TwistyWebAppContext.java:65) at org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle (ThreadClassloaderHandler.java:46) at org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle (InstanceContextHandler.java:67) at org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle (UserTransactionHandler.java:48) at org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle (ComponentContextHandler.java:47) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle (TwistyWebAppContext.java:59) at org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher.java:285) at org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher.java:126) at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward (ServletTilesRequestContext.java:198) at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch (ServletTilesRequestContext.java:179) at org.apache.tiles.impl.BasicTilesContainer.render (BasicTilesContainer.java:675) at org.apache.tiles.impl.BasicTilesContainer.render (BasicTilesContainer.java:631) at org.apache.tiles.impl.BasicTilesContainer.render (BasicTilesContainer.java:307) at no.jotta.backup.web.gui.profile.servlets.ProfileServlet.doGet (ProfileServlet.java:74) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 693) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 806) at org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:487) at org.apache.geronimo.jetty6.InternalJettyServletHolder.handle (InternalJettyServletHolder.java:65) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1093) at no.jotta.backup.web.gui.pub.filters.AppFilter.doFilter (AppFilter.java:131) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at no.jotta.backup.web.toolbox.filters.CacheControlFilter.doFilter (CacheControlFilter.java:135) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.servlet.UserAgentFilter.doFilter (UserAgentFilter.java:81) at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java: 129) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.apache.geronimo.jetty6.handler.JettySecurityHandler.handle (JettySecurityHandler.java:114) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.apache.geronimo.jetty6.cluster.ClusteredSessionHandler.doHandle (ClusteredSessionHandler.java:59) at org.apache.geronimo.jetty6.cluster.ClusteredSessionHandler $ActualHandler.handle(ClusteredSessionHandler.java:66) at org.apache.geronimo.jetty6.cluster.AbstractClusteredPreHandler $WebClusteredInvocation.invokeLocally (AbstractClusteredPreHandler.java:71) at org.apache.geronimo.jetty6.cluster.wadi.WADIClusteredPreHandler $WADIWebClusteredInvocation.access$000(WADIClusteredPreHandler.java: 52) at org.apache.geronimo.jetty6.cluster.wadi.WADIClusteredPreHandler $WADIWebClusteredInvocation$1.doFilter(WADIClusteredPreHandler.java: 64) at org.codehaus.wadi.web.impl.WebInvocation.invoke (WebInvocation.java:116) at org.codehaus.wadi.core.contextualiser.MemoryContextualiser.handleLocal ly(MemoryContextualiser.java:71) at org.codehaus.wadi.core.contextualiser.AbstractExclusiveContextualiser. handle(AbstractExclusiveContextualiser.java:94) at org.codehaus.wadi.core.contextualiser.AbstractMotingContextualiser.con textualise(AbstractMotingContextualiser.java:37) at org.codehaus.wadi.core.manager.StandardManager.processStateful (StandardManager.java:150) at org.codehaus.wadi.core.manager.StandardManager.contextualise (StandardManager.java:142) at org.codehaus.wadi.core.manager.ClusteredManager.contextualise (ClusteredManager.java:81) at org.apache.geronimo.jetty6.cluster.wadi.WADIClusteredPreHandler $WADIWebClusteredInvocation.invoke(WADIClusteredPreHandler.java:72) at org.apache.geronimo.jetty6.cluster.AbstractClusteredPreHandler.handle( AbstractClusteredPreHandler.java:39) at org.apache.geronimo.jetty6.cluster.ClusteredSessionHandler.handle (ClusteredSessionHandler.java:51) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:405) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101 (TwistyWebAppContext.java:40) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext $TwistyHandler.handle(TwistyWebAppContext.java:65) at org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle (ThreadClassloaderHandler.java:46) at org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle (InstanceContextHandler.java:58) at org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle (UserTransactionHandler.java:48) at org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle (ComponentContextHandler.java:47) at org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle (TwistyWebAppContext.java:59) at org.mortbay.jetty.handler.ContextHandlerCollection.handle (ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:505) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:828)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:395) at org.apache.geronimo.pool.ThreadPool$1.run (ThreadPool.java:214) at org.apache.geronimo.pool.ThreadPool $ContextClassLoaderRunnable.run(ThreadPool.java:344) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask (ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

If I start a new session with the browser the problem goes away, but it seems to persist as long as the unknown session ID is included in the request.

If I kill one of the nodes (using kill -9 PID) this problem does not occur. Only on clean shutdowns.

Thanks again for your help!

Trygve

On Wed, Jan 14, 2009 at 9:05 AM, Gianny Damour <[email protected]> wrote:
Hi Trygve,

This was a regression and it is now fixed.

If you are building from source 2.2-SNAPSHOT, then here are the steps to apply the fix:

1. update plugins/jetty/geronimo-jetty6-clustering-wadi
2. build geronimo-jetty6-clustering-wadi
3. copy resulting artefact to your repository under repository/org/ apache/geronimo/modules/geronimo-jetty6-clustering-wadi/2.2-SNAPSHOT/

Let us know if you are not building from source and I will push a snapshot.

Thanks,
Gianny


Reply via email to