2 Replies Latest reply on Jun 4, 2004 4:12 AM by gchazalon

    Hotspot

    gchazalon

      Hi,

      I have discovered a weird behavior and now I have a workaround.
      I use Axis 1.1 deployed on JBoss 3.2.3 to build some webservices.
      It happened that one of my webservices caused the JBoss server to simply stop without notice when testing it.
      The only information I could get was the log from my unit test (see the sample below), and nothing useful from the JBoss log (even in DEBUG) since it stops abruptly.

      ----------------------------------------------------------------------------------
      03 juin 2004 16:43:16,800 DEBUG [ArchiveSubmissionTest] - setUp() called...
      03 juin 2004 16:43:16,800 DEBUG [ArchiveSubmissionTest] - filename : D:\repository\Archivage\conf\test\xml\verifiedDoc-example.zip
      03 juin 2004 16:43:17,481 DEBUG [ArchiveSubmissionTest] - default call timeout : null
      03 juin 2004 16:43:17,481 DEBUG [ArchiveSubmissionTest] - timeout now set to : null
      03 juin 2004 16:43:17,481 DEBUG [ArchiveSubmissionTest] - MessageContext timeout : 300000
      03 juin 2004 16:43:25,723 ERROR [ArchiveSubmissionTest] - Exception caught while calling http://localhost:8080/axis/services/DepotDesSoumissionsService
      AxisFault
       faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
       faultSubcode:
       faultString: java.net.SocketException: Connection reset
       faultActor:
       faultNode:
       faultDetail:
       {http://xml.apache.org/axis/}stackTrace: java.net.SocketException: Connection reset
       at java.net.SocketInputStream.read(SocketInputStream.java:168)
       at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
       at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
       at org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:506)
       at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:127)
       at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
       at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
       at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
       at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
       at org.apache.axis.client.Call.invokeEngine(Call.java:2564)
       at org.apache.axis.client.Call.invoke(Call.java:2553)
       at org.apache.axis.client.Call.invoke(Call.java:2248)
       at org.apache.axis.client.Call.invoke(Call.java:2171)
       at org.apache.axis.client.Call.invoke(Call.java:1691)
       at adonis2.adp.archivage.depot.test.ArchiveSubmissionTest.testSubmit(ArchiveSubmissionTest.java:122)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at junit.framework.TestCase.runTest(TestCase.java:154)
       at junit.framework.TestCase.runBare(TestCase.java:127)
       at junit.framework.TestResult$1.protect(TestResult.java:106)
       at junit.framework.TestResult.runProtected(TestResult.java:124)
       at junit.framework.TestResult.run(TestResult.java:109)
       at junit.framework.TestCase.run(TestCase.java:118)
       at junit.framework.TestSuite.runTest(TestSuite.java:208)
       at junit.framework.TestSuite.run(TestSuite.java:203)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:392)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:276)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167)
      
      
      java.net.SocketException: Connection reset
       at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
       at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
       at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
       at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
       at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
       at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
       at org.apache.axis.client.Call.invokeEngine(Call.java:2564)
       at org.apache.axis.client.Call.invoke(Call.java:2553)
       at org.apache.axis.client.Call.invoke(Call.java:2248)
       at org.apache.axis.client.Call.invoke(Call.java:2171)
       at org.apache.axis.client.Call.invoke(Call.java:1691)
       at adonis2.adp.archivage.depot.test.ArchiveSubmissionTest.testSubmit(ArchiveSubmissionTest.java:122)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at junit.framework.TestCase.runTest(TestCase.java:154)
       at junit.framework.TestCase.runBare(TestCase.java:127)
       at junit.framework.TestResult$1.protect(TestResult.java:106)
       at junit.framework.TestResult.runProtected(TestResult.java:124)
       at junit.framework.TestResult.run(TestResult.java:109)
       at junit.framework.TestCase.run(TestCase.java:118)
       at junit.framework.TestSuite.runTest(TestSuite.java:208)
       at junit.framework.TestSuite.run(TestSuite.java:203)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:392)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:276)
       at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167)
      Caused by: java.net.SocketException: Connection reset
       at java.net.SocketInputStream.read(SocketInputStream.java:168)
       at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
       at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
       at org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:506)
       at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:127)
       ... 25 more
      03 juin 2004 16:43:25,753 DEBUG [ArchiveSubmissionTest] - tearDown() called...
      ---------------------------------------------------------------------------------
      


      So I digged the web for information about this weird "SocketException: Connection reset". If I got it well, this tells that the connection has been reset by the server (in fact it "just" crashed), hence the webservice client (the unit test) throw a SocketException. But this didn't explain the cause of this crash...

      Today, I have accidently found that this situation only occurs when my Hotspot JVM launching JBoss is started with the "-server" option !
      If I don't specify any options, it simply runs gently.... how surprising !!!!!

      So here are my questions :
      1) Does anyone have encountered this behavior ? If so, have you reported a bug somewhere ?
      2) If not, where should I report this bug eventually ? JBoss ? Sun ? Apache Axis ?

      Thanks

      Gregory

        • 1. Re: Hotspot
          starksm64

          Nearly all crashes of the Sun vms are related to HotSpot bugs. Introducing native code opens up the possibility of bugs crashing the process. The vm crashing is always a vm bug. There is nothing any java code can do short of loading native code that can crash the vm. There are numerous bug reports on HotSpot crashes, see the java.sun.com database. File another one with Sun.

          • 2. Re: Hotspot
            gchazalon

            Thanks Scott,

            I have just filed a new bug report at Sun's website.
            I hope they will do something, but for now the workaround is
            not to use the crappy "-server" Hotspot VM option.

            Regards,

            Gregory