First, thanks to all testers. Attached is another version without the timer task.
Please remove LRUAuthenticationCacheImpl$1.class from WEB-INF/lib/main-<version>.jar and replace LRUAuthenticationCacheImpl.class I think this will work. Christian On Fri, Aug 23, 2013 at 8:51 PM, Mike Grogan <[email protected]>wrote: > I have not yet tested the fix. It is on my agenda for early next week. > > - Mike > > > > On Fri, Aug 23, 2013 at 8:09 AM, Andrew Miskelly < > [email protected]> wrote: > >> Slightly different outcome this time around for me. By the end of the >> day all of my AJP threads ended up in a RUNNABLE state, though not >> apparently doing anything. I'm not sure whether this is a progression of >> this issue or something entirely different but the result is the same - an >> unresponsive application. >> >> "ajp-bio-8109-exec-937" daemon prio=10 tid=0x00002aaab533d000 nid=0x14d0 >> runnable [0x000000004d9b1000] >> java.lang.Thread.State: RUNNABLE >> at java.net.SocketInputStream.socketRead0(Native Method) >> at java.net.SocketInputStream.read(SocketInputStream.java:129) >> at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:309) >> at >> org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:364) >> at >> org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:128) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >> at >> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) >> - locked <0x0000000785dfec70> (a >> org.apache.tomcat.util.net.SocketWrapper) >> 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:662) >> >> Has anyone else done any testing of the new code? >> >> Regards, >> Andrew >> >> >> On 23/08/2013 09:51, Andrew Miskelly wrote: >> >> Hi Christian and Eric, >> >> Thanks for the work you've put in thus far. I have deployed the updated >> classes and will let you know how things are going once GeoServer has been >> running for a while. >> >> Regards, >> Andrew >> >> On 23/08/2013 01:33, Christian Mueller wrote: >> >> Hi all >> >> I attached LRUAuthenticationCacheImpl.class and >> LRUAuthenticationCacheImpl$1.class for testing. These classes includes the >> code snippet proposed by Eric. Please replace these classes in >> >> WEB-INF/lib/main-<version>.jar >> >> Let me know about the results. >> >> If the problem persists, I will publish a version without the timer >> task. This should resolve the issue. The disadvantage would be that >> authentication tokens are hold in memory longer than needed, the >> functionality would not change. >> >> Cheers >> Christian >> >> >> >> >> On Thu, Aug 22, 2013 at 5:18 PM, Eric Smets <[email protected]> wrote: >> >>> Op 22/08/2013 16:30, Christian Mueller schreef: >>> >>> Hi Eric >>> >>> Only to be sure, the above code snippet solves the issue ? >>> >>> We have only tested this modification, this came up after an internal >>> discussion. >>> We can not confirm that this solves the original issue, but this >>> solution should do a better job. >>> >>> We could use the testscript from Andrew to confirm the solution. >>> >>> >>> >>> >>> If it does, I will publish a modified class file for the other users >>> to test. >>> >>> My current idea was to remove the time task completely, but your >>> solution would be better and safer. >>> >>> Please let me know >>> >>> >>> >>> >>> >>> >>> >>> >>> On Thu, Aug 22, 2013 at 4:09 PM, Eric Smets <[email protected]> wrote: >>> >>>> Hello, >>>> >>>> We had/have on a production machine the same issue. >>>> Following the discuss we looked into the implementation of >>>> LRUAuthenticationCacheImpl >>>> >>>> The origin of the problem is not clear but the result is only one loop >>>> over the keys. >>>> >>>> LRUAuthenticationCacheImpl. Some addional logging is also added but >>>> could be removed >>>> >>>> The changed snipped follows >>>> ---- >>>> >>>> TimerTask removeExpiredTask = new TimerTask() { >>>> @Override >>>> public void run() { >>>> LOGGER.fine("Start searching for expired authentication >>>> tokens"); >>>> writeLock.lock(); >>>> try { >>>> int removed = 0; >>>> long currentTime=System.currentTimeMillis(); >>>> >>>> if (cache.size() > 50) LOGGER.info("AuthKey Cache >>>> entries: " + cache.size()); >>>> >>>> Iterator<AuthenticationCacheEntry> iter = >>>> cache.values().iterator(); >>>> >>>> while (iter.hasNext()) >>>> { >>>> if (iter.next().hasExpired(currentTime)) >>>> { >>>> iter.remove(); >>>> removed++; >>>> } >>>> } >>>> LOGGER.fine("Number of expired authentication tokens >>>> found: " + removed); >>>> } finally { >>>> writeLock.unlock(); >>>> } >>>> LOGGER.fine("End searching for expired authentication >>>> tokens"); >>>> } >>>> }; >>>> >>>> Op 22/08/2013 11:58, Andrea Aime schreef: >>>> >>>> On Thu, Aug 22, 2013 at 11:52 AM, Christian Mueller < >>>> [email protected]> wrote: >>>> >>>>> Hi Andrea >>>>> >>>>> The problem is that most cache implementations have global expire >>>>> time settings. We need global expire times as default but it must be >>>>> possible to assign expire times to individual entries. As an example, >>>>> digest authentication has its own expire times and it does not make sense >>>>> if the cache has expire times larger than the configured expire times of >>>>> the digest authentication filter. A cache entry created by digest >>>>> authentication has expire times limited by the digest authentication >>>>> configuration. >>>>> >>>>> The cleaner thread is here to guarantee that an unused >>>>> authentication token is not cached for a long time period, this is a >>>>> security risk. >>>>> >>>>> >>>>> I am thinking about using Collections.synchronizedMap(..) and to >>>>> kick out all the locking stuff. >>>>> >>>> >>>> Ugh, it would limit scalability quite a bit. The Guava CacheBuilder >>>> should be a much more performant solution. >>>> Once built you can treat it as a regular map, it handles LRU and >>>> concurrency internally. >>>> >>>> Cheers >>>> Andrea >>>> >>>> -- >>>> == >>>> Our support, Your Success! Visit http://opensdi.geo-solutions.it for >>>> more information. >>>> == >>>> >>>> Ing. Andrea Aime >>>> @geowolf >>>> Technical Lead >>>> >>>> GeoSolutions S.A.S. >>>> Via Poggio alle Viti 1187 >>>> 55054 Massarosa (LU) >>>> Italy >>>> phone: +39 0584 962313 <%2B39%200584%20962313> >>>> fax: +39 0584 1660272 <%2B39%200584%201660272> >>>> mob: +39 339 8844549 <%2B39%20%C2%A0339%208844549> >>>> >>>> http://www.geo-solutions.it >>>> http://twitter.com/geosolutions_it >>>> >>>> ------------------------------------------------------- >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Introducing Performance Central, a new site from SourceForge and >>>> AppDynamics. Performance Central is your source for news, insights, >>>> analysis and resources for efficient Application Performance Management. >>>> Visit us >>>> today!http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >>>> >>>> >>>> >>>> _______________________________________________ >>>> Geoserver-users mailing >>>> [email protected]https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>> >>>> >>>> >>>> -- >>>> Eric Smets [email protected] >>>> FKS bvba - Formal and Knowledge Systems http://www.fks.be/ >>>> Schampbergstraat 32 Tel: ++32-(0)11-21 49 11 >>>> B-3511 Hasselt Fax: ++32-(0)11-22 04 19 >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Introducing Performance Central, a new site from SourceForge and >>>> AppDynamics. Performance Central is your source for news, insights, >>>> analysis and resources for efficient Application Performance Management. >>>> Visit us today! >>>> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Geoserver-users mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>> >>>> >>> >>> >>> -- >>> DI Christian Mueller MSc (GIS), MSc (IT-Security) >>> OSS Open Source Solutions GmbH >>> >>> >>> >>> -- >>> Eric Smets [email protected] >>> FKS bvba - Formal and Knowledge Systems http://www.fks.be/ >>> Schampbergstraat 32 Tel: ++32-(0)11-21 49 11 >>> B-3511 Hasselt Fax: ++32-(0)11-22 04 19 >>> >>> >> >> >> -- >> DI Christian Mueller MSc (GIS), MSc (IT-Security) >> OSS Open Source Solutions GmbH >> >> >> >> ------------------------------------------------------------------------------ >> Introducing Performance Central, a new site from SourceForge and >> AppDynamics. Performance Central is your source for news, insights, >> analysis and resources for efficient Application Performance Management. >> Visit us >> today!http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >> >> >> >> _______________________________________________ >> Geoserver-users mailing >> [email protected]https://lists.sourceforge.net/lists/listinfo/geoserver-users >> >> >> >> >> ------------------------------------------------------------------------------ >> Introducing Performance Central, a new site from SourceForge and >> AppDynamics. Performance Central is your source for news, insights, >> analysis and resources for efficient Application Performance Management. >> Visit us >> today!http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >> >> >> >> _______________________________________________ >> Geoserver-users mailing >> [email protected]https://lists.sourceforge.net/lists/listinfo/geoserver-users >> >> >> >> >> ------------------------------------------------------------------------------ >> Introducing Performance Central, a new site from SourceForge and >> AppDynamics. Performance Central is your source for news, insights, >> analysis and resources for efficient Application Performance Management. >> Visit us today! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >> _______________________________________________ >> Geoserver-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/geoserver-users >> >> > > > ------------------------------------------------------------------------------ > Introducing Performance Central, a new site from SourceForge and > AppDynamics. Performance Central is your source for news, insights, > analysis and resources for efficient Application Performance Management. > Visit us today! > http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk > _______________________________________________ > Geoserver-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geoserver-users > > -- DI Christian Mueller MSc (GIS), MSc (IT-Security) OSS Open Source Solutions GmbH
LRUAuthenticationCacheImpl.class
Description: Binary data
------------------------------------------------------------------------------ Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
