[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-dev] Troubles with embedded Jetty Session scavenging


One thing that I noticed is that your HouseKeeper is using its own scheduler, rather than using one that it obtains from the server. Any chance you can change that and run again and see if the problem disappears?

As you can see from the HouseKeeper code, every time the scavenge cycle completes, it schedules another cycle iff the scheduler is still running. See line 72. It does that in a finally block, so even if the scavenge threw some kind of exception/error, the next scavenge should be scheduled. You may have to checkout and build the jetty 9.4.x branch locally and try putting in a catch and/or some printlns to see what is going on, although I would have expected some log output if there was an error.

You also say the app is keeping its own list of sessions - is that a full reference to the session or just the session id? If the former, I wouldn't recommend you do that, as the management of the lifecycle of that object is not under the control of the app, the container needs to manage it.

The server dump from your original email looks a little odd - I don't see the normal dump for the 2 webapps /bc and /bdm -Â I would expect to see a ContextHandlerCollection and a normal dump of the 2 contexts. That would also show the configuration setup for the SessionHandler with the default session maxIdleTime.

Another thing to look into is the Session objects themselves. After this problem happens, do you see log lines like "Timer expired for session for session xyz"? Or ""Inspecting session xyz, valid=true"? Or "Session xyz is candidate for expiry"? What about " Expiring xyz" ? Can you look at the heap dump for the SessionHandler._candidateSessionIdsForExpiry and see if it has any entries for expired sessions? What are the values for the fields of the sessions that you say are still in the DefaultSessionCache?


On 14 January 2018 at 14:01, Paul Palaszewski <paul.palaszewski@xxxxxxxxxxxxxxx> wrote:
Hi Jan,

thanks for the first feedback!

yes, Iâm sure that OutOfMemory occurs because of the ungarbaged sessions. Loosing a few kb with every open session. Our web apps have an end-user-friendly jmx-like monitoring. there I can see it pretty clear. Our apps are usually running for months and years without interrupt, we have no leaking memory issues there.

No, up to now I could not reproduce it - otherwise I would have tackled it already myself.Â

One more thing that should not, but might interfere: The app keeps track of active sessions. It implements HttpSessionListener interface and our WebApp (extending ServletContextHandler) uses addEventListener() for itself and for the session manager to capture sessionCreated() and sessionDestroyed() to update itâs own session list. Up to some time it get the events, later on it does not anymore.

I usually use that in our monitoring view to verify if any new changes solve the issue - again, for some time I see sessions disappearing and then they remain that while it shows that the maxInactiveInterval was set to something reasonable but it sticks there for days without any further usage/access.

WebApp / Session setup:
bdm.Server creates DefaultSessionIdManager and HouseKeeper as described in my previous mail
bdm.Server scans for .war-files and creates a bdm.WebApp extending ServletContextHandler
bdm.WepApp reads WEB-INF/web.xml which contains 1 servlet with load-on-startup + 1 servlet filter + 1 listener-class + following session config
which is applied to the WebApps getSessionHandler().getCookieConfig()

on war-file change the app is stopped, removed from the contexts and a new one is added. Happens every few weeks. The hanging scavenger occurs regardless also if we donât update / redeploy any apps.

The app has a config option to change the session expiration which is by default set to 3 hours. Itâs applied when the session is created with httpSession.setMaxInactiveInterval(inSeconds). As mentioned, in production we usually have up to 6 hours, for development / testing I usually change it to 1 or 2 min.

I can easily obtain Heap Dumps of machines after startup where scavenging works and after some time where it does not. I do see, that sessions are referenced by the session manager and our session list, not by anyone else. How does that help me?

I am familiar with profilers and use them on a regular basis. I think debugging or temporarily adding more debug infos to the dump-output is more suitable in the given case. What / where should I look at to gain any insights?


Am 12.01.2018 um 17:46 schrieb Jan Bartel <janb@xxxxxxxxxxx>:

Are you sure that the OOM happens after the scavenger dies and not that the scavenger dies because of OOM?

I would connect to it with jconsole or similar tool and keep looking at the running threads and the memory and see when things start to go wrong.

Also turn up session logging to debug level to capture more info.

Also try with a profiler and see if you can grab a heap dump to analyse.

Can you reproduce in a test environment?

Can you tell me what all of the session related configuration is, including in your web.xml, and anything you do in code, and I'll see if I can reproduce.


On 12 Jan. 2018 16:16, "Paul Palaszewski" <paul.palaszewski@bdm-systems.com> wrote:

Hi everybody,


Iâve been using Jetty for quite a while and a few months ago we decided to switch from the standard start.jar-launcher to our own. Main reasons are greatly improved deployments (startup) time by using a own largly simplified hot-WebApp deployer and automatic SSL certificate updates through our own letsencrypt-client.


Having troubles with the Session HouseKeeper:

Using simple, standard in-memory sessions. Scavenging starts and initially works fine. I can debug it and see that it collects expired sessions.

But as soon as I let it run on productive systems for a few days at some point in time it stops and all expired sessions remain in memory which leads to OutOfMemory-errors after a few weeks.

Works fine with the original start.jar-launcher, experienced this problem only with our custom server.

Using jetty 9.4.7 and 9.4.8, running on Oracle JDK 9.0.1 (was the same with 9.0) on Windows 10, various Linux distros and macOS 10.13.2 .


Iâm initializing Server / Session Manager this way â

ÂÂÂ server = new org.eclipse.jetty.server.Server();

ÂÂÂ DefaultSessionIdManager session = new DefaultSessionIdManager(server);

ÂÂÂ HouseKeeper houseKeeper = new HouseKeeper();

ÂÂÂ houseKeeper.setIntervalSec(30);

ÂÂÂ session.setSessionHouseKeeper(houseKeeper);

ÂÂÂ server.setSessionIdManager(session);


Have not found a "Stopped scavenging" or any other clue in the logs.


Any ideas, what Iâm doing wrong or how to narrow down the issue?


Best regards,



And the server dump â

org.eclipse.jetty.server.Server@3aefe5e5[9.4.z-SNAPSHOT] - STARTED

+= QueuedThreadPool@qtp674483268{STARTED,8<=10<=200,i=2,q=0} - STARTED

|ÂÂ +- 401 qtp674483268-401 IDLE TIMED_WAITING @ java.base@xxxxx/jdk.internal.misc.Unsafe.park(Native Method)

|ÂÂ +- 402 qtp674483268-402 IDLE TIMED_WAITING @ java.base@xxxxx/jdk.internal.misc.Unsafe.park(Native Method)

|ÂÂ +- 221 qtp674483268-221 SELECTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)

|ÂÂ +- 18 qtp674483268-18-acceptor-0@ee4204f-ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} ACCEPTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3

|ÂÂ +- 20 qtp674483268-20 SELECTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)

|ÂÂ +- 400 qtp674483268-400 RESERVED TIMED_WAITING @ java.base@xxxxx/jdk.internal.misc.Unsafe.park(Native Method)

|ÂÂ +- 21 qtp674483268-21 SELECTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)

|ÂÂ +- 22 qtp674483268-22-acceptor-0@2c9c6f53-ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} ACCEPTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3

|ÂÂ +- 23 0:0:0:0:0:0:0:1 2018-01-12 15:36:35.055 GET /About RUNNABLE @ java.base/java.lang.Thread.getStackTrace(Thread.java:1654)

|ÂÂ +- 78 qtp674483268-78 SELECTING RUNNABLE @ java.base@xxxxx/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)

|ÂÂ +- jobs

+= org.eclipse.jetty.server.session.DefaultSessionIdManager@1de47212[worker=node0] - STARTED

|ÂÂ +? org.eclipse.jetty.server.session.HouseKeeper@501792b1[interval=33000, ownscheduler=true] - STARTED

+= ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} - STARTED

|ÂÂ +~ org.eclipse.jetty.server.Server@3aefe5e5[9.4.z-SNAPSHOT] - STARTED

|ÂÂ +~ QueuedThreadPool@qtp674483268{STARTED,8<=10<=200,i=2,q=0} - STARTED

|ÂÂ += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@b7dd107 - STARTED

|ÂÂ |ÂÂ +- java.base@xxxxx/jdk.internal.misc.Unsafe.park(Native Method)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2104)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1131)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:848)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

|ÂÂ |ÂÂ +- java.base@xxxxx/java.lang.Thread.run(Thread.java:844)

|ÂÂ +- org.eclipse.jetty.io.ArrayByteBufferPool@7caa80e4

|ÂÂ += HttpConnectionFactory@cb0ed20[HTTP/1.1] - STARTED

|ÂÂ |ÂÂ +- HttpConfiguration@18c5cd7d{32768/8192,8192/8192,https://:443,[]}

|ÂÂ += SelectorManager@ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} - STARTED

|ÂÂ |ÂÂ += ReservedThreadExecutor@268f5895{s=1/4,p=0}@SelectorManager@ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} - STARTED

|ÂÂ |ÂÂ += org.eclipse.jetty.io.ManagedSelector@4a61c4ef id=0 keys=0 selected=0 actions=0 - STARTED

|ÂÂ |ÂÂ |ÂÂ += EatWhatYouKill@62e4c0e7/SelectorProducer@1d4ff7ab/PRODUCING/ReservedThreadExecutor@268f5895{s=1/4,p=0}@SelectorManager@ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} - STARTED

|ÂÂ |ÂÂ |ÂÂÂÂÂÂ +- SelectorProducer@1d4ff7ab

|ÂÂ |ÂÂ |ÂÂ +- keys

|ÂÂ |ÂÂ |ÂÂ |ÂÂ +- sun.nio.ch.WindowsSelectorImpl@3f46ce65 keys=0

|ÂÂ |ÂÂ |ÂÂ +- actions

|ÂÂ |ÂÂ += org.eclipse.jetty.io.ManagedSelector@5a02a8a4 id=1 keys=1 selected=0 actions=0 - STARTED

|ÂÂ |ÂÂÂÂÂÂ += EatWhatYouKill@1e02ae9b/SelectorProducer@7c92e05f/PRODUCING/ReservedThreadExecutor@268f5895{s=1/4,p=0}@SelectorManager@ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{} - STARTED

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂ +- SelectorProducer@7c92e05f

|ÂÂ |ÂÂÂÂÂÂ +- keys

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ +- sun.nio.ch.WindowsSelectorImpl@2bdff7b9 keys=1

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ +- SelectionKey@67dc299b{i=0}->SocketChannelEndPoint@168b474c{/0:0:0:0:0:0:0:1:52677<->/0:0:0:0:0:0:0:1:80,OPEN,fill=-,flush=-,to=119/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5d013a2c[p=HttpParser{s=END,0 of -1},g=HttpGenerator@593eb554{s=START}]=>HttpChannelOverHttp@1c3c3017{r=1,c=false,a=DISPATCHED,uri=//localhost/4p/About?b9=}

|ÂÂ |ÂÂÂÂÂÂ +- actions

|ÂÂ += HTTP2CServerConnectionFactory@2fd66ad3[h2c] - STARTED

|ÂÂ |ÂÂ +- HttpConfiguration@18c5cd7d{32768/8192,8192/8192,https://:443,[]}

|ÂÂ +- sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:80]

|ÂÂ +- qtp674483268-22-acceptor-0@2c9c6f53-ServerConnector@5c86a017{HTTP/1.1,[http/1.1, h2c]}{}

+= ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} - STARTED

|ÂÂ +~ org.eclipse.jetty.server.Server@3aefe5e5[9.4.z-SNAPSHOT] - STARTED

|ÂÂ +~ QueuedThreadPool@qtp674483268{STARTED,8<=10<=200,i=2,q=0} - STARTED

|ÂÂ += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@4b9e255 - STARTED

|ÂÂ +- org.eclipse.jetty.io.ArrayByteBufferPool@2cc73a0f

|ÂÂ += SelectorManager@ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} - STARTED

|ÂÂ |ÂÂ += ReservedThreadExecutor@63cff0bb{s=0/4,p=0}@SelectorManager@ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} - STARTED

|ÂÂ |ÂÂ += org.eclipse.jetty.io.ManagedSelector@6832fc2f id=0 keys=0 selected=0 actions=0 - STARTED

|ÂÂ |ÂÂ |ÂÂ += EatWhatYouKill@3c9696e/SelectorProducer@16cb2c5a/PRODUCING/ReservedThreadExecutor@63cff0bb{s=0/4,p=0}@SelectorManager@ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} - STARTED

|ÂÂ |ÂÂ |ÂÂÂÂÂÂ +- SelectorProducer@16cb2c5a

|ÂÂ |ÂÂ |ÂÂ +- keys

|ÂÂ |ÂÂ |ÂÂ |ÂÂ +- sun.nio.ch.WindowsSelectorImpl@5f633211 keys=0

|ÂÂ |ÂÂ |ÂÂ +- actions

|ÂÂ |ÂÂ += org.eclipse.jetty.io.ManagedSelector@a9d5c10 id=1 keys=0 selected=0 actions=0 - STARTED

|ÂÂ |ÂÂÂÂÂÂ += EatWhatYouKill@75311ae8/SelectorProducer@3d7b9f39/PRODUCING/ReservedThreadExecutor@63cff0bb{s=0/4,p=0}@SelectorManager@ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{} - STARTED

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂ +- SelectorProducer@3d7b9f39

|ÂÂ |ÂÂÂÂÂÂ +- keys

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ +- sun.nio.ch.WindowsSelectorImpl@5c443958 keys=0

|ÂÂ |ÂÂÂÂÂÂ +- actions

|ÂÂ += SslConnectionFactory@d6da883{SSL->alpn} - STARTED

|ÂÂ |ÂÂ += SslContextFactory@642a7222[provider=null,keyStore=file:///C:/Entw/btkrt/etc/keystore,trustStore=null] trustAll=false

|ÂÂ |ÂÂÂÂÂÂ +- Protocol Selections

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ +- Enabled (size=3)


|ÂÂ |ÂÂÂÂÂÂ |ÂÂ |ÂÂ +- TLSv1.1

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ |ÂÂ +- TLSv1.2

|ÂÂ |ÂÂÂÂÂÂ |ÂÂ +- Disabled (size=2)

|ÂÂ |ÂÂÂÂÂÂ |ÂÂÂÂÂÂ +- SSLv2Hello - ConfigExcluded:'SSLv2Hello'

|ÂÂ |ÂÂÂÂÂÂ |ÂÂÂÂÂÂ +- SSLv3 - JreDisabled:java.security, ConfigExcluded:'SSLv3'

|ÂÂ |ÂÂÂÂÂÂ +- Cipher Suite Selections

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂ +- Enabled (size=13)














|ÂÂ |ÂÂÂÂÂÂÂÂÂÂ +- Disabled (size=69)

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DHE_DSS_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DHE_RSA_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DH_anon_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_DH_anon_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_RSA_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_RSA_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_RSA_WITH_NULL_MD5 - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigExcluded:'.*MD5.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- SSL_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

| ÂÂ|ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 - ConfigExcluded:'.*DSS.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_128_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_128_CBC_SHA256 - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_128_GCM_SHA256 - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_256_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_256_CBC_SHA256 - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_DH_anon_WITH_AES_256_GCM_SHA384 - JreDisabled:java.security, ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂ ÂÂÂÂÂÂÂÂÂ+- TLS_ECDHE_ECDSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDHE_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified



|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 - ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂ ÂÂÂÂÂÂÂÂÂÂÂ+- TLS_ECDH_ECDSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂ ÂÂÂÂÂÂÂÂÂ+- TLS_ECDH_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂ ÂÂÂÂÂ+- TLS_ECDH_anon_WITH_AES_128_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_anon_WITH_AES_256_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_ECDH_anon_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified


|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 - JreDisabled:java.security, ConfigExcluded:'.*MD5.*', ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂ ÂÂÂÂÂÂÂ+- TLS_KRB5_WITH_3DES_EDE_CBC_MD5 - JreDisabled:java.security, ConfigExcluded:'.*MD5.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_KRB5_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂ Â+- TLS_KRB5_WITH_DES_CBC_MD5 - JreDisabled:java.security, ConfigExcluded:'.*MD5.*', ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_KRB5_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'.*_DES.*', ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_128_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_128_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_128_GCM_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_256_CBC_SHA - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_256_CBC_SHA256 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_AES_256_GCM_SHA384 - ConfigIncluded:NotSpecified

|ÂÂ |ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ +- TLS_RSA_WITH_NULL_SHA256 - JreDisabled:java.security, ConfigExcluded:'.*NULL.*', ConfigIncluded:NotSpecified

|ÂÂ += ALPNServerConnectionFactory@45afc369{[alpn],HTTP/1.1,[]} - STARTED

|ÂÂ += HTTP2ServerConnectionFactory@70beb599[h2] - STARTED

|ÂÂ |ÂÂ +- HttpConfiguration@7dd64052{32768/8192,8192/8192,https://:443,[SecureRequestCustomizer@35528b51]}

|ÂÂ += HttpConnectionFactory@4e41089d[HTTP/1.1] - STARTED

|ÂÂ |ÂÂ +- HttpConfiguration@7dd64052{32768/8192,8192/8192,https://:443,[SecureRequestCustomizer@35528b51]}

|ÂÂ +- sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:443]

|ÂÂ +- qtp674483268-18-acceptor-0@ee4204f-ServerConnector@3fa247d1{SSL,[ssl, alpn, h2, http/1.1]}{}

+= com.bdm.bwebserver.Server$2@190bae5a - STARTED

|ÂÂ +> webapps



+= org.eclipse.jetty.server.handler.ErrorHandler@67eb0042 - STARTED

+> jdk.internal.loader.ClassLoaders$AppClassLoader@504bae78

ÂÂÂÂ +- jdk.internal.loader.ClassLoaders$PlatformClassLoader@17ed40e0

jetty-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
jetty-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

jetty-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

Jan Bartel <janb@xxxxxxxxxxx>
Expert assistance from the creators of Jetty and CometD