Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-8153 Upgrade HornetQ for EAP 5.2.0
  3. JBPAPP-8366

CLONE : HornetQ leaks socket connections over long period of time eventually leading - to java.net.SocketException: Too many open files - exception

    XMLWordPrintable

Details

    • Sub-task
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Obsolete
    • EAP_EWP 5.1.2
    • TBD EAP 5
    • HornetQ
    • JBoss EAP 5.1.2 & HornetQ 2.2.10

    • Documentation (Ref Guide, User Guide, etc.), Release Notes
    • Hide
      A serious issue was found in which socket connections opened at the request of HornetQ were not being closed, which could eventually lead to an error <computeroutput>SocketException: Too many files open</computeroutput> error. The cause of the leak has been fixed so the usage of sockets is now normal.
      Show
      A serious issue was found in which socket connections opened at the request of HornetQ were not being closed, which could eventually lead to an error <computeroutput>SocketException: Too many files open</computeroutput> error. The cause of the leak has been fixed so the usage of sockets is now normal.
    • Documented as Resolved Issue
    • NEW

    Description

      There appears to be a socket connection leak in hornetq. Over long period of time the number of opened sockets is growing and is never coming down. Taking a thread dump it is possible to see a large number of following threads:

      "Old I/O server worker (parentId: 59149030, [id: 0x03868ae6, raggz/192.168.1.110:5445])" prio=10 tid=0x0000000000cd7800 nid=0x3925 runnable [0x00007f325c3bb000]
      java.lang.Thread.State: RUNNABLE
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:146)
      at java.net.SocketInputStream.read(SocketInputStream.java:199)

      To reproduce the issue one needs two JBoss EAP 5.1.2 instances with HornetQ 2.2.10. One instance hosts JMS destinations the other instance is configured as a remote jms provider and consumes messages from the first instances. On second instance deploy a number of MDBs that listen on remote destinations in instance one and then on receiving a messages send a message back to a remote destination on instance one.

      Run the application for about 6-12 hours checking the number of open sockets on the first instance i.e. "lsof -p <pid> | grep TCP | wc -l". The number will steadily grow, it never goes down.

      Attachments

        Activity

          People

            csuconic@redhat.com Clebert Suconic
            rhn-support-tywickra Tyronne Wickramarathne
            Russell Dickenson Russell Dickenson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: