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

Casey Ransberger casey.obrien.r at gmail.com
Thu Jul 15 04:21:22 UTC 2010


Debuggers are fun! "Just play it grand." :)

Seriously if I get a handle on my new job fast enough, I'm gonna beat you to
it. Go!

On Wed, Jul 14, 2010 at 8:27 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
>
> On Wed, Jul 14, 2010 at 7:04 PM, Chris Muller <ma.chris.m at gmail.com>wrote:
>
>> Eliot, if I came across as having any expectations of you
>> specifically, then I do apologize.  My intent was to only to solicit
>> help from any willing party with my immediate problem.  It had looked
>> like it might have just a simple or obvious issue, but perhaps not..
>>
>
> That's OK.  I'm just trying to bully you into gdb ;)
>
> best
> Eliot
>
>>
>>
>> On Wed, Jul 14, 2010 at 3: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
>> >> >> >>>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >
>> >
>>
>
>
>
>
>


-- 
Casey Ransberger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100714/8b89a37a/attachment.htm


More information about the Squeak-dev mailing list