Dawid Kulig created DIRMINA-1065: ------------------------------------ Summary: Stuck on the SSL request Key: DIRMINA-1065 URL: https://issues.apache.org/jira/browse/DIRMINA-1065 Project: MINA Issue Type: Bug Affects Versions: 2.0.16 Environment: java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
Linux 8d9ad913fa03 4.4.39-34.54.amzn1.x86_64 #1 SMP Fri Dec 30 19:11:28 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Reporter: Dawid Kulig I am having troubles with Apache MINA core library. When I deploy my application to a remote server some of the requests are not processed (around 2%). It looks like there might be a problem with SSL. When request is not being processed, it is always stuck on: {code}org.apache.mina.filter.ssl.SslFilter - Session Server[40](ssl...): Processing the SSL Data{code} {code:title=full request log tail} Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,081 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslFilter - Adding the SSL Filter sslFilter to the chain Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,081 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](no sslEngine) Initializing the SSL Handler Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](no sslEngine) SSL Handler Initialization done. Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslFilter - Session Server[40](ssl...) : Starting the first handshake Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) processing the NEED_UNWRAP state Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [pool-7-thread-10] DEBUG org.apache.mina.core.filterchain.IoFilterEvent - Firing a SESSION_OPENED event for session 40 Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [pool-7-thread-10] INFO com.myapp.Handler - Session opened for ip /x.x.x.x:59558. There are 1 online clients now Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,082 [pool-7-thread-10] DEBUG org.apache.mina.core.filterchain.IoFilterEvent - Event SESSION_OPENED has been fired for session 40 Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,087 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslFilter - Session Server[40](ssl...): Message received : HeapBuffer[pos=0 lim=200 cap=2048: 16 03 03 00 C3 01 00 00 BF 03 03 58 B5 86 A4 02...] Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,087 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) Processing the received message Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,087 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) processing the NEED_UNWRAP state Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,087 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) processing the NEED_TASK state Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,096 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) processing the NEED_WRAP state Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,096 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslFilter - Session Server[40](ssl...): Writing Message : WriteRequest: HeapBuffer[pos=0 lim=1327 cap=2115: 16 03 03 05 2A 02 00 00 4D 03 03 58 B5 86 A4 A6...] Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,096 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslHandler - Session Server[40](ssl...) processing the NEED_UNWRAP state Feb 28 14:18:12 ip-172-31-55-130 docker/56215cf75435[2788]: 2017-02-28 14:18:12,096 [NioProcessor-5] DEBUG org.apache.mina.filter.ssl.SslFilter - Session Server[40](ssl...): Processing the SSL Data {code} My application was recently using apache-mina 2.0.7. I thought upgrading the MINA core to 2.0.16 might help, but it didn't. My another observation is that, this is not happening on my local environment (MacOS) only on the remote Amazon server. Please find below part of the server-side code: {code} @Provides ProtocolCodecFilter providesCodecFilter(ResponseProtoEncoder encoder, RequestProtoDecoder decoder) { return new ProtocolCodecFilter(encoder, decoder); } @Provides KeyStore providesKeyStore() throws NoSuchProviderException, NoSuchAlgorithmException, KeyStoreException, CertificateException, IOException { if(keystoreName == null) return null; KeyStoreFactory f = new KeyStoreFactory(); f.setDataUrl(this.getClass().getClassLoader().getResource(keystoreName)); f.setPassword(keystorePassword); return f.newInstance(); } @Provides SSLContext providesSslContext(KeyStore keyStore) throws Exception { if(keyStore == null) return null; SslContextFactory f = new SslContextFactory(); f.setKeyManagerFactoryAlgorithm(KeyManagerFactory.getDefaultAlgorithm()); f.setTrustManagerFactory(TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())); f.setTrustManagerFactoryKeyStore(keyStore); f.setKeyManagerFactoryKeyStore(keyStore); f.setKeyManagerFactoryKeyStorePassword(keyPassword); return f.newInstance(); } @Provides @Singleton SslFilter providesSslFilter(SSLContext sslContext) { if(sslContext == null) return null; SslFilter sslFilter = new SslFilter(sslContext); if(needClientAuth) sslFilter.setNeedClientAuth(true); return sslFilter; } @Provides IoFilterChainBuilder providesDefaultIoFilterChainBuilder(ProtocolCodecFilter codecFilter, SslFilter sslFilter) { DefaultIoFilterChainBuilder res = new DefaultIoFilterChainBuilder(); Map<String, IoFilter> filters = new LinkedHashMap<String, IoFilter>(); if(sslFilter != null) filters.put("sslFilter", sslFilter); filters.put("codecFilter", codecFilter); filters.put("executorFilter", new ExecutorFilter(new UnorderedThreadPoolExecutor())); res.setFilters(filters); return res; } @Provides @Singleton SocketAcceptor providesSocketAcceptor(InetSocketAddress addr, IoHandler handler, IoFilterChainBuilder filterChainBuilder) throws IOException { SocketAcceptor res = new NioSocketAcceptor(); res.setDefaultLocalAddress(addr); res.setFilterChainBuilder(filterChainBuilder); res.setHandler(handler); res.setReuseAddress(true); res.setCloseOnDeactivation(true); res.bind(); return res; } {code} Any kind of help would be much appreciated! -- This message was sent by Atlassian JIRA (v6.3.15#6346)