Silver Cheng created DIRMINA-1040:
-------------------------------------
Summary: Mina 2.0.4 truncated the PDU
Key: DIRMINA-1040
URL: https://issues.apache.org/jira/browse/DIRMINA-1040
Project: MINA
Issue Type: Bug
Components: Filter
Affects Versions: 2.0.4
Environment: Mina 2.0.4 version
pl-1@ECE8000-Z1 ~ # /usr/java/latest/bin/java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Reporter: Silver Cheng
Background:
our app messaging-server is to handle the SMPP protocol messages, and we use
Mina 2.0.4 for the lower TCP transport function.
Problem:
sometime, not often, I found that the PDU could be truncated by Mina from
tcpdump. I added some debug loggers to mina codes, and found that indeed the
PDU truncated is occuring at Mina.
from below logs, you can see in #3, the buf which got from WriteRequest got
truncated the first 16 bytes in Mina. could you know if it's a known issue in
2.0.4?
Debug loggers & Logs:
1. IoHandler:
WriteFuture future = iosession.write(deliverSm);
2016-07-14 01:52:19,865 DEBUG (62451235@WebForward 0.0.0.0:5001-21)
(bbfa6690c88ab98aec4e) com.ipx.cpsmscapis.smpp.NorthSmppIoHandler - Sending
DeliverSM: 00 00 00 be 00 00 00 05 00 00 00 00 00 00 03 02 00 01 01 31 32 30 32
34 36 30 38 39 33 33 00 04 09 37 36 32 32 36 35 00 04 00 00 00 00 00 00 00 00
6f 69 64 3a 32 31 36 30 37 31 34 30 31 30 30 31 32 34 32 32 38 35 38 20 73 75
62 3a 30 30 31 20 64 6c 76 72 64 3a 30 30 31 20 73 75 62 6d 69 74 20 64 61 74
65 3a 31 36 30 37 31 34 30 31 35 32 20 64 6f 6e 65 20 64 61 74 65 3a 31 36 30
37 31 34 30 31 35 32 20 73 74 61 74 3a 44 45 4c 49 56 52 44 20 65 72 72 3a 30
30 30 20 74 65 78 74 3a 04 27 00 01 02 00 1e 00 14 32 31 36 30 37 31 34 30 31
30 30 31 32 34 32 32 38 35 38 00
2. AbstractIoSession:
public WriteFuture write(Object message, SocketAddress remoteAddress) {
if (message == null) {
throw new IllegalArgumentException("message");
}
//added by Silver
if (DEBUG) {
if
(message.getClass().getName().equals("org.smpp.pdu.DeliverSM")) {
LOGGER.debug( "***1 Enter Mina AbstractIoSession write
method Object message: {};",message);
}
}
2016-07-14 01:52:19,866 DEBUG (62451235@WebForward 0.0.0.0:5001-21)
(bbfa6690c88ab98aec4e) org.apache.mina.core.session.AbstractIoSession - ***1
Enter Mina AbstractIoSession write method Object message: 00 00 00 be 00 00 00
05 00 00 00 00 00 00 03 02 00 01 01 31 32 30 32 34 36 30 38 39 33 33 00 04 09
37 36 32 32 36 35 00 04 00 00 00 00 00 00 00 00 6f 69 64 3a 32 31 36 30 37 31
34 30 31 30 30 31 32 34 32 32 38 35 38 20 73 75 62 3a 30 30 31 20 64 6c 76 72
64 3a 30 30 31 20 73 75 62 6d 69 74 20 64 61 74 65 3a 31 36 30 37 31 34 30 31
35 32 20 64 6f 6e 65 20 64 61 74 65 3a 31 36 30 37 31 34 30 31 35 32 20 73 74
61 74 3a 44 45 4c 49 56 52 44 20 65 72 72 3a 30 30 30 20 74 65 78 74 3a 04 27
00 01 02 00 1e 00 14 32 31 36 30 37 31 34 30 31 30 30 31 32 34 32 32 38 35 38
00;
3. AbstractPollingIoProcessor:
private int writeBuffer(S session, WriteRequest req,
boolean hasFragmentation, int maxLength, long currentTime)
throws Exception {
IoBuffer buf = (IoBuffer) req.getMessage();
//add by silver
if (DEBUG) {
LOGGER.debug( "***3 Mina AbstractPollingIoProcessor writeBuffer
session's hasFragmentation: {} ; session: {}; ",
hasFragmentation,session.getCurrentWriteMessage());
LOGGER.debug( "***3 Mina AbstractPollingIoProcessor writeBuffer
session's maxWrittenBytes: {} ; buf: {};", maxLength,buf.getHexDump());
}
2016-07-14 01:52:19,866 DEBUG (NioProcessor-3) ()
org.apache.mina.core.polling.AbstractPollingIoProcessor - ***3 Mina
AbstractPollingIoProcessor writeBuffer session's maxWrittenBytes: 98304 ;
buf: 00 01 01 31 32 30 32 34 36 30 38 39 33 33 00 04 09 37 36 32 32 36 35 00 04
00 00 00 00 00 00 00 00 6F 69 64 3A 32 31 36 30 37 31 34 30 31 30 30 31 32 34
32 32 38 35 38 20 73 75 62 3A 30 30 31 20 64 6C 76 72 64 3A 30 30 31 20 73 75
62 6D 69 74 20 64 61 74 65 3A 31 36 30 37 31 34 30 31 35 32 20 64 6F 6E 65 20
64 61 74 65 3A 31 36 30 37 31 34 30 31 35 32 20 73 74 61 74 3A 44 45 4C 49 56
52 44 20 65 72 72 3A 30 30 30 20 74 65 78 74 3A 04 27 00 01 02 00 1E 00 14 32
31 36 30 37 31 34 30 31 30 30 31 32 34 32 32 38 35 38 00;
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)