[Webfunds-users] macos jvm bug

Ian Grigg iang@systemics.com
Tue Nov 16 08:39:01 1999


More info on Jim's "look I broke it" bug.  It looks like an
internal JVM error.  Where did the JVM come from, and who there
supports it?

If this happens again, hit this link on your browser immediately
if not sooner, where the number 8087 is replaced by the number of
the port as listed immediately above the exception:

http://hayek.ai:8087/ricardo/sheet?contract=SHA:9c7c9e7bb564224977aea8674623a37407b8f6ee

This connects to the same port and does something sensible.  When
you see something sensible, try the WebFunds action again, and
hopefully we can then confirm that the problem is in or about the
JVM on the MacOS platform!  (numbers will be 9010 9011 9012 8087 ...)

iang

The exception was:

  Opening Socket to: hayek.ai : 9011

  java.io.IOException: OpenTransport error -3155; connect failed1
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java)
        at java.net.Socket.<init>(Socket.java)
        at java.net.Socket.<init>(Socket.java)
        ...

The error appears to be this:

kOTOutStateErr         -3155     The endpoint was not in an
                                 appropriate state when you called
                                 this function.

This may also be related:

                                 You specified an invalid sequence
                                 number or a NULL pointer for the
                                 call parameter when rejecting a
                                 connection request.

This looks like an internal JVM error.  The endpoint is the MacOs
internal "socket" implementation, and the JVM should never reveal
things like this.

The _Networking With OpenTransport_ book is at:

<http://developer.apple.com/techpubs/mac/NetworkingOT/NetworkingWOT-2.html>

Appendix B has the error codes.


The code is:

public byte[] requestViaSocket(byte[] request)
        throws SOXAgentReplyException, SOXAgentURLException
    {

        String host = url.getHost();
        int    port = url.getPort();
        if (port == -1)
            port = 80;

        logmsg("Opening Socket to: " + host + " : " + port);
        Socket sock;
        try {
            sock = new Socket(host, port);
...