can't load updates

John M McIntosh johnmci at smalltalkconsulting.com
Fri Apr 30 23:24:17 UTC 2004


Ok, so a bit of explanation why this is a problem in 3.5.x and 3.6.x,  
fixed in 3.7.x

The issue is that in  3.5.1b2 we migrated to the Unix network code. Now  
part of this problem arises because the VM must
call a routine aioPoll() to check for pending socket interrupts.  
Previous Carbon Mac VM 3.5.0x and earlier used Open Transport which got  
callbacks at interrupt time giving good responsiveness to socket accept  
processing.

The call to aioPoll in the carbon VM is done on idle processing as one  
example, which is where the issue was.

In merging the code I wrote it to make that call, then nano-sleep the  
interpreter pthread using pthread sleep logic to reduce CPU usage.
  Problem is that this and how the timer checks would interact would  
perhaps stall the VM from servicing any pending socket interrupts, if
things were idle. The issue of course is everything goes to sleep for  
16 ms or so as the updates in the background are stalled, and morphic  
in the foreground is idle awaiting data incoming on the socket.

This was first reported to me as poor socket accept turnaround.

In 3.7.x I changed the routine to use the aioPoll() logic which  
nano-sleeps using select for micro/nano seconds, and then gets woken up  
when a socket interrupt occurs, so as you see the servicing happens  
much faster.  This consumes a bit more CPU time, but fixes the issue.


On Apr 30, 2004, at 2:33 PM, Richard Staehli wrote:

> Looking through the archives, I found Doug Way's email that pointed to  
> a more recent VM for the Mac as the solution to the problem:
> 	http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-March/ 
> 076388.html
>
> So I downloaded the "3.7.2Beta1 OS X VM" from John McIntosh's file  
> sharing page:
> 	http://homepage.mac.com/WebObjects/FileSharing.woa/wa/default? 
> user=johnmci&templatefn=FileSharing.html&xmlfn=TKDocument.1.xml&sitefn= 
> RootSite.xml&aff=consumer&cty=US&lang=en
> and all seems to work fine again.
>
> Since it seems likely that all Mac OS X users will hit the same  
> problem with the VM provided in the current download, I'd suggest that  
> the current download package be upgraded right away.  Of course, I  
> don't know what other problems may lurk in the 3.7.xBeta VM.
>
> Thanks to John M. and Doug W. for solving my problem.
>
> Richard
>
> On Friday, April 30, 2004, at 01:19 PM, Richard Staehli wrote:
>
>> Additional info: I can run the 3.7a-5566 image and connect to both  
>> the update servers and squeakMap servers, but the update process  
>> stops before update 5786 and says it can't load the last ~82 updates.
>>
>> On Friday, April 30, 2004, at 01:16 PM, Richard Staehli wrote:
>>
>>> No luck.  That is the out of box preference.  I get the same result  
>>> with either server option.  Also, opening the package browser  
>>> complains it cannot contact any SqueakMap server.
>>>
>>> This is on a PowerBook G4 running  
>>> /Users/rstaehli/Squeak3.6-MacOS-Full/Squeak  
>>> 3.6.1Beta5.app/Contents/MacOS/Squeak VM Opt -psn_0_9961473
>>>
>>> On Friday 30 April 2004 Ned Konz wrote:
>>>
>>>> On Friday 30 April 2004 9:24 am, Richard Staehli wrote:
>>>> > I am trying to upgrade to 3.7a, but am having no end of problems.  
>>>>  To >start, I have downloaded Squeak3.7a-5816.image and run it.   
>>>> When I >click "load code updates" from the Squeak flap: >>1) Typing  
>>>> Cmd-. is ignored. That's fixed in the updates <g>.
>>>>
>>>> > 2) Eventually it reports that "all code update servers seem to be  
>>>> >unavailable". Try turning on the 'promptForUpdateServer'  
>>>> Preference, then
>>>> using the World menu/help/update code from server
>>>> and choosing one then the other servers.
>>>>
>>>> -- 
>>>> Ned Konz
>
>
>
>
--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list