Cog bugs (was Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak 4.1))

Tom Rushworth tom_rushworth at mac.com
Thu Jul 15 04:29:36 UTC 2010


I haven't tried Cog on linux, but from many years of porting SW to  
various Unix flavours, the "weird double slash" _might_ be some config  
variable ending up as the empty string.  The unix kernel  file name to  
inode lookup routine used to explicitly allow a "//" as a "/", and it  
might still, so if the config var is supposed to be the empty string  
it might still work :). If it isn't supposed to be the empty string,  
I'd look at the directory in the prefix before the "//" (/usr/local/ 
lib/squeak/3.9-7/) and see what directories were there.  Each  
directory (or path) is a candidate for the value of the config var.  
and if the suffix exists in one or more of them, you know what the  
missing config var's value should have been :).

On 2010-Jul-14, at 19:15, Casey Ransberger wrote:

> Levente,
>
> I suspected the same. I was running an older Ubuntu release. I  
> thought maybe I had cruft left over from my old VM, (or from a  
> couple of Cog builds that failed because I was missing  
> dependencies,) and maybe that was causing my problem. So I paved the  
> disk, installed 10.4, and built Cog w/o ever installing another VM.  
> Same symptom, with the weird double slash in the error message.
>
> On Jul 14, 2010, at 6:53 PM, Levente Uzonyi <leves at elte.hu> wrote:
>
>> On Wed, 14 Jul 2010, Casey Ransberger wrote:
>>
>>> Changing subject for sanity.
>>>
>>> Is there a place to file bugs against the open source version of  
>>> Cog? (*nudge*) It might improve signal:noise in any event.
>>>
>>> I realize that OSCog is the community's responsibility! But if  
>>> we're going to be responsible about shepherding it, we may as well  
>>> add a category to Mantis (or something.) What do folks think about  
>>> that?
>>>
>>> FWIW, I had the same symptom running Ubuntu 10.4; Eliot was kind  
>>> enough to suggest some things I might explore with the debugger,  
>>> but I haven't had time to drill down into it (just took a new job,  
>>> ramping up on a pile of software and relational tomfoolery.)
>>>
>>> It seems like it's a distro-issue. I'm curious, and I understand  
>>> that it might not be apropos to disclose, but on the off chance it  
>>> is, what GNU/Linux distro has Cog seen the most testing on?
>>
>> That's really strange, because I succesfully built Cog on Ubuntu  
>> 10.4 and it works fine. Today I even managed to compile the plugin  
>> for FFI and Alien (thought none of them works :)) and the  
>> UUIDPlugin. I also fixed the cryptography plugins, those work well  
>> (at least the tests pass).
>> Back to your problem: after compiling I only have vm-display-X11,  
>> but no vm-display-X11.so. Are you sure you're not mixing the files/ 
>> VMMaker of the CogVM and the SqueakVM?
>>
>>
>> Levente
>>
>>>
>>> This thread seems to have wandered a bit, but I'll read the whole  
>>> thing and then forward his suggestions if they still seem  
>>> promising and haven't been reproduced here.
>>>
>>> On Jul 14, 2010, at 1:55 PM, Eliot Miranda  
>>> <eliot.miranda at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Wed, Jul 14, 2010 at 11:23 AM, Chris Muller  
>>>> <asqueaker at gmail.com> wrote:
>>>> Hi Eliot, if you replied to my original post under a different
>>>> subject, I must have missed it:
>>>>
>>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-June/151522.html
>>>>
>>>> I do not have adequate C or C++ experience to even run the  
>>>> debugger.
>>>> I really just want to _get_ a Cog VM so I can be more productive in
>>>> getting my work done so I can then work on things like learning new
>>>> langauges and tools...   :)
>>>>
>>>> If you can compile the VM you can surely learn to use gdb.  Its  
>>>> only a debugger.  break foo. step. etc. etc.  It would really  
>>>> help (yourself and others) if you'd take this next step.  You  
>>>> might be the only one trying too build and run on your particular  
>>>> distro.  So you might be the only one who can diagnose the  
>>>> problem.  Look on it as a learning experience.
>>>>
>>>> BTW, I have work to do also.  I don't get paid to provide the  
>>>> open-source Cog.  I get paid to keep Teleplace working.  You're  
>>>> potentially going to benefit a lot by using a faster VM.  You  
>>>> might view putting in a little time now as payback.  It'd be  
>>>> appreciated.
>>>>
>>>> best
>>>> Eliot
>>>>
>>>>
>>>> I had hoped, given that the problem seems to be exposed (the
>>>> double-slash) that the cause and solution would be obvious to
>>>> someone..
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Jul 14, 2010 at 12:58 PM, Eliot Miranda <eliot.miranda at gmail.com 
>>>> > wrote:
>>>>>
>>>>>
>>>>> On Wed, Jul 14, 2010 at 10:22 AM, Chris Muller <asqueaker at gmail.com 
>>>>> > wrote:
>>>>>>
>>>>>> I followed these instructions to the letter, and get the same  
>>>>>> result I
>>>>>> got a few weeks ago.  I posted a question then, but no  
>>>>>> responses.  May
>>>>>> I try again?
>>>>>
>>>>> Chris, I believe I replied suggesting you step though the  
>>>>> dynamic loading
>>>>> code to get more information.
>>>>> I think everything starts from loadModules in
>>>>> platforms/unix/vm/sqUnixMain.c.
>>>>> I suggest you rerun the configure command to eliminate all  
>>>>> optimization
>>>>> (including deleting any -fomit-frame-pointer) and then step from  
>>>>> loadModules
>>>>> and see why you don't get to a functional dlopen call
>>>>> in platforms/unix/vm/sqUnixExternalPrims.c.
>>>>> HTH
>>>>> Eliot
>>>>>
>>>>>>
>>>>>> Everything seems to go just fine throughout these build  
>>>>>> instructions.
>>>>>> For the final step, I put it in /usr/local/lib.
>>>>>>
>>>>>>  make install prefix=/usr/local/lib/squeak
>>>>>>
>>>>>> and I made sure /usr/local/lib/squeak exists before doing the  
>>>>>> make
>>>>>> install.
>>>>>>
>>>>>> The make install appears to work fine, and I am able to see  
>>>>>> squeak
>>>>>> -version:
>>>>>>
>>>>>> $ squeak -version
>>>>>> 3.9-7 #1 Wed Jul 14 12:07:56 CDT 2010 gcc 4.3.3
>>>>>> Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.20]
>>>>>> Linux chrisT60p 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17  
>>>>>> 01:57:59
>>>>>> UTC 2009 i686 GNU/Linux
>>>>>> plugin path: /opt/4dst/thirdparty/squeak/lib/squeak/3.9-7/  
>>>>>> [default:
>>>>>> /opt/4dst/thirdparty/squeak/lib/squeak/3.9-7/]
>>>>>>
>>>>>> However, when I try to launch an image:
>>>>>>
>>>>>> squeak my.image
>>>>>>
>>>>>> The image does not launch and I get the following:
>>>>>>
>>>>>>  could not find display driver vm-display-X11; either:
>>>>>>    - check that /usr/local/lib/squeak/3.9-7//vm-display-X11.so
>>>>>> exists, or
>>>>>>    - use the '-plugins <path>' option to tell me where it is, or
>>>>>>    - remove DISPLAY from your environment.
>>>>>>
>>>>>> notice the double-slash in reference to the plugins location.   
>>>>>> Perhaps
>>>>>> that's the problem, but what's the correct solution?
>>>>>>
>>>>>> Any advice is greatly appreciated..
>>>>>>
>>>>>> - Chris
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 13, 2010 at 4:04 PM, Levente Uzonyi <leves at elte.hu>  
>>>>>> wrote:
>>>>>>> On Tue, 13 Jul 2010, Rob Withers wrote:
>>>>>>>
>>>>>>>> Thanks Levente.  Unfortunately it did not work:
>>>>>>>>
>>>>>>>> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version  
>>>>>>>> `GLIBC_2.11' not
>>>>>>>> found
>>>>>>>> (required by ./lib/squeak/3.9-7/squeak)
>>>>>>>
>>>>>>> Seems like you have to build it yourself. Fortunately it's  
>>>>>>> very easy,
>>>>>>> since
>>>>>>> Eliot commits the generated sources to the svn repo. So you  
>>>>>>> can build a
>>>>>>> CogVM/StackVM without VMMaker. Here is how:
>>>>>>>
>>>>>>> "How to build the Cog Croquet VM on Unix
>>>>>>> -------------------------------
>>>>>>> 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11  
>>>>>>> & libxt
>>>>>>> source))
>>>>>>> 2. Check out the following sources from svn (if you haven't  
>>>>>>> already - if
>>>>>>> you're
>>>>>>> reading this in unixbuild its likely you've already got the  
>>>>>>> sources)
>>>>>>>   svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
>>>>>>>   svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
>>>>>>>   svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild
>>>>>>> 3. Open a shell, cd into the unixbuild/bld directory and execute
>>>>>>>   ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2
>>>>>>> -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1
>>>>>>> -DCOGMTVM=0"
>>>>>>> LIBS=-lpthread
>>>>>>>   make install prefix=WhereYouWantTheVmToGo
>>>>>>> 4. At the end of it you'll get a new VM in the path provided via
>>>>>>> -prefix"
>>>>>>>
>>>>>>>
>>>>>>> Levente
>>>>>>>
>>>>>>>>
>>>>>>>> Rob
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ________________________________
>>>>>>>> From: Levente Uzonyi <leves at elte.hu>
>>>>>>>> To: The general-purpose Squeak developers list
>>>>>>>> <squeak-dev at lists.squeakfoundation.org>
>>>>>>>> Sent: Tue, July 13, 2010 3:21:43 PM
>>>>>>>> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI  
>>>>>>>> lockup in
>>>>>>>> Squeak
>>>>>>>> 4.1)
>>>>>>>>
>>>>>>>> On Tue, 13 Jul 2010, Rob Withers wrote:
>>>>>>>>
>>>>>>>>> --------------------------------------------------
>>>>>>>>> From: "Levente Uzonyi" <leves at elte.hu>
>>>>>>>>> Sent: Tuesday, July 13, 2010 12:46 PM
>>>>>>>>> To: "The general-purpose Squeak developers list"
>>>>>>>>> <squeak-dev at lists.squeakfoundation.org>
>>>>>>>>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup  
>>>>>>>>> in Squeak
>>>>>>>>> 4.1)
>>>>>>>>>
>>>>>>>>>> On Tue, 13 Jul 2010, Rob Withers wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --------------------------------------------------
>>>>>>>>>>> From: "Andreas Raab" <andreas.raab at gmx.de>
>>>>>>>>>>> Sent: Tuesday, July 13, 2010 11:29 AM
>>>>>>>>>>> To: "The general-purpose Squeak developers list"
>>>>>>>>>>> <squeak-dev at lists.squeakfoundation.org>
>>>>>>>>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1
>>>>>>>>>>>
>>>>>>>>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> The low-space watcher is running, at least before the  
>>>>>>>>>>>>> problem
>>>>>>>>>>>>> starts.
>>>>>>>>>>>>> I
>>>>>>>>>>>>> do eventually run out of memory, but the uninterruptable  
>>>>>>>>>>>>> state
>>>>>>>>>>>>> happens
>>>>>>>>>>>>> before this.
>>>>>>>>>>>>
>>>>>>>>>>>> In which case you want to do the following:
>>>>>>>>>>>> * Launch your app and wait until it's in the "growing  
>>>>>>>>>>>> state"
>>>>>>>>>>>> * Hit F2 and from the VM's preference menu choose "Debug"  
>>>>>>>>>>>> and then
>>>>>>>>>>>> "Print all processes"
>>>>>>>>>>>>
>>>>>>>>>>>> This will dump a list of all the call stacks of all  
>>>>>>>>>>>> processes. One
>>>>>>>>>>>> of
>>>>>>>>>>>> them is the culprit consuming memory and you'll probably  
>>>>>>>>>>>> be able to
>>>>>>>>>>>> tell
>>>>>>>>>>>> quickly from just looking at it (if not, you can email  
>>>>>>>>>>>> the output
>>>>>>>>>>>> here but
>>>>>>>>>>>> it typically takes a domain expert to understand what's  
>>>>>>>>>>>> going
>>>>>>>>>>>> wrong).
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks for this pointer, Andreas.
>>>>>>>>>>>
>>>>>>>>>>> This time it was a Cog VM which spasmed, which I use for  
>>>>>>>>>>> my client
>>>>>>>>>>> (Squeak 4.1 for server for use with linux vm - I have no  
>>>>>>>>>>> ability to
>>>>>>>>>>> compile
>>>>>>>>>>> a linux Cog vm:  would love if someone posted one that  
>>>>>>>>>>> could be
>>>>>>>>>>> launched
>>>>>>>>>>> headless for my webhost).
>>>>>>>>>>
>>>>>>>>>> Cog works, but i think you're trying to use the -headless  
>>>>>>>>>> switch,
>>>>>>>>>> which
>>>>>>>>>> (is deprecated) and tells the vm to use the X11 display,  
>>>>>>>>>> but with no
>>>>>>>>>> window.
>>>>>>>>>> Servers usually don't have X11, so it won't work. You  
>>>>>>>>>> better use
>>>>>>>>>> -vm-display-null (and -vm-sound-null). Try squeak --help  
>>>>>>>>>> for further
>>>>>>>>>> useful
>>>>>>>>>> options (like tuning Cog).
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I am trying to use the -headless switch.  Good to know it is
>>>>>>>>> deprecated.
>>>>>>>>> So you happen to have a Cog for linux binary (version 17 -  
>>>>>>>>> 20), which
>>>>>>>>> I
>>>>>>>>> could use?
>>>>>>>>
>>>>>>>> I have one, but I'm not sure it will work on your server. You  
>>>>>>>> can find
>>>>>>>> it
>>>>>>>> here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's  
>>>>>>>> built on
>>>>>>>> ubuntu
>>>>>>>> 10.04 and is optimized for core2.
>>>>>>>>
>>>>>>>>
>>>>>>>> Levente
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Rob
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Levente
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> It started running at 100% and I did your F2 -> Debug  
>>>>>>>>>>> Options ->
>>>>>>>>>>> Print
>>>>>>>>>>> all processes.  It started dumping a LOT to the Debug  
>>>>>>>>>>> Console, then
>>>>>>>>>>> it
>>>>>>>>>>> froze, still at 100%, but no increase in memory now and it  
>>>>>>>>>>> went (Not
>>>>>>>>>>> Responding) and greyed out the window.
>>>>>>>>>>>
>>>>>>>>>>> Luckily, I was able to see enough of the stack that was  
>>>>>>>>>>> causing
>>>>>>>>>>> problems. It is infinitely looping in this method:
>>>>>>>>>>>
>>>>>>>>>>> LanguageEnvironment class>>#localeID: localeID
>>>>>>>>>>> ^self knownEnvironments at: localeID ifAbsent: [self  
>>>>>>>>>>> localeID:
>>>>>>>>>>> (LocaleID isoLanguage: 'en')]
>>>>>>>>>>>
>>>>>>>>>>> This has nothing to do with my code, except I must be  
>>>>>>>>>>> calling
>>>>>>>>>>> something
>>>>>>>>>>> that enters this loop.  It happens in both Cog (Windows) and
>>>>>>>>>>> Squeak4.1
>>>>>>>>>>> (Linux <headless> and Windows).
>>>>>>>>>>>
>>>>>>>>>>> Not sure how to fix this.
>>>>>>>>>>>
>>>>>>>>>>> Rob
>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> - Andreas
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>

--
Tom Rushworth






More information about the Squeak-dev mailing list