Mantis - Squeak
Viewing Issue Advanced Details
6739 Squeak 64 bit crash always 10-25-07 05:55 04-18-10 22:06
closed 3.9  
none 3.9  
0006739: Problems with images under 64-bit
Ok after getting bashed (rightly) for wasting your time.
My system is an AMD 64 dual core runder under Debian unstable

I downloaded the sources from the squeak subversion tree.
According to svn the sources are at revision 1779
I followed the instructions in
I build squeak as describe in Part 1
After installing found the following below /usr/local/lib/squeak
ls -R 3.9-12
B3DAcceleratorPlugin* Squeak3D* vm-display-null*
core UnixOSProcessPlugin* vm-display-X11** UUIDPlugin* vm-sound-null*
PseudoTTYPlugin* VideoForLinuxPlugin* XDisplayControlPlugin*
squeak* vm-display-fbdev*

I then downloaded the image named Squeak3.9-final-7067.image
I can start squeak with that image
 ./3.9-12/squeak Squeak3.9-final-7067.image

I then open the Squeak Map Package Loader. I now wanted to install any package but that results in the following crash.
./3.9-12/squeak Squeak3.9-final-7067.image

Segmentation fault

22640104 [] in >addressForName:timeout:
22640196 [] in Semaphore>critical:
22639828 BlockContext>ensure:
22639736 Semaphore>critical:
22638968 >addressForName:timeout:
22636240 >httpGetDocument:args:accept:request:
22618100 HttpUrl>retrieveContentsArgs:accept:
22618008 HttpUrl>retrieveContentsArgs:
22617916 HttpUrl>retrieveContents
22617564 [] in SMFileCache>getStream:
22617288 BlockContext>on:do:
22617196 SMFileCache>getStream:
22617380 [] in SMFileCache>download:
22617104 BlockContext>ensure:
22616708 [] in SMFileCache>download:
22616616 BlockContext>on:do:
22616524 SMFileCache>download:
22616064 SMFileCache>add:
22615944 SMPackageRelease>ensureInCache
22615852 SMSimpleInstaller>cache
22615760 SMSARInstaller>install
22615508 [] in SMLoader>installPackageRelease:
22615232 BlockContext>ensure:
22615140 Cursor>showWhile:
22615324 [] in SMLoader>installPackageRelease:
22615048 BlockContext>on:do:
22606300 SMLoader>installPackageRelease:
22600588 SMLoader>installPackageRelease
22600496 SMLoader>perform:orSendTo:
22600404 [] in MenuItemMorph>invokeWithEvent:
22600312 BlockContext>ensure:
22600220 Cursor>showWhile:
22600128 MenuItemMorph>invokeWithEvent:
22600036 MenuItemMorph>mouseUp:
22599944 MenuItemMorph>handleMouseUp:
22599852 MouseButtonEvent>sentTo:
22599760 Morph>handleEvent:
22599628 MorphicEventDispatcher>dispatchDefault:with:
22599536 MorphicEventDispatcher>dispatchEvent:with:
22599444 Morph>processEvent:using:
22599352 MorphicEventDispatcher>dispatchDefault:with:
22599244 MorphicEventDispatcher>dispatchEvent:with:
22599112 Morph>processEvent:using:
22599020 Morph>processEvent:
22598928 MenuMorph>handleFocusEvent:
22598652 [] in HandMorph>sendFocusEvent:to:clear:
22598744 [] in PasteUpMorph>becomeActiveDuring:
22598560 BlockContext>on:do:
22598468 PasteUpMorph>becomeActiveDuring:
22598284 HandMorph>sendFocusEvent:to:clear:
22598192 HandMorph>sendEvent:focus:clear:
22598100 HandMorph>sendMouseEvent:
22597956 HandMorph>handleEvent:
22597700 HandMorph>processEvents
22597792 [] in WorldState>doOneCycleNowFor:
22597608 SequenceableCollection>do:
22597516 WorldState>handsDo:
22597424 WorldState>doOneCycleNowFor:
22597332 WorldState>doOneCycleFor:
22597240 PasteUpMorph>doOneCycle
16545212 [] in >spawnNewProcess
16545304 [] in BlockContext>newProcess
zsh: abort (core dumped) ./3.9-12/squeak Squeak3.9-final-7067.image

If I use this image with a 32-bit engine this does not happen.

Someone suggested I should try another image and so I downloaded:
Again I can start squeak with that image but it results in the same crash:
.././3.9-12/squeak sq3.9-7067dev07.10.1.image

Segmentation fault

23957736 [] in >addressForName:timeout:
23957828 [] in Semaphore>critical:
23957460 BlockContext>ensure:
23957368 Semaphore>critical:
23956600 >addressForName:timeout:
23953752 >httpGetDocument:args:accept:request:
23886192 HttpUrl>retrieveContentsArgs:accept:
23885996 HttpUrl>retrieveContentsArgs:
23885904 HttpUrl>retrieveContents
23866568 [] in SMFileCache>getStream:
23866108 BlockContext>on:do:
23866016 SMFileCache>getStream:
23866384 [] in SMFileCache>download:
23865924 BlockContext>ensure:
23865492 [] in SMFileCache>download:
23865400 BlockContext>on:do:
23865308 SMFileCache>download:
23865216 SMFileCache>add:
23865096 SMPackageRelease>ensureInCache
23865004 SMSimpleInstaller>cache
23864912 SMSARInstaller>install
23864660 [] in SMLoader>installPackageRelease:
23864384 BlockContext>ensure:
23864292 Cursor>showWhile:
23864476 [] in SMLoader>installPackageRelease:
23864200 BlockContext>on:do:
23863232 SMLoader>installPackageRelease:
23857828 SMLoader>installPackageRelease
23857736 SMLoader>perform:orSendTo:
23857644 [] in MenuItemMorph>invokeWithEvent:
23857552 BlockContext>ensure:
23857460 Cursor>showWhile:
23857368 MenuItemMorph>invokeWithEvent:
23857276 MenuItemMorph>mouseUp:
23857184 MenuItemMorph>handleMouseUp:
23857092 MouseButtonEvent>sentTo:
23857000 Morph>handleEvent:
23856868 MorphicEventDispatcher>dispatchDefault:with:
23856776 MorphicEventDispatcher>dispatchEvent:with:
23856684 Morph>processEvent:using:
23856592 MorphicEventDispatcher>dispatchDefault:with:
23856484 MorphicEventDispatcher>dispatchEvent:with:
23856352 Morph>processEvent:using:
23856260 Morph>processEvent:
23856168 MenuMorph>handleFocusEvent:
23855892 [] in HandMorph>sendFocusEvent:to:clear:
23855984 [] in PasteUpMorph>becomeActiveDuring:
23855800 BlockContext>on:do:
23855708 PasteUpMorph>becomeActiveDuring:
23855524 HandMorph>sendFocusEvent:to:clear:
23855432 HandMorph>sendEvent:focus:clear:
23855340 HandMorph>sendMouseEvent:
23855196 HandMorph>handleEvent:
23854940 HandMorph>processEvents
23855032 [] in WorldState>doOneCycleNowFor:
23854848 SequenceableCollection>do:
23854756 WorldState>handsDo:
23854664 WorldState>doOneCycleNowFor:
23854572 WorldState>doOneCycleFor:
23854480 PasteUpMorph>doOneCycle
14615468 [] in >spawnNewProcess
14615652 [] in BlockContext>newProcess
zsh: abort (core dumped) .././3.9-12/squeak sq3.9-7067dev07.10.1.image

I conceil my bug report was misleading, but I insist that there is a problem with the 64-bit Virtual Machine.


duplicate of 0005688closed tim VM crash due to SmartSyntaxPluginCodeGenerator>>generateCPtrAsOop:indent: 
has duplicate 0006632closed wiz squeak runs into an endless loop? 

10-28-07 02:03   
Hi again Friedrich,

This is a much meatier report. And your persistence is admirable.

So now for the curiosity.

>I now wanted to install any package but that results in the following crash.

Its perfectly fine to believe installing any package will cause the crash. But when reporting why not say which one you tried to load? Think like the guy reading the report who might have to do something with it. E.G. verify the problem.

I don't have a 64-bit squeak system so if the problem is with the vm I would not be able to get that far in testing anyway.

But if you go to view issues and search for squeak map (or just map) you will probably find a lot of bug reports about sm not working as expected. And that would be my first suspicion here. Especially as both images failed in the same way with the problem.

The other thing that might be important is that Andreas Raab found several semaphore fixes after 7067 came out. I doubt they are relevant to your problem but maybe they are.

You might try getting a 3.10 image from [^]
or try something more recent that 7158. When it is produced and put up.
Be aware that these are beta images.

and see if that changes things?

Do things other than loading from squeak map work in the images?

Now that you have replanted the seed of this issue on mantis I encourage you to track down all you can to pinpoint the problem. Maybe along the way you will find out enough to actually solve it too.


Cheers -Jer
10-28-07 14:06   
Ok, here we go. Opening the Squeak3.9-final-7067.image
trying to load different packages:

trying to load 15-puzzle
 ./3.9-12/squeak Squeak3.9-final-7067.image

Segmentation fault

22686104 [] in >addressForName:timeout:
22686196 [] in Semaphore>critical:
22685828 BlockContext>ensure:

trying to load Array2D
./3.9-12/squeak Squeak3.9-final-7067.image

Segmentation fault

25547492 [] in >addressForName:timeout:
25547584 [] in Semaphore>critical:
25547216 BlockContext>ensure:
25547124 Semaphore>critical:

./3.9-12/squeak Squeak3.9-final-7067.image

Segmentation fault

22697884 [] in >addressForName:timeout:
22697976 [] in Semaphore>critical:
22697608 BlockContext>ensure:

trying to load SVI: core dump
`./3.9-12/squeak Squeak3.9-final-7067.image'.
Program terminated with signal 11, Segmentation fault.
#0 0x00002b3d08aee73d in ?? () from /lib64/
(gdb) bt
#0 0x00002b3d08aee73d in ?? () from /lib64/
#1 0x00002b3d08aeebef in ?? () from /lib64/
0000002 0x00002b3d08af2864 in ?? () from /lib64/
0000003 0x00002b3d08af8a52 in ?? () from /lib64/
0000004 0x00000000004179fe in sigsegv (ignore=<value optimized out>)
    at /usr/local/src/Smalltalk/squeak-svn/platforms/unix/vm/sqUnixMain.c:650
0000005 <signal handler called>
0000006 0x00002b3d0961fb46 in memcpy () from /lib/
0000007 0x00000000004aabdf in sqResolverStartNameLookup (
    hostName=0x2b3d0c4a7ab0 "", nameSize=<value optimized out>)
    at /usr/local/src/Smalltalk/squeak-svn/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c:1441
0000008 0x00000000004a62a7 in primitiveResolverStartNameLookup ()
    at /usr/local/src/Smalltalk/squeak-svn/platforms/unix/src/vm/intplugins/SocketPlugin/SocketPlugin.c:629
0000009 0x0000000000419ee6 in dispatchFunctionPointer (aFunctionPointer=0x7a4fa4)
    at /usr/local/src/Smalltalk/squeak-svn/platforms/unix/src/vm/interp.c:3868

And I could go on. If you let me know in which packages you might be interested, then I will try to load those.

10-29-07 23:43   
Could there be a hint in the thread "[Vm-dev] can't get amd64 squeak install working" ( [^]
10-30-07 12:00   
I'll try the patch as soon as I can. But am currently quite busy...

Thanks however for the hint.

11-06-07 07:51   
Ok, the tips from TauGamma seems to be the "right" ones. It seems that a few fo the pages have been applied but not the following:
--- Squeak-3.9-9/platforms/unix/src/vm/intplugins/SocketPlugin/SocketPlugin.c_orig 2007-05-29 13:35:16.000000000 +0200
+++ Squeak-3.9-9/platforms/unix/src/vm/intplugins/SocketPlugin/SocketPlugin.c 2007-05-29 13:36:45.000000000 +0200
@@ -178,7 +178,7 @@
 static sqInt netAddressToInt(unsigned char * ptrToByteArray) {
     sqInt sz;
- sz = interpreterProxy->byteSizeOf(((sqInt)(long)(ptrToByteArray) - 4));
+ sz = interpreterProxy->byteSizeOf(((usqInt)(long)((char *)ptrToByteArray - sqMemoryBase ) - 4));
     if (!(sz == 4)) {
         return interpreterProxy->primitiveFail();
@@ -315,7 +315,7 @@
         return null;
     if (!(interpreterProxy->failed())) {
- sz = interpreterProxy->byteSizeOf(((sqInt)(long)(name)p - 4));
+ sz = interpreterProxy->byteSizeOf(((usqInt)(long)((char *)name - sqMemoryBase ) - 4));
         sqResolverStartNameLookup(name, sz);
     if (interpreterProxy->failed()) {

This were the needed patches for the subversion-svn tree to enable connecting to Squeak Map. If someone from the allowed submitters reads this, I would ask him to check the patch and apply them to the actual sources in the subversion tree.

11-06-07 22:48   
Hi Friedrich,

I'm glad you've got what you needed.

It would probalbly help if you summarized what action needs to be taken in to something so simple even I could understand.

Reading the last note I get the impression that all the info is there but I couldn't make head nor tail of what action you are recommending. (The level of detail is so great it seems off putting.)

Please be as simple and as clear as you can. It will help.

Next we need to find who cares about these things an let them know.
A post to the squeak-dev list noting this report would probably help.

Since this is your report I leave that step to you as well.

Cheers, --Jer
11-07-07 07:12   
Tau Gamma has posted a link to a patch and I've gone through the sources to check wether this patches were applied. The first part was applied but not the one latter ones. I just resend the patch which is needed. So you have to read it like this:
Open the file SocketPlugin.c
then search for the two places near or around line 178, 357.

It's not the exact place in the subversion sources but around this lines you find the mentioned code parts.

then you have to apply the modifications
a - in front of the line means remove the line
a + in front means that ths lines has to be added

So around line 178 you have to:
1) find this line
- sz = interpreterProxy->byteSizeOf(((sqInt)(long)(ptrToByteArray) - 4));
2) remove it
3 insert the contents of the following line
+ sz = interpreterProxy->byteSizeOf(((usqInt)(long)((char *)ptrToByteArray - sqMemoryBase ) - 4));

similar actions have to be taken around the line 358 also.

I can not see what's unclear about that. It's normal patch file which unfortunatly does not fit to the actual sources.

11-07-07 23:23   
Hi Friedrich,

Thanks for your clarification and your patience with my questions.

Looking back I can see that it was contained in your report.

Your problem with me is I am not a VM maintainer or unix hacker. At least my skills are not recent. So I didn't recognize the patch format at first.

The next thing is to get ahold of someone who maintains the 64 bit versions of the VM.

 I would suggest emailing the vm list or the squeakdev list. Then point to this report.

Again thanks for you work and followthru.

Cheers, -Jer