MessageServer hanging

Help
2002-10-16
2002-10-18
  • Emmanuel Bourg

    Emmanuel Bourg - 2002-10-16

    Hello, i'm playing with UberMQ and found something weird : I started a MessageServer in an initialization servlet with :

    MessageServer ms = new MessageServer(new String[] {"server.properties"});
    new Thread(ms).start();

    and then tried to connect directly to the port 3999 and check if the server was up and running. On closing the telnet client the java process hung indefinitely at 100% CPU.

    I'm using UberMQ 1.0.1 with Orion 1.5.4 on NT4.

     
    • Emmanuel Bourg

      Emmanuel Bourg - 2002-10-16

      I tried again but outside the application server, using the server.bat script supplied with the distro. Here is the result followed by the thread dump :

      16 oct. 2002 17:53:40 com.ubermq.jms.server.MessageServer main
      INFO: UberMQ 1.0.1 running at pf-form-01035:3999
      16 oct. 2002 17:53:45 com.ubermq.kernel.AcceptThread acceptPendingConnections
      INFO: AcceptThread: Connection from /127.0.0.1

      Full thread dump Java HotSpot(TM) Client VM (1.4.1-b21 mixed mode):

      "DestroyJavaVM" prio=5 tid=0x00761240 nid=0x132 waiting on condition [0..6fad8]

      "Acceptor" prio=5 tid=0x00779410 nid=0x166 runnable [b41f000..b41fd8c]
          at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
          at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:262)
          at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:244)
          at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:127)
          at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:62)
          - locked <03055AF0> (a sun.nio.ch.SelectorImpl$Lock)
          at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:67)
          at com.ubermq.kernel.AcceptThread.run(AcceptThread.java:85)

      "Channel-Based NIO Thread" daemon prio=5 tid=0x00778100 nid=0x159 runnable [b3df000..b3dfd8c]
          at sun.nio.ch.SocketDispatcher.read0(Native Method)
          at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
          at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
          at sun.nio.ch.IOUtil.read(IOUtil.java:195)
          at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
          - locked <030735F8> (a java.lang.Object)
          at com.ubermq.kernel.ConnectionInfo.readFrom(ConnectionInfo.java:70)
          at com.ubermq.kernel.ReadWriteTransformThread.acceptPendingRequests(ReadWriteTransformThread.java:113)
          - locked <03055B00> (a com.ubermq.kernel.ReadWriteTransformThread)
          at com.ubermq.kernel.ReadWriteTransformThread.run(ReadWriteTransformThread.java:52)

      "Signal Dispatcher" daemon prio=10 tid=0x0076B210 nid=0xf3 waiting on condition [0..0]

      "Finalizer" daemon prio=9 tid=0x007674D0 nid=0x137 in Object.wait() [ac8f000..ac8fd8c]
          at java.lang.Object.wait(Native Method)
          - waiting on <03025DD0> (a java.lang.ref.ReferenceQueue$Lock)
          at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
          - locked <03025DD0> (a java.lang.ref.ReferenceQueue$Lock)
          at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
          at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=10 tid=0x007661C0 nid=0x162 in Object.wait() [ac4f000..ac4fd8c]
          at java.lang.Object.wait(Native Method)
          - waiting on <03025E38> (a java.lang.ref.Reference$Lock)
          at java.lang.Object.wait(Object.java:426)
          at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
          - locked <03025E38> (a java.lang.ref.Reference$Lock)

      "VM Thread" prio=5 tid=0x007654A0 nid=0x75 runnable

      "VM Periodic Task Thread" prio=10 tid=0x0076A670 nid=0x157 waiting on condition
      "Suspend Checker Thread" prio=10 tid=0x0076A130 nid=0x150 runnable

       
    • Emmanuel Bourg

      Emmanuel Bourg - 2002-10-17

      New test, i enabled the logging and ran into this exception in loop when the server hang :

      java.lang.IllegalStateException
              at com.ubermq.jms.server.datagram.impl.DatagramFactory.frame(DatagramFactory.java:94)
              at com.ubermq.kernel.AbstractConnectionInfo.processData(AbstractConnectionInfo.java:320)
              at com.ubermq.kernel.ConnectionInfo.readFrom(ConnectionInfo.java:93)
              at com.ubermq.kernel.ReadWriteTransformThread.acceptPendingRequests(ReadWriteTransformThread.java:117)
              at com.ubermq.kernel.ReadWriteTransformThread.run(ReadWriteTransformThread.java:52)       

       
    • Jimmy P

      Jimmy P - 2002-10-17

      thanks for the great information. i fixed this and the new patch 1.0.2 has it in there.

      enjoy and thanks again for the thread dumps and whatnought.

      j

       
      • Emmanuel Bourg

        Emmanuel Bourg - 2002-10-18

        It works great now, many thanks !

         

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks