Jigsaw on Macintosh

Hi Anselm,

I have spent the better part of last week reading about, tutorialing,
comparing, experimenting, crashing, and generally learning (and loving)
Jigsaw. During this time I have come up with two problems that I have ran
into, running Jigsaw on the macintosh platform. The problems described
below I have reliably reproduced on both 68K and PPC Macintosh. These
machines are running Apple's System 7.5.3 Revision 2 (which is, at this
moment, the latest system software release). These problems occur using
either Netscape Navigator version 2.0.1 or Netscape Navigator Gold 3.0b5
as the client browser.


Problem #1: It appears that Jigsaw manages data files by first creating a
temporary file (with a .tmp extension), then after updating the file
contents, attempts to rename the file to the desired name. The problem is,
at least on macintosh, this fails to occur for some reason. After
exercising Jigsaw, I find various files scattered about, such as
realms.db.tmp, admin.db.tmp and many .jigidx.tmp files. It appears that
Jigsaw could not rename them for some reason (possibly because they are
open?). In any event, this does not appear to be due to a duplicate file
name, as in many cases there was no such file.

For example, when I attempted to add a realm for the first time, as
described in the authentication tutorial, it appeared as though everything
worked just fine. However, when I restarted the server, the realm
disappeared. Upon checking the server, the file 'realms.db.tmp' existed on
the machine, as did admin.db.tmp, but no renaming of these files took
place.

Furthermore, when I physically renamed 'realms.db.tmp' to 'realms.db', lo
and behold everything worked fine, until I attempted to add another new
realm. Once again the 'realms.db.tmp' file was created (containing the
additions I had just made) but this time the 'realms.db' was not destroyed
and 'realms.db.tmp' was never renamed to take it's place.

The above event sequences generate the following errors in trace mode:

[w3c.jigsaw.resources.SimpleResourceStore@./config/auth/admin.db]: unable
to rename ./config/auth/admin.db.tmp to ./config/auth/admin.db
[w3c.jigsaw.resources.SimpleResourceStore@./config/realms.db]: unable to
rename ./config/realms.db.tmp to ./config/realms.db
java.lang.NullPointerException
        at w3c.jigsaw.http.Client.getNextRequest(Client.java)
        at w3c.jigsaw.http.Client.loop(Client.java)
java.lang.NullPointerException

And in the errlog:

<httpd>: [httpd][restart]: inited !<c1;client1>: caught exception
[java.lang.NullPointerException] null<c0;client0>: caught exception
[java.lang.NullPointerException] null<httpd>: [httpd][shutdown]:
completed.


Problem #2: Rarely will Jigsaw ever finish sending a lengthy html page (or
the browser somehow is missing the last block??). For example, the URL:
http://www.macalot.com:9999/User/Tutorials/configuration.html
will rarely finish. It gets to 90-99% and just hangs, as though the browser
is waiting for one more block.

This is the trace output when this occurs:
        (while the 'stopsign' remains enabled in Netscape).

[parsed]http-version=HTTP/1.0
[parsed]method=GET
[parsed]uri=/User/Tutorials/configuration.html
[raw   ]connection=Keep-Alive
[raw   ]referer=http://cc3.ccia.com:9999/
[raw   ]host=cc3.ccia.com:9999
[raw   ]accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
[raw   ]user-agent=Mozilla/2.01 (Macintosh; I; PPC)
[parsed]http-version=HTTP/1.0
[parsed]method=GET
[parsed]uri=/icons/WWW/w3c_48x48.gif
[raw   ]connection=Keep-Alive
[raw   ]referer=http://cc3.ccia.com:9999/User/Tutorials/configuration.html
[raw   ]host=cc3.ccia.com:9999
[raw   ]accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg
[raw   ]user-agent=Mozilla/2.01 (Macintosh; I; PPC)

At this point the document is still incomplete, yet if you continue to
wait, eventually the (persistant) socket in Jigsaw times out and the
following trace output appears:

w3c.jigsaw.http.HTTPParserException: Couldn't parse the request: expecting
(32) got (-1)
context:

Immediately at this output, Netscape puts up a dialog box complaining of a
'broken pipe' error. (It seems here that, Netscape is still expecting to
read content, but Jigsaw felt that all content was sent and acknowledged
and has closed the socket.) In any case the following trace output, follows
the dismissal of the Netscape dialog box:

at w3c.jigsaw.http.HTTPParser.getRequest(HTTPParser.java)
        at w3c.jigsaw.http.Client.getNextRequest(Client.java:261)
        at w3c.jigsaw.http.Client.loop(Client.java:496)
        at w3c.jigsaw.http.Client.runConnection(Client.java:572)
        at w3c.jigsaw.http.Client.run(Client.java:555)
        at java.lang.Thread.run(Thread.java:289)
w3c.jigsaw.http.ClientException: Couldn't parse the request: expecting
(32) got (-1)
context:

        at w3c.jigsaw.http.Client.getNextRequest(Client.java:265)
        at w3c.jigsaw.http.Client.loop(Client.java:496)
        at w3c.jigsaw.http.Client.runConnection(Client.java:572)
        at w3c.jigsaw.http.Client.run(Client.java:555)
        at java.lang.Thread.run(Thread.java:289)



In a previous message, it was suggested that I attempt to disable
persistant sockets, to see if that would indicate any difference in regards
to this problem of premature connection closure. According to this
suggestion, I have attempted to run Jigsaw with Keep-Alive set to false.
The only difference then is, there is no delay before the broken pipe
dialog is presented, as there is when using a persistant socket. That is,
as soon as Jigsaw closes the socket at the end of the document, the dialog
complaining of a broken pipe error is immediately displayed, even though
the document still is incomplete (usually by 50-600 bytes).

If there is anything else I can do to help track down and correct these
problems, please don't hesitate to ask! Any and all suggestions would be
appreciated. sinc, -jeff

Received on Sunday, 7 July 1996 21:36:56 UTC