Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-1040

Mina 2.0.4 truncated the PDU

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Incomplete
    • 2.0.4
    • None
    • Filter

    Description

      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;

      Attachments

        1. apache-mina-2.0.13.zip
          6.56 MB
          Silver Cheng
        2. Mina-2.0.13-code delta.docx
          475 kB
          Silver Cheng
        3. mina-debug-logging.zip
          462 kB
          Silver Cheng
        4. mina log and tcpdump.zip
          2.01 MB
          Silver Cheng
        5. ms-mc1.zip
          682 kB
          Silver Cheng
        6. tcpdump-10001.zip
          954 kB
          Silver Cheng

        Activity

          People

            Unassigned Unassigned
            SilverCheng Silver Cheng
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: