[Vm-dev] Re: [Pharo-dev] pharo 5 segfault (stack size?) [FreeBSD]

Ben Coman btc at openinworld.com
Sun Jun 26 13:44:09 UTC 2016


On Sun, Jun 26, 2016 at 8:37 PM, Petr Fischer <petr.fischer at me.com> wrote:
> Yes there is "PharoVMBuilder buildFreeBSD", but some "cog*" errors occurs... So I am still building with "PharoVMSpur32Builder buildUnix32" under Linux (CentOS6) and then move compiled vm to my FreeBSD box with Linux compatibility layer.
>
> I compiled DEBUG vm version according to your advice and this is gdb output:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x080aefc1 in scavengeReferentsOf (referrer=684415032) at /home/pf/pharo/pharo-vm-debug/src/vm/gcc3x-cointerp.c:39014
> 39014   if (((longAt(referent)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))) == 0) {

The C files are generated from VMMaker and the line numbers change a
lot.  If you look upwards in the C file you should see a generated
comment that links to the Smalltalk source it was generated from.

>
> I need to learn a little, how to play this "core C" game in gdb...
> What next?

I recently learnt a bit of using gdb on the image.  I'm planning to
write up something but its a few weeks off.  The old post How to debug
the VM? [1] by Mariano needs a bit of adaption, but got me off to a
good start.  If you look in VMMaker package where  #printAllStacks  is
defined you'll see some others you can call, that just print the
current Smalltalk call stack.

[1] https://marianopeck.wordpress.com/2011/04/23/how-to-debug-the-vm/

>
> A also compiled PharoS (Pharo Stack) VM, and it's 5x slower, but stable, there is no stack errors (or other crashes) like in cog spur vm.

You might also try compiling the VM from upstream sources[2], running either:
* vm/build.linux32x86/squeak.cog.spur/build.debug/mvm
* vm/build.linux64x64/squeak.cog.spur/build.debug/mvm

Did you try the early 64-bit Pharo Image [3] suggested by Esteban in
another thread ?

Also, you might try Squeak 64-bit Image, since its the platform Eliot
develops the VM on, so it is further advanced in 64-bit stability.
Run vm/image/buildspurtrunk64image.sh.

[2] https://github.com/OpenSmalltalk/vm
[3] http://files.pharo.org/get-files/60/pharo-64.zip

Now since you are getting down and dirty debugging this at VM level,
probably good to shift this thread to [vm-dev].
http://lists.squeakfoundation.org/mailman/listinfo/vm-dev

cheers -ben

>
> pf
>
>
>> You could build a debug VM from here
>> https://github.com/pharo-project/pharo-vm
>> I also glimpsed some FreeBSD build options there you might try.
>> cheers -ben
>>
>> On Fri, Jun 24, 2016 at 12:05 PM, Petr Fischer <petr.fischer at me.com> wrote:
>>
>> > So... I compiled latest sources (blessed) on CentOS 6.8, fine, moved
>> > compiled binaries to FreeBSD and tried to load Seaside to the latest 50760
>> > image.
>> > Still stack errors, log here: http://pastebin.com/raw/bf1EpWNt
>> >
>> > When I run this on CentOS, everything is fine (loading Seaside, no stack
>> > errors), but when I run the same on FreeBSD, stack errors (segfaults)
>> > occurs.
>> >
>> > So... There is something bad on FreeBSD side? Can I debug more?
>> >
>> > pf
>> >
>> >
>> > > Try 50760 from...
>> > > http://files.pharo.org/image/50/
>> > >
>> > > cheers -ben
>> > >
>> > > On Sat, Jun 18, 2016 at 12:49 AM, Petr Fischer <petr.fischer at me.com>
>> > wrote:
>> > > > VM version (from
>> > https://swing.fit.cvut.cz/jenkins/job/pharo-vm-spur-swing/):
>> > > >
>> > > > 5.0 #1 Sun Jan 17 14:19:14 CET 2016 gcc 4.7.2 [Production Spur ITHB VM]
>> > > > CoInterpreter VMMaker.oscog-eem.1630 uuid:
>> > 2ed025ea-f400-4440-8e8b-5aa46d06c9ab Jan 17 2016
>> > > > StackToRegisterMappingCogit VMMaker.oscog-eem.1630 uuid:
>> > 2ed025ea-f400-4440-8e8b-5aa46d06c9ab Jan 17 2016
>> > > > https://github.com/estebanlm/pharo-vm.git Commit:
>> > 21ec004cce7d26010c18d357c805a0e1a4ffe376 Date: 2016-01-14 11:42:33 +0100
>> > By: Esteban Lorenzano <estebanlm at gmail.com> Jenkins build #498
>> > > > Linux swing-hudson-lin64 3.2.0-4-amd64 #1 SMP Debian 3.2.73-2+deb7u2
>> > x86_64 GNU/Linux
>> > > > plugin path: /usr/home/pf/Work/Smalltalk/pharo5.0.centos/bin [default:
>> > /usr/home/pf/Work/Smalltalk/pharo5.0.centos/bin/]
>> > > >
>> > > > Image version (from official 5.0 download):
>> > > >
>> > > > [version] 5.0 #50723
>> > > >
>> > > > pf
>> > > >
>> > > >> in fact, this is not related to FFI… but it should be fixed…
>> > > >>
>> > > >> along with the VM version, which version of Pharo are you using?
>> > > >>
>> > > >> Esteban
>> > > >>
>> > > >> > On 17 Jun 2016, at 14:04, Max Leske <maxleske at gmail.com> wrote:
>> > > >> >
>> > > >> > Hi Petr,
>> > > >> >
>> > > >> > That looks like a bug with FreeType with our FFI. It should
>> > actually have been fixed but I don’t know if the VM for FreeBSD is up to
>> > date. Can you post the output of “Smalltalk vm version”?
>> > > >> >
>> > > >> > Cheers,
>> > > >> > Max
>> > > >> >
>> > > >> >> On 17 Jun 2016, at 13:26, Petr Fischer <petr.fischer at me.com>
>> > wrote:
>> > > >> >>
>> > > >> >> Hello, I got some random segfaults (while loading Seaside) with 32
>> > bit spur vm on FreeBSD - can someone (with low level knowledge) decode
>> > attached log?
>> > > >> >> Is this some problem with stack size? Can I fix this?
>> > > >> >>
>> > > >> >> Log:
>> > > >> >> http://pastebin.com/raw/NpFUnjh0
>> > > >> >>
>> > > >> >> There is "**StackOverflow**" lines n the log...


More information about the Vm-dev mailing list