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
|