[BUG] [CRASH] Squeak3.1a-4164 : Socket code blows up destroying sockets.

Scott A Crosby crosby at qwes.math.cmu.edu
Sat Aug 11 19:35:54 UTC 2001


Hello, I sent a message about a day ago. Since then, I've set up a
multiway chat program. Performance is still problematic, because of the
busywaiting loop; I sent an email about that a couple of days ago.

Anyways, when benchmarking my current code, I got the image to crash (I'm
not sure how that crash occured).

But now, I cannot restart the image without it crashing approximately one
second after starting up:

crosby at dragonlight:~/squeak/squeak.mud-3.1$  /usr/local/packages/squeak-3.1/bin/squeak

Segmentation fault

1090970812 Socket>destroy
1088830728 MuckSocket>waitForData
1088830608 MuckSocket>networkGetSingleLine
1088828996 [] in MuckPlayerConnection>networkReaderLoop
1088828904 BlockContext>on:do:
1088828812 BlockContext>ifError:
1088828720 MuckPlayerConnection>networkReaderLoop
1088828296 [] in MuckPlayerConnection>initialize:
1088828388 [] in BlockContext>newProcess

--

The image starts up, displays a window, and refreshes the GUI display and
runs for about a second, but as soon as it hits the network reader loop,
it goes BOOM and gives the above stacktrace. The emergency-interrupt key
does pop up a debug dialog box in the second that the image runs.

As my last fileout'ed changeset is several hours old, I'd like to recover
my image. I'm running a Squeak3.1a-4164.image for linux on x86, with
updates to 4190 or so. My Squeak3.1a-4164.changes file seems to have my
most recent changes, so I think that my code still exists.

The crash is repeatable. My waitForData waits for data to arrive, and
destroys the socket if something goes wrong. I believe that squeak didn't
zero out some of the socket paramaters, and the C code clobbers them when
attempting to destroy a socket that doesn't exist.

I also have a workspace with some misc code I don't want to lose.

So, how can I recover either my image, or at least recover my classes?

After that, I'll put up more observations and the code; much of this is
working, but deadended code to get me familiar with the behaivor of squeak
on this sort of multiuser server task.

The image is available upon request (5.6mb compressed)

Scott






More information about the Squeak-dev mailing list