Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0005245 [Squeak] Kernel major random 10-16-06 13:33 10-17-06 12:45
Reporter mikevdg View Status public  
Assigned To mikevdg
Priority normal Resolution fixed  
Status closed   Product Version 3.8
Summary 0005245: Delay class>>primitiveFailed
Description Any help in diagnosing the problem is appreciated.

At random occasions after running my code, I get the above error. The image freezes, consumes 100% CPU and cannot be interupted with ALT-.

The stack trace is in the attached screenshot.

I have seen this error on Linux and Windows in multiple VM versions. Currently I am using:

mikevdg@neb:~/dpon$ ./squeak -version
3.9-7 #1 Tue Jul 4 11:12:22 NZST 2006 gcc 4.0.2
Squeak3.9alpha of 4 July 2005 [latest update: 0007021]
Linux neb 2.6.12-9-386 #1 Mon Oct 10 13:14:36 BST 2005 i686 GNU/Linux
default plugin location: /home/mikevdg/squeak/vmmaker//lib/squeak/3.9-7/*.so
Additional Information
Attached Files  Delay_primfailed.png [^] (80,505 bytes) 10-16-06 13:33
 SqueakDebug.log [^] (3,160 bytes) 10-16-06 13:36

- Relationships
related to 0001840closed ducasse Long Delays and multiple delays with same resumption time 

- Notes
(0007699 - 197 - 197 - 197 - 197 - 197 - 197)
mikevdg
10-16-06 13:49

Reading through the VM source code (and using some guesswork), it appears that I'm not passing an integer to this primitive. Yet the attached SqueakDebug.log shows that I am passing a SmallInteger.
 
(0007701 - 298 - 490 - 490 - 490 - 490 - 490)
tim
10-16-06 19:29

Um, look at the delay value.

Delay class>>primSignal:atMilliseconds:
    Receiver: Delay
    Arguments and temporary variables:
        aSemaphore: a Semaphore()
        aSmallInteger: 3321559286

That's not a SmallInteger. It's not a VM bug, it's a problem with worling out the resumption time properly.
 
(0007702 - 280 - 316 - 316 - 316 - 316 - 316)
mikevdg
10-17-06 02:48

Thanks, Tim! I forgot that SmallIntegers only go up to 2^31 (which is 2147483648) rather than 2^32.

There are now two issues here:
1. Make that number is a SmallInteger.
2. Get Squeak to gracefully handle this case rather than freezing up.

I'll have a crack at it tonight.
 
(0007704 - 156 - 156 - 156 - 264 - 264 - 264)
tim
10-17-06 04:04

See 0001840 and note that the fix was in 3.9-7026. Your crash claims to have been in 39.-7021 - so check the latest version and see if it solves your problem.
 
(0007709 - 914 - 1075 - 1075 - 1075 - 1075 - 1075)
mikevdg
10-17-06 12:39

Ha! I added an assertion to make sure that Delays weren't being made with anything but SmallIntegers. I caught the following:

Delay(Object)>>assert:
Delay>>setDelay:forSemaphore:
Delay class>>timeoutSemaphore:afterMSecs:
Semaphore>>waitTimeoutMSecs:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Socket>>waitForConnectionFor:ifTimedOut:
Socket>>waitForConnectionFor:
[] in VatManager>>loopOnPort: {[[running] whileTrue: [socket := Socket newTCP listenOn: port. socket w...]}
[] in BlockContext>>newProcess {[self value. Processor terminateActive]}

My own code is the culprit:

socket waitForConnectionFor: (Socket standardDeadline).

Here, (Socket standardDeadline) returns a millisecond value. waitForConnectionFor: takes a number of seconds as an argument. Heh.

It would be nice if the Delay class would check its arguments to make sure the primitive doesn't fail.
 
(0007710 - 85 - 85 - 85 - 85 - 85 - 85)
mikevdg
10-17-06 12:45

Appears to be fixed by Tim's changes in bug 1840. Changes already in Squeak 3.9-7026.
 

- Issue History
Date Modified Username Field Change
10-16-06 13:33 mikevdg New Issue
10-16-06 13:33 mikevdg File Added: Delay_primfailed.png
10-16-06 13:34 mikevdg Status new => assigned
10-16-06 13:34 mikevdg Assigned To  => mikevdg
10-16-06 13:36 mikevdg File Added: SqueakDebug.log
10-16-06 13:49 mikevdg Note Added: 0007699
10-16-06 19:29 tim Note Added: 0007701
10-16-06 19:30 tim Category VM => Kernel
10-17-06 02:48 mikevdg Note Added: 0007702
10-17-06 04:02 tim Relationship added related to 0001840
10-17-06 04:04 tim Note Added: 0007704
10-17-06 12:39 mikevdg Note Added: 0007709
10-17-06 12:45 mikevdg Note Added: 0007710
10-17-06 12:45 mikevdg Status assigned => closed
10-17-06 12:45 mikevdg Resolution open => fixed
10-17-06 12:45 mikevdg Fixed in Version  => 3.9


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
71 total queries executed.
48 unique queries executed.
Powered by Mantis Bugtracker