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

Using apr-transport crashes jvm on Linux

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-M1
    • Fix Version/s: 2.0.0-M2
    • Component/s: Transport
    • Labels:
      None
    • Environment:

      Description

      To reproduce you can simply run the EchoServer from mina-example and use AprIoAcceptor instead of NioAcceptor. I used the EchoClient from Julien Vermillard's sandbox here: https://svn.apache.org/repos/asf/mina/sandbox/jvermillard/ and used 20 or 30 concurrent connections.

      AprIoProcessor.destroy() is called multiple times when an exception is generated in AbstractPollingIoProcessor (RST, etc.) and either epoll or apr doesn't like to remove a closed fd from the pollset. I believe that destroy is called twice because AprIoProcessor.state() returns SessionState.OPEN when the native fd is > 0. I don't believe once open it will ever be 0 again.

      I was able to fix the problem by explicitly settion AprSession.descriptor to 0 after the socket was closed although I'm not sure this is the correct solution.

        Attachments

          Activity

            People

            • Assignee:
              vrm Julien Vermillard
              Reporter:
              gcadien Geoff Cadien
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: