Right, the server is not shutting down properly:
[jkijanowski@dev02 testsuite]$ ./build.sh jboss-minimal-tests
Searching for build.xml ...
Buildfile: /home/jkijanowski/JBoss_4_0_4_GA_CP01/testsuite/build.xml
Overriding previous definition of reference to xdoclet.task.classpath
jboss-minimal-tests:
[server:start] Starting server "minimal" with command:
[server:start] /opt/j2sdk1.4.2_09/bin/java -cp
/home/jkijanowski/JBoss_4_0_4_GA_CP01/build/output/jboss-4.0.4.GA_CP01/bin/run.jar:/opt/j2sdk1.4.2_09/lib/tools.jar
org.jboss.Main -c minimal -b localhost
[copy] Copying 1 file to
/home/jkijanowski/JBoss_4_0_4_GA_CP01/build/output/jboss-4.0.4.GA_CP01/server/minimal/deploy
[echo] Minimal server started, stopping
[delete] Deleting:
/home/jkijanowski/JBoss_4_0_4_GA_CP01/build/output/jboss-4.0.4.GA_CP01/server/minimal/deploy/shutdown.sar
BUILD SUCCESSFUL
Total time: 19 seconds
Found server "minimal" still running; stopping it.
Shutting down server: minimal
++++++++++++++++++++++++++++++++++
I can reproduce the log with the "broken pipe" only in qa lab. When I
run the minimal test at home I get a log with
"java.net.SocketException: Software caused connection abort: socket
write error", as described in the first log.
The broken pipe is maybe a firewall issue. But what about "socket
write error"?
Can you reproduce this error?
The write of the stub is still used and is read by the
org.jnp.interfaces.NamingContext code you are showing. I need to see why
this is an issue with the minimal test. When you see a failure, its that
the server is not shutting down or what?
Jaroslaw Kijanowski wrote:
> Hello,
> during the testsuite run, there is always (in head, jboss4,
> jboss 3.2.7) one error during the jboss-minimal-tests:
> This can be found in the server.log:
>
> 2006-10-12 17:58:35,109 DEBUG [org.jboss.naming.NamingService]
> Error writing response to /127.0.0.1
> java.net.SocketException: Software caused connection abort: socket write error
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> at
> java.net.SocketOutputStream.write(SocketOutputStream.java:136)
> at
> java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1676)
>
> For some AS versions, this error prevents the testsuite to continue,
> for some not.
>
> This error occurs in the following section:
> jboss\naming\src\main\org\jnp\server\Main.java
>
> private class BootstrapRequestHandler implements Runnable
> {
> .
> .
> .
> OutputStream os = socket.getOutputStream();
> ObjectOutputStream out = new ObjectOutputStream(os);
> out.writeObject(serverStub); <- this cause the Exception
> out.close();
> .
> .
>
> I can eliminate this, by replacing BOTH lines:
>
> ObjectOutputStream out = new ObjectOutputStream(os);
> out.writeObject(serverStub); <- this cause the Exception
>
> with
> os.write(123);
>
> This makes the test running fine, but it's nonsense. Or does it mean,
> that this part of code isn't needed anymore?
>
> Can anybody tell me, where the written object is received? I couldn't find
> an appropriate code. Only this:
>
> jboss\naming\src\main\org\jnp\interfaces\NamingContext.java
>
> static Naming getServer(String host, int port, Hashtable serverEnv)
> throws NamingException
> {
> .
> .
> .
> // Get stub from naming server
> BufferedInputStream bis = new
> BufferedInputStream(s.getInputStream());
> ObjectInputStream in = new ObjectInputStream(bis);
> MarshalledObject stub = (MarshalledObject) in.readObject();
> server = (Naming) stub.get();
>
> s.close();
> .
> .
> .
>
> But this method is never called during the minimal-tests.
>
> Any ideas?
>
>