[
https://issues.apache.org/jira/browse/DIRMINA-1145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17391155#comment-17391155
]
Jonathan Valliere commented on DIRMINA-1145:
--------------------------------------------
Update your local copy of bugfix/DIRMINA-1132.
https://gitbox.apache.org/repos/asf?p=mina.git;a=commit;h=f3691724a48a11cd46395e5478f4e35c1afe78e9
I had to add a null check for the cipher suits and protocols. Other than that
it connects and the message it sent/received.
{noformat}
server
10:09:46.753 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
Adding the SSL Filter sslFilter to the chain
10:09:46.770 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
openend
10:09:46.772 [NioProcessor-3] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor -
Adding event SESSION_OPENED to session 2
Queue : [SESSION_OPENED, ]10:09:46.774 [pool-1-thread-1] DEBUG
o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_OPENED event for
session 2
10:09:46.775 [pool-1-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent -
Event SESSION_OPENED has been fired for session 2
10:09:46.824 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
received HeapBuffer@1779e5b3[pos=0 lim=375 cap=2048: 16 03 03 01 72 01 00 01 6E
03 03 B0 5C 16 95 31]
10:09:46.825 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] receive() - message
HeapBuffer@1779e5b3[pos=0 lim=375 cap=2048: 16 03 03 01 72 01 00 01 6E 03 03 B0
5C 16 95 31]
10:09:46.825 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() - source
HeapBuffer@1779e5b3[pos=0 lim=375 cap=2048: 16 03 03 01 72 01 00 01 6E 03 03 B0
5C 16 95 31]
10:09:46.841 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() -
bytes-consumed 375, bytes-produced 0, status OK, handshake NEED_TASK
10:09:46.842 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() - handshake
needs task, scheduling
10:09:46.843 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] task() - executing
sun.security.ssl.SSLEngineImpl$DelegatedTask@75fc335
10:09:46.947 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] task() - writing handshake
messages
10:09:46.947 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qwrite() - internal
10:09:46.948 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - bytes-consumed
0, bytes-produced 127, status OK, handshake NEED_WRAP
10:09:46.948 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - handshake needs
wrap, fast looping
10:09:46.948 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - bytes-consumed
0, bytes-produced 6, status OK, handshake NEED_WRAP
10:09:46.948 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - handshake needs
wrap, fast looping
10:09:46.963 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - bytes-consumed
0, bytes-produced 2094, status OK, handshake NEED_UNWRAP
10:09:46.963 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - result
HeapBuffer@55b4d784[pos=0 lim=2227 cap=33418: 16 03 03 00 7A 02 00 00 76 03 03
66 64 88 A2 F9]
10:09:46.964 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - handshake needs
unwrap, invoking receive
10:09:46.964 [ssl-exec-0] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] receive() - message
DirectBuffer@55256e63[pos=0 lim=0 cap=0: ]
10:09:46.965 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
ack WriteRequest: HeapBuffer@55b4d784[pos=0 lim=2227 cap=33418: 16 03 03 00 7A
02 00 00 76 03 03 66 64 88 A2 F9]
10:09:47.007 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
received HeapBuffer@13104957[pos=0 lim=6 cap=2048: 14 03 03 00 01 01]
10:09:47.007 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] receive() - message
HeapBuffer@13104957[pos=0 lim=6 cap=2048: 14 03 03 00 01 01]
10:09:47.007 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() - source
HeapBuffer@13104957[pos=0 lim=6 cap=2048: 14 03 03 00 01 01]
10:09:47.007 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() -
bytes-consumed 6, bytes-produced 0, status OK, handshake NEED_UNWRAP
10:09:47.067 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
received HeapBuffer@6f57045d[pos=0 lim=74 cap=1024: 17 03 03 00 45 65 10 4D 94
53 23 D8 F3 09 3A 66]
10:09:47.067 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] receive() - message
HeapBuffer@6f57045d[pos=0 lim=74 cap=1024: 17 03 03 00 45 65 10 4D 94 53 23 D8
F3 09 3A 66]
10:09:47.067 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() - source
HeapBuffer@6f57045d[pos=0 lim=74 cap=1024: 17 03 03 00 45 65 10 4D 94 53 23 D8
F3 09 3A 66]
10:09:47.071 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() -
bytes-consumed 74, bytes-produced 0, status OK, handshake NEED_WRAP
10:09:47.071 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qreceive() - handshake
needs wrap, invoking write
10:09:47.071 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] qwrite() - internal
10:09:47.072 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - bytes-consumed
0, bytes-produced 88, status OK, handshake FINISHED
10:09:47.072 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - result
HeapBuffer@36ec79be[pos=0 lim=88 cap=33418: 17 03 03 00 53 91 81 57 DD B9 E8 45
87 38 57 52]
10:09:47.072 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=false] lwrite() - handshake
finished, flushing queue
10:09:47.073 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=true] flush() - no saved messages
10:09:47.073 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
ack WriteRequest: HeapBuffer@36ec79be[pos=0 lim=88 cap=33418: 17 03 03 00 53 91
81 57 DD B9 E8 45 87 38 57 52]
10:09:47.073 [NioProcessor-3] DEBUG o.apache.mina.filter.ssl2.SSL2Filter -
session (0x00000002: nio socket, server, /127.0.0.1:39916 => /127.0.0.1:8888)
received HeapBuffer@7da68a4d[pos=0 lim=53 cap=1024: 17 03 03 00 30 84 EE 51 EE
CF A2 AC 84 25 38 E4]
10:09:47.074 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=true] receive() - message
HeapBuffer@7da68a4d[pos=0 lim=53 cap=1024: 17 03 03 00 30 84 EE 51 EE CF A2 AC
84 25 38 E4]
10:09:47.074 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=true] qreceive() - source
HeapBuffer@7da68a4d[pos=0 lim=53 cap=1024: 17 03 03 00 30 84 EE 51 EE CF A2 AC
84 25 38 E4]
10:09:47.074 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=true] qreceive() - bytes-consumed
53, bytes-produced 15, status OK, handshake NOT_HANDSHAKING
10:09:47.074 [NioProcessor-3] DEBUG o.a.mina.filter.ssl2.SSL2Handler -
SSL2HandlerG0@1ed4f920[mode=server, connected=true] qreceive() - result
HeapBuffer@28523dce[pos=0 lim=15 cap=16676: 48 65 6C 6C 6F 20 53 65 72 76 65 72
2E 2E 0A]
10:09:47.075 [NioProcessor-3] DEBUG o.a.m.f.codec.ProtocolCodecFilter -
Processing a MESSAGE_RECEIVED for session 2
10:09:47.076 [NioProcessor-3] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor -
Adding event MESSAGE_RECEIVED to session 2
Queue : [MESSAGE_RECEIVED, ]10:09:47.077 [pool-1-thread-1] DEBUG
o.a.m.core.filterchain.IoFilterEvent - Firing a MESSAGE_RECEIVED event for
session 2
Aug 01, 2021 10:09:47 AM MinaServerHandler messageReceived
INFO: Message received in the server..
message is Hello Server..
Aug 01, 2021 10:09:47 AM MinaServerHandler messageReceived
INFO: Message is: Hello Server..
10:09:47.124 [pool-1-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent -
Event MESSAGE_RECEIVED has been fired for session 2
{noformat}
> Mina Server is losing messages
> ------------------------------
>
> Key: DIRMINA-1145
> URL: https://issues.apache.org/jira/browse/DIRMINA-1145
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.4
> Reporter: Guy Itzhaki
> Assignee: Jonathan Valliere
> Priority: Major
> Fix For: 2.2.0
>
> Attachments: DIRMINA-1145.zip, mina-core-2.1.5-SNAPSHOT-ssl2.jar,
> mina_client_server.zip
>
>
> During our tests we found that in some circumstances Mina server loses
> messages.
> From what we understand this happens when client opens connection and then
> sends message(s) and the server is still busy processing the sessionOpened
> event while the message the client sent went through the server’s filterChain.
>
> Attached is a simple client and server that will help you reproduce the
> problem, before you run it please perform the following steps:
> *+Configuration:+*
> # In order to reproduce the problem SSL filter *must* be defined (already
> implemented in the attached example)
> # Update the keystore and truststore files locations in *addSSLFilter()*
> method in *MinaClient* and *MinaServer*
> # Set server break points at:
> # MinaServerHandler#sessionOpened
> # MinaServerHandler#messageReceived
> # org.apache.mina.core.filterchain.IoFilter.NextFilter#messageReceived
> # Set client break points at:
> # MinaClientHandler#sessionOpened
>
> *Since this is a timing problem you need to run a debugger as described
> below:*
> # Start server
> # Start client
> # At the client at *MinaClientHandler#sessionOpened* release the break point
> # Release all break points +except+ server’s
> *MinaServerHandler#sessionOpened*
> # After org.apache.mina.core.filterchain.IoFilter.NextFilter#messageReceived
> completed to process all events, you can release
> *MinaServerHandler#sessionOpened*
>
> +*Expected result:*+
> MinaServerHandler#messageReceived will be invoked with the message sent by
> the client
> *+Actual result:+*
> MinaServerHandler#messageReceived is not invoked.
>
> To use the example, add the following jars to your class path:
> commons-lang3-3.9.jar
> log4j-api-2.13.3.jar
> log4j-core-2.13.3.jar
> log4j-jcl-2.13.3.jar
> mina-core-2.1.4.jar
> slf4j-api-1.7.26.jar
> spring-jcl-5.2.12.RELEASE.jar
>
> The java we use is *AdoptJDK 11.0.8*
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]