glassfish
  1. glassfish
  2. GLASSFISH-15523

Unable to call EJB on remote server after remote server has been restarted, if a call was attempted (and failed) while remote server was inaccessible

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: v3.0.1
    • Fix Version/s: 3.1_b42
    • Component/s: orb
    • Labels:
      None
    • Environment:

      Glassfish 3.0.1, Windows 7, JDK 1.6.0u22

      Description

      If an application deployed on a Glassfish server attempts to access an EJB on a remote server, we get the following error:

      Caused by: java.rmi.MarshalException: CORBA COMM_FAILURE 1398079689 No; nested exception is:
      org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
      at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:270)
      at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:200)
      at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:147)
      at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:225)
      at no.evote.service._MunicipalityService_Remote_DynamicStub.getMunicipalitiesWithStatus(no/evote/service/_MunicipalityService_Remote_DynamicStub.java)
      ... 114 more
      Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3431)
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3452)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:256)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:269)
      at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:125)
      at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:188)
      at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:186)
      at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:181)
      ... 117 more
      Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
      at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:239)
      ... 122 more
      Caused by: java.net.ConnectException: Connection refused: connect
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
      at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
      at java.net.Socket.connect(Socket.java:529)
      at java.net.Socket.connect(Socket.java:478)
      at java.net.Socket.(Socket.java:375)
      at java.net.Socket.(Socket.java:189)
      at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:328)
      ... 123 more

      When the remote server is started again, subsequent attempts to access EJBs on the remote server gives the following error:

      Caused by: java.rmi.MarshalException: CORBA COMM_FAILURE 1398079696 Maybe; nested exception is:
      org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
      at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:270)
      at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:200)
      at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:147)
      at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:225)
      at no.evote.service._ElectionEventService_Remote_DynamicStub.findById(no/evote/service/_ElectionEventService_Remote_DynamicStub.java)
      ... 120 more
      Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:3603)
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:3621)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doOptimizedReadStrategy(SocketOrChannelConnectionImpl.java:1726)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1216)
      at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:492)
      at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528)
      Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 211 completed: No
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.ioexceptionWhenReadingConnection(ORBUtilSystemException.java:3687)
      at com.sun.corba.ee.impl.logging.ORBUtilSystemException.ioexceptionWhenReadingConnection(ORBUtilSystemException.java:3706)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.nonBlockingRead(SocketOrChannelConnectionImpl.java:1938)
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doOptimizedReadStrategy(SocketOrChannelConnectionImpl.java:1651)
      ... 3 more
      Caused by: java.io.IOException: End-of-stream
      at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.nonBlockingRead(SocketOrChannelConnectionImpl.java:1927)
      ... 4 more

      I would expect the call to the remote EJB to work when the server was restarted.

      Note that this only happens when an attempt to use the remote EJB is done while the remote server is inaccessible. If the remote server is restarted without attempting to access the EJBs, everything works as normal.

        Activity

        Hide
        Ken Cavanaugh added a comment -

        Apparently fixed in a later build. Closing at the request of the submitter.
        .

        Show
        Ken Cavanaugh added a comment - Apparently fixed in a later build. Closing at the request of the submitter. .
        Hide
        tcourant added a comment -

        Is it possible to have the patched code ?

        Thank you.

        Show
        tcourant added a comment - Is it possible to have the patched code ? Thank you.
        Hide
        Harshad Vilekar added a comment -

        Reopening to update the fix version.

        Show
        Harshad Vilekar added a comment - Reopening to update the fix version.
        Hide
        Harshad Vilekar added a comment -

        Updated the fix version - since the bug was verified in 3.1_b42.

        Show
        Harshad Vilekar added a comment - Updated the fix version - since the bug was verified in 3.1_b42.
        Hide
        Harshad Vilekar added a comment -

        Was already closed at the request of the submitter.

        Show
        Harshad Vilekar added a comment - Was already closed at the request of the submitter.

          People

          • Assignee:
            Ken Cavanaugh
            Reporter:
            Vetle Leinonen-Roeim
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: