Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
November 2015
- 972 messages
Re: [Pharo-dev] Does Pharo stores original author of methods?
by EuanM
I did not mean storing all versions.
I mean storing all authors of previous veesions.
On 23 Nov 2015 11:13, "Marcus Denker" <marcus.denker(a)inria.fr> wrote:
>
> > On 22 Nov 2015, at 20:12, EuanM <euanmee(a)gmail.com> wrote:
> >
> > Is there any reason against amending Monticello to store and save all
> > author's names?
>
> It does. *If* you have all the versions⦠but doing anything with âall the
> versionsâ
> is so slow (you need to download them, unpack themâ¦) that we do not even
> have
> a tool to show the history of a method.
> (getting the oldest should be simpler, if you have complete history+this
> .mcz is
> there).
>
> Monticello is meant to be a system to save the complete history of a
> project
> (if you keep all the MCZ available), but the idea to save every tiny
> revision as
> a complete snapshot, zip compresses, makes it near impossible to do
> anything
> with the history in practice.
>
> With today disks, a practical SCM would allow anyone to have the *complete*
> history on the local disk. Monticello does now allow that in any practical
> way.
>
> >
> > Presumably, we'd also want a tool that could extract amnders' names
> > all the way back to the first commit of a package?
> >
> > How many on-line Monticello repositories are in common use?
> >
> > (I know of SqueakSource.com, Smalltalkhub.com and SqueakSource3)
> >
> > Are there active administrators for each of those repositories that
> > would allow us to update the repositories to use the updated
> > Monticello?
> >
> > On 22 November 2015 at 15:42, Marcus Denker <marcus.denker(a)inria.fr>
> wrote:
> >>
> >> On 20 Nov 2015, at 14:35, Denis Kudriashov <dionisiydk(a)gmail.com>
> wrote:
> >>
> >>
> >> 2015-11-20 14:21 GMT+01:00 Marcus Denker <marcus.denker(a)inria.fr>:
> >>>
> >>> epicea data is not stored forever. It is seasion based and the shipped
> >>> image is
> >>> clean.
> >>
> >>
> >> But current source of this info is changes file (maybe sources). And I
> >> remember you planned to store current sources in image. And such
> information
> >> can be there too.
> >> Maybe I miss something?
> >>
> >>
> >> The original author is not really that much of information. And storing
> it
> >> for every method in the image would take space.
> >>
> >> As I said: the whole idea of using a source revision control system is
> that
> >> you have the *complete* history available, but
> >> not wasting RAM.
> >>
> >> Marcus
> >
>
>
>
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
OK, I made it work by compiling a VM with #checkForLeaks answering 1.
I see plenty of leaks but they are all of the pattern "cache tag leak in
CM".
See a piece of the gdb output:
-----------
cache tag leak in CM 0x1f4a8b58 @ 0x1f4a8bfa
cache tag leak in CM 0x1f4a9800 @ 0x1f4a98a9
cache tag leak in CM 0x1f4ad8a0 @ 0x1f4ad974
cache tag leak in CM 0x1f4ae380 @ 0x1f4ae3ea
cache tag leak in CM 0x1f4ae510 @ 0x1f4ae577
cache tag leak in CM 0x1f4af708 @ 0x1f4af94e
checkCodeIntegrity(0) 11637
fwdBlockValid(fwdBlock2) 40450
Program received signal SIGSEGV, Segmentation fault.
0x000ab672 in updatePointersInRangeFromto (memStart=525336576,
memEnd=555384320) at
/Users/mariano/Pharo/git/pharo-vm/src/vm/gcc3x-cointerp.c:40451
40451 targetObj = longAt(fwdBlock2);
-------------
There is none other type of leak displayed.
Any idea what does this mean?
On Mon, Nov 23, 2015 at 11:28 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
>
>
>
>
> On Mon, Nov 23, 2015 at 11:15 PM, Mariano Martinez Peck <
> marianopeck(a)gmail.com> wrote:
>
>>
>>
>> On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck <
>> marianopeck(a)gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei(a)gmail.com
>>> > wrote:
>>>
>>>> Hi Eliot,
>>>>
>>>> Is an assert vm the same as a vm compiled with debugging support?
>>>> Also can you point me to any documentation about the leak checker.
>>>>
>>>>
>>> I was about to ask the same. I have the VM compiled with debug support
>>> and gdb working. I can reproduce the crash.
>>> After checking a bit in the VM about what Eliot says, I found out
>>> methods like #clearLeakMapAndMapAccessibleObjects and #checkCodeIntegrity:.
>>>
>>> However, I tried, for example (clearLeakMapAndMapAccessibleObjects to
>>> later call checkCodeIntegrity(0) ) from gdb:
>>>
>>> ------
>>> *fwdBlockValid(fwdBlock2) 40450*
>>>
>>> *Program received signal SIGSEGV, Segmentation fault.*
>>> *0x000ab6d2 in ?? ()*
>>> *(gdb) call clearLeakMapAndMapAccessibleObjects()*
>>> -------
>>>
>>>
>>> And I get CPU at 100% never ending.
>>>
>>
>> I forgot to said..I also compiled the VM with a hardcoded #checkForLeaks
>> that answers 1 (to force the checker) but that did not work either.
>>
>>
>>
>>>
>>>
>>> Cheers,
>>>> Andrei
>>>>
>>>> On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda(a)gmail.com>
>>>> wrote:
>>>> >
>>>> > Hi Andrei,
>>>> >
>>>> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
>>>> chisvasileandrei(a)gmail.com> wrote:
>>>> >>
>>>> >> Hi,
>>>> >>
>>>> >> With both the latest and stable vm I have an use case in which the
>>>> vm crashed in SmalltalkImage>>garbageCollect.
>>>> >>
>>>> >> To set up an image that exhibits the failure , execute this with the
>>>> latest pharo version:
>>>> >>
>>>> >> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>>>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>>>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>> load ]."
>>>> >>
>>>> >> ./pharo Pharo.image config
>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>> ConfigurationOfGToolkitCore --install=3.2
>>>> >>
>>>> >> Then attempting to run the following code triggers the failure:
>>>> >>
>>>> >> ./pharo Pharo.image eval --save "TestRunner open model
>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>> 'GTInspectorExamplesTest'; runAll"
>>>> >>
>>>> >> Based on the trace below the failure happens when the
>>>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>>>> method.
>>>> >>
>>>> >> That call can be removed, however, in other runs the failure happens
>>>> in other methods calling Smalltalk>>garbageCollect.
>>>> >>
>>>> >> Is it possible that this is a bug with the image (some broken
>>>> object) or is it a vm bug?
>>>> >
>>>> >
>>>> > The way to test this is to build an assert VM and then use the leak
>>>> checker. The leak checker will allow you to narrow down the cause. If the
>>>> leak checker shows no corruption then its definitely a GC bug. If there
>>>> leak checker does show corruption before GC then one still has to find out
>>>> what caused the heap corruption, but you can use the leak checker to narrow
>>>> the search.
>>>> >
>>>> > HTH
>>>> > Eliot
>>>>
>>>> >
>>>> >> Cheers,
>>>> >>
>>>> >> Andrei
>>>> >>
>>>> >>
>>>> >>
>>>> >> andrei$ ./pharo Pharo.image eval --save "{ {
>>>> 'ConfigurationOfRubric'. 'Pharo'. 'Rubric' }. {
>>>> 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>>>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>> load ]."
>>>> >>
>>>> >> andrei$ ./pharo Pharo.image config
>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>> ConfigurationOfGToolkitCore --install=3.2
>>>> >>
>>>> >> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>> 'GTInspectorExamplesTest'; runAll"
>>>> >>
>>>> >>
>>>> >> Segmentation fault Mon Nov 23 16:48:36 2015
>>>> >>
>>>> >>
>>>> >>
>>>> >> https://github.com/pharo-project/pharo-vm.git Commit:
>>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>>> >>
>>>> >>
>>>> >> C stack backtrace:
>>>> >>
>>>> >> 0 Pharo 0x0004cacf reportStackState
>>>> + 159
>>>> >>
>>>> >>
>>>> >>
>>>> >> Smalltalk stack dump:
>>>> >>
>>>> >> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>>> SmalltalkImage
>>>> >>
>>>> >> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>>>> GTInspectorExamplesTest
>>>> >>
>>>> >> 0x2126cb90 is not a context
>>>> >>
>>>> >>
>>>> >> Most recent primitives
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> new
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> replaceFrom:to:with:startingAt:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> replaceFrom:to:with:startingAt:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> perform:with:
>>>> >>
>>>> >> perform:with:
>>>> >>
>>>> >> perform:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> perform:with:
>>>> >>
>>>> >> perform:with:
>>>> >>
>>>> >> perform:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> @
>>>> >>
>>>> >> @
>>>> >>
>>>> >> perform:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> primUTCMicrosecondsClock
>>>> >>
>>>> >> //
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> value
>>>> >>
>>>> >> valueNoContextSwitch
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> replaceFrom:to:with:startingAt:
>>>> >>
>>>> >> primitiveGarbageCollect
>>>> >>
>>>> >> **IncrementalGC**
>>>> >>
>>>> >> **FullGC**
>>>> >>
>>>> >> garbageCollectMost
>>>> >>
>>>> >> **IncrementalGC**
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> someInstance
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> someInstance
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> someInstance
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> replaceFrom:to:with:startingAt:
>>>> >>
>>>> >> primitiveGarbageCollect
>>>> >>
>>>> >> **IncrementalGC**
>>>> >>
>>>> >> **FullGC**
>>>> >>
>>>> >> garbageCollectMost
>>>> >>
>>>> >> **IncrementalGC**
>>>> >>
>>>> >> wait
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> signal
>>>> >>
>>>> >> wait
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> signal
>>>> >>
>>>> >> wait
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> shallowCopy
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> at:put:
>>>> >>
>>>> >> signal
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> basicNew
>>>> >>
>>>> >> new:
>>>> >>
>>>> >> replaceFrom:to:with:startingAt:
>>>> >>
>>>> >> primitiveGarbageCollect
>>>> >>
>>>> >> **IncrementalGC**
>>>> >>
>>>> >> **FullGC**
>>>> >>
>>>> >>
>>>> >> (Segmentation fault)
>>>> >>
>>>> >> ./pharo: line 11: 5224 Abort trap: 6
>>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > _,,,^..^,,,_
>>>> > best, Eliot
>>>>
>>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
OK, I made it work by compiling a VM with #checkForLeaks answering 1.
I see plenty of leaks but they are all of the pattern "cache tag leak in
CM".
See a piece of the gdb output:
-----------
cache tag leak in CM 0x1f4a8b58 @ 0x1f4a8bfa
cache tag leak in CM 0x1f4a9800 @ 0x1f4a98a9
cache tag leak in CM 0x1f4ad8a0 @ 0x1f4ad974
cache tag leak in CM 0x1f4ae380 @ 0x1f4ae3ea
cache tag leak in CM 0x1f4ae510 @ 0x1f4ae577
cache tag leak in CM 0x1f4af708 @ 0x1f4af94e
checkCodeIntegrity(0) 11637
fwdBlockValid(fwdBlock2) 40450
Program received signal SIGSEGV, Segmentation fault.
0x000ab672 in updatePointersInRangeFromto (memStart=525336576,
memEnd=555384320) at
/Users/mariano/Pharo/git/pharo-vm/src/vm/gcc3x-cointerp.c:40451
40451 targetObj = longAt(fwdBlock2);
-------------
There is none other type of leak displayed.
Any idea what does this mean?
On Mon, Nov 23, 2015 at 11:15 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
>
>
> On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck <
> marianopeck(a)gmail.com> wrote:
>
>>
>>
>> On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
>> wrote:
>>
>>> Hi Eliot,
>>>
>>> Is an assert vm the same as a vm compiled with debugging support?
>>> Also can you point me to any documentation about the leak checker.
>>>
>>>
>> I was about to ask the same. I have the VM compiled with debug support
>> and gdb working. I can reproduce the crash.
>> After checking a bit in the VM about what Eliot says, I found out methods
>> like #clearLeakMapAndMapAccessibleObjects and #checkCodeIntegrity:.
>>
>> However, I tried, for example (clearLeakMapAndMapAccessibleObjects to
>> later call checkCodeIntegrity(0) ) from gdb:
>>
>> ------
>> *fwdBlockValid(fwdBlock2) 40450*
>>
>> *Program received signal SIGSEGV, Segmentation fault.*
>> *0x000ab6d2 in ?? ()*
>> *(gdb) call clearLeakMapAndMapAccessibleObjects()*
>> -------
>>
>>
>> And I get CPU at 100% never ending.
>>
>
> I forgot to said..I also compiled the VM with a hardcoded #checkForLeaks
> that answers 1 (to force the checker) but that did not work either.
>
>
>
>>
>>
>> Cheers,
>>> Andrei
>>>
>>> On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda(a)gmail.com>
>>> wrote:
>>> >
>>> > Hi Andrei,
>>> >
>>> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
>>> chisvasileandrei(a)gmail.com> wrote:
>>> >>
>>> >> Hi,
>>> >>
>>> >> With both the latest and stable vm I have an use case in which the vm
>>> crashed in SmalltalkImage>>garbageCollect.
>>> >>
>>> >> To set up an image that exhibits the failure , execute this with the
>>> latest pharo version:
>>> >>
>>> >> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'. 'Pharo'.
>>> 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>> load ]."
>>> >>
>>> >> ./pharo Pharo.image config
>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>> ConfigurationOfGToolkitCore --install=3.2
>>> >>
>>> >> Then attempting to run the following code triggers the failure:
>>> >>
>>> >> ./pharo Pharo.image eval --save "TestRunner open model
>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>> 'GTInspectorExamplesTest'; runAll"
>>> >>
>>> >> Based on the trace below the failure happens when the
>>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>>> method.
>>> >>
>>> >> That call can be removed, however, in other runs the failure happens
>>> in other methods calling Smalltalk>>garbageCollect.
>>> >>
>>> >> Is it possible that this is a bug with the image (some broken object)
>>> or is it a vm bug?
>>> >
>>> >
>>> > The way to test this is to build an assert VM and then use the leak
>>> checker. The leak checker will allow you to narrow down the cause. If the
>>> leak checker shows no corruption then its definitely a GC bug. If there
>>> leak checker does show corruption before GC then one still has to find out
>>> what caused the heap corruption, but you can use the leak checker to narrow
>>> the search.
>>> >
>>> > HTH
>>> > Eliot
>>>
>>> >
>>> >> Cheers,
>>> >>
>>> >> Andrei
>>> >>
>>> >>
>>> >>
>>> >> andrei$ ./pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>> load ]."
>>> >>
>>> >> andrei$ ./pharo Pharo.image config
>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>> ConfigurationOfGToolkitCore --install=3.2
>>> >>
>>> >> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>> 'GTInspectorExamplesTest'; runAll"
>>> >>
>>> >>
>>> >> Segmentation fault Mon Nov 23 16:48:36 2015
>>> >>
>>> >>
>>> >>
>>> >> https://github.com/pharo-project/pharo-vm.git Commit:
>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>> >>
>>> >>
>>> >> C stack backtrace:
>>> >>
>>> >> 0 Pharo 0x0004cacf reportStackState +
>>> 159
>>> >>
>>> >>
>>> >>
>>> >> Smalltalk stack dump:
>>> >>
>>> >> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>> SmalltalkImage
>>> >>
>>> >> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>>> GTInspectorExamplesTest
>>> >>
>>> >> 0x2126cb90 is not a context
>>> >>
>>> >>
>>> >> Most recent primitives
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> basicNew
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> new
>>> >>
>>> >> new:
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> replaceFrom:to:with:startingAt:
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> replaceFrom:to:with:startingAt:
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> perform:with:
>>> >>
>>> >> perform:with:
>>> >>
>>> >> perform:
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> perform:with:
>>> >>
>>> >> perform:with:
>>> >>
>>> >> perform:
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> new
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> new:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> new:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> at:put:
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> basicNew
>>> >>
>>> >> @
>>> >>
>>> >> @
>>> >>
>>> >> perform:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> primUTCMicrosecondsClock
>>> >>
>>> >> //
>>> >>
>>> >> basicNew
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> value
>>> >>
>>> >> valueNoContextSwitch
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> replaceFrom:to:with:startingAt:
>>> >>
>>> >> primitiveGarbageCollect
>>> >>
>>> >> **IncrementalGC**
>>> >>
>>> >> **FullGC**
>>> >>
>>> >> garbageCollectMost
>>> >>
>>> >> **IncrementalGC**
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> someInstance
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> someInstance
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> someInstance
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> replaceFrom:to:with:startingAt:
>>> >>
>>> >> primitiveGarbageCollect
>>> >>
>>> >> **IncrementalGC**
>>> >>
>>> >> **FullGC**
>>> >>
>>> >> garbageCollectMost
>>> >>
>>> >> **IncrementalGC**
>>> >>
>>> >> wait
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> signal
>>> >>
>>> >> wait
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> signal
>>> >>
>>> >> wait
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> shallowCopy
>>> >>
>>> >> at:put:
>>> >>
>>> >> at:put:
>>> >>
>>> >> signal
>>> >>
>>> >> new:
>>> >>
>>> >> basicNew
>>> >>
>>> >> new:
>>> >>
>>> >> replaceFrom:to:with:startingAt:
>>> >>
>>> >> primitiveGarbageCollect
>>> >>
>>> >> **IncrementalGC**
>>> >>
>>> >> **FullGC**
>>> >>
>>> >>
>>> >> (Segmentation fault)
>>> >>
>>> >> ./pharo: line 11: 5224 Abort trap: 6
>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > _,,,^..^,,,_
>>> > best, Eliot
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
>
>
> On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
>
>> Hi Eliot,
>>
>> Is an assert vm the same as a vm compiled with debugging support?
>> Also can you point me to any documentation about the leak checker.
>>
>>
> I was about to ask the same. I have the VM compiled with debug support
> and gdb working. I can reproduce the crash.
> After checking a bit in the VM about what Eliot says, I found out methods
> like #clearLeakMapAndMapAccessibleObjects and #checkCodeIntegrity:.
>
> However, I tried, for example (clearLeakMapAndMapAccessibleObjects to
> later call checkCodeIntegrity(0) ) from gdb:
>
> ------
> *fwdBlockValid(fwdBlock2) 40450*
>
> *Program received signal SIGSEGV, Segmentation fault.*
> *0x000ab6d2 in ?? ()*
> *(gdb) call clearLeakMapAndMapAccessibleObjects()*
> -------
>
>
> And I get CPU at 100% never ending.
>
I forgot to said..I also compiled the VM with a hardcoded #checkForLeaks
that answers 1 (to force the checker) but that did not work either.
>
>
> Cheers,
>> Andrei
>>
>> On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda(a)gmail.com> wrote:
>> >
>> > Hi Andrei,
>> >
>> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
>> chisvasileandrei(a)gmail.com> wrote:
>> >>
>> >> Hi,
>> >>
>> >> With both the latest and stable vm I have an use case in which the vm
>> crashed in SmalltalkImage>>garbageCollect.
>> >>
>> >> To set up an image that exhibits the failure , execute this with the
>> latest pharo version:
>> >>
>> >> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'. 'Pharo'.
>> 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>> load ]."
>> >>
>> >> ./pharo Pharo.image config
>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>> ConfigurationOfGToolkitCore --install=3.2
>> >>
>> >> Then attempting to run the following code triggers the failure:
>> >>
>> >> ./pharo Pharo.image eval --save "TestRunner open model
>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>> 'GTInspectorExamplesTest'; runAll"
>> >>
>> >> Based on the trace below the failure happens when the
>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>> method.
>> >>
>> >> That call can be removed, however, in other runs the failure happens
>> in other methods calling Smalltalk>>garbageCollect.
>> >>
>> >> Is it possible that this is a bug with the image (some broken object)
>> or is it a vm bug?
>> >
>> >
>> > The way to test this is to build an assert VM and then use the leak
>> checker. The leak checker will allow you to narrow down the cause. If the
>> leak checker shows no corruption then its definitely a GC bug. If there
>> leak checker does show corruption before GC then one still has to find out
>> what caused the heap corruption, but you can use the leak checker to narrow
>> the search.
>> >
>> > HTH
>> > Eliot
>>
>> >
>> >> Cheers,
>> >>
>> >> Andrei
>> >>
>> >>
>> >>
>> >> andrei$ ./pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>> load ]."
>> >>
>> >> andrei$ ./pharo Pharo.image config
>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>> ConfigurationOfGToolkitCore --install=3.2
>> >>
>> >> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>> 'GTInspectorExamplesTest'; runAll"
>> >>
>> >>
>> >> Segmentation fault Mon Nov 23 16:48:36 2015
>> >>
>> >>
>> >>
>> >> https://github.com/pharo-project/pharo-vm.git Commit:
>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>> >>
>> >>
>> >> C stack backtrace:
>> >>
>> >> 0 Pharo 0x0004cacf reportStackState +
>> 159
>> >>
>> >>
>> >>
>> >> Smalltalk stack dump:
>> >>
>> >> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>> SmalltalkImage
>> >>
>> >> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>> GTInspectorExamplesTest
>> >>
>> >> 0x2126cb90 is not a context
>> >>
>> >>
>> >> Most recent primitives
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> basicNew
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> shallowCopy
>> >>
>> >> new
>> >>
>> >> new:
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> replaceFrom:to:with:startingAt:
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> replaceFrom:to:with:startingAt:
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> perform:with:
>> >>
>> >> perform:with:
>> >>
>> >> perform:
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> perform:with:
>> >>
>> >> perform:with:
>> >>
>> >> perform:
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> new
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> new:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> shallowCopy
>> >>
>> >> shallowCopy
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> new:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> at:put:
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> basicNew
>> >>
>> >> @
>> >>
>> >> @
>> >>
>> >> perform:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> shallowCopy
>> >>
>> >> shallowCopy
>> >>
>> >> primUTCMicrosecondsClock
>> >>
>> >> //
>> >>
>> >> basicNew
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> value
>> >>
>> >> valueNoContextSwitch
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> replaceFrom:to:with:startingAt:
>> >>
>> >> primitiveGarbageCollect
>> >>
>> >> **IncrementalGC**
>> >>
>> >> **FullGC**
>> >>
>> >> garbageCollectMost
>> >>
>> >> **IncrementalGC**
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> someInstance
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> someInstance
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> someInstance
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> replaceFrom:to:with:startingAt:
>> >>
>> >> primitiveGarbageCollect
>> >>
>> >> **IncrementalGC**
>> >>
>> >> **FullGC**
>> >>
>> >> garbageCollectMost
>> >>
>> >> **IncrementalGC**
>> >>
>> >> wait
>> >>
>> >> shallowCopy
>> >>
>> >> shallowCopy
>> >>
>> >> signal
>> >>
>> >> wait
>> >>
>> >> shallowCopy
>> >>
>> >> shallowCopy
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> signal
>> >>
>> >> wait
>> >>
>> >> shallowCopy
>> >>
>> >> shallowCopy
>> >>
>> >> at:put:
>> >>
>> >> at:put:
>> >>
>> >> signal
>> >>
>> >> new:
>> >>
>> >> basicNew
>> >>
>> >> new:
>> >>
>> >> replaceFrom:to:with:startingAt:
>> >>
>> >> primitiveGarbageCollect
>> >>
>> >> **IncrementalGC**
>> >>
>> >> **FullGC**
>> >>
>> >>
>> >> (Segmentation fault)
>> >>
>> >> ./pharo: line 11: 5224 Abort trap: 6
>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>> >
>> >
>> >
>> >
>> > --
>> > _,,,^..^,,,_
>> > best, Eliot
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
> Hi Eliot,
>
> Is an assert vm the same as a vm compiled with debugging support?
> Also can you point me to any documentation about the leak checker.
>
>
I was about to ask the same. I have the VM compiled with debug support and
gdb working. I can reproduce the crash.
After checking a bit in the VM about what Eliot says, I found out methods
like #clearLeakMapAndMapAccessibleObjects and #checkCodeIntegrity:.
However, I tried, for example (clearLeakMapAndMapAccessibleObjects to later
call checkCodeIntegrity(0) ) from gdb:
------
*fwdBlockValid(fwdBlock2) 40450*
*Program received signal SIGSEGV, Segmentation fault.*
*0x000ab6d2 in ?? ()*
*(gdb) call clearLeakMapAndMapAccessibleObjects()*
-------
And I get CPU at 100% never ending.
Cheers,
> Andrei
>
> On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda(a)gmail.com> wrote:
> >
> > Hi Andrei,
> >
> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
> >>
> >> Hi,
> >>
> >> With both the latest and stable vm I have an use case in which the vm
> crashed in SmalltalkImage>>garbageCollect.
> >>
> >> To set up an image that exhibits the failure , execute this with the
> latest pharo version:
> >>
> >> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'. 'Pharo'.
> 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
> new smalltalkhubUser: spec second project: spec third; package: spec first;
> load ]."
> >>
> >> ./pharo Pharo.image config
> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
> ConfigurationOfGToolkitCore --install=3.2
> >>
> >> Then attempting to run the following code triggers the failure:
> >>
> >> ./pharo Pharo.image eval --save "TestRunner open model
> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
> 'GTInspectorExamplesTest'; runAll"
> >>
> >> Based on the trace below the failure happens when the
> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
> method.
> >>
> >> That call can be removed, however, in other runs the failure happens
> in other methods calling Smalltalk>>garbageCollect.
> >>
> >> Is it possible that this is a bug with the image (some broken object)
> or is it a vm bug?
> >
> >
> > The way to test this is to build an assert VM and then use the leak
> checker. The leak checker will allow you to narrow down the cause. If the
> leak checker shows no corruption then its definitely a GC bug. If there
> leak checker does show corruption before GC then one still has to find out
> what caused the heap corruption, but you can use the leak checker to narrow
> the search.
> >
> > HTH
> > Eliot
>
> >
> >> Cheers,
> >>
> >> Andrei
> >>
> >>
> >>
> >> andrei$ ./pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
> new smalltalkhubUser: spec second project: spec third; package: spec first;
> load ]."
> >>
> >> andrei$ ./pharo Pharo.image config
> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
> ConfigurationOfGToolkitCore --install=3.2
> >>
> >> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
> 'GTInspectorExamplesTest'; runAll"
> >>
> >>
> >> Segmentation fault Mon Nov 23 16:48:36 2015
> >>
> >>
> >>
> >> https://github.com/pharo-project/pharo-vm.git Commit:
> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
> >>
> >>
> >> C stack backtrace:
> >>
> >> 0 Pharo 0x0004cacf reportStackState +
> 159
> >>
> >>
> >>
> >> Smalltalk stack dump:
> >>
> >> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
> SmalltalkImage
> >>
> >> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
> GTInspectorExamplesTest
> >>
> >> 0x2126cb90 is not a context
> >>
> >>
> >> Most recent primitives
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> basicNew
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> shallowCopy
> >>
> >> new
> >>
> >> new:
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> replaceFrom:to:with:startingAt:
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> replaceFrom:to:with:startingAt:
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> @
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> perform:with:
> >>
> >> perform:with:
> >>
> >> perform:
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> perform:with:
> >>
> >> perform:with:
> >>
> >> perform:
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> new
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> new:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> shallowCopy
> >>
> >> shallowCopy
> >>
> >> @
> >>
> >> @
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> new:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> at:put:
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> @
> >>
> >> basicNew
> >>
> >> @
> >>
> >> @
> >>
> >> perform:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> shallowCopy
> >>
> >> shallowCopy
> >>
> >> primUTCMicrosecondsClock
> >>
> >> //
> >>
> >> basicNew
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> value
> >>
> >> valueNoContextSwitch
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> replaceFrom:to:with:startingAt:
> >>
> >> primitiveGarbageCollect
> >>
> >> **IncrementalGC**
> >>
> >> **FullGC**
> >>
> >> garbageCollectMost
> >>
> >> **IncrementalGC**
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> someInstance
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> someInstance
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> someInstance
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> replaceFrom:to:with:startingAt:
> >>
> >> primitiveGarbageCollect
> >>
> >> **IncrementalGC**
> >>
> >> **FullGC**
> >>
> >> garbageCollectMost
> >>
> >> **IncrementalGC**
> >>
> >> wait
> >>
> >> shallowCopy
> >>
> >> shallowCopy
> >>
> >> signal
> >>
> >> wait
> >>
> >> shallowCopy
> >>
> >> shallowCopy
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> signal
> >>
> >> wait
> >>
> >> shallowCopy
> >>
> >> shallowCopy
> >>
> >> at:put:
> >>
> >> at:put:
> >>
> >> signal
> >>
> >> new:
> >>
> >> basicNew
> >>
> >> new:
> >>
> >> replaceFrom:to:with:startingAt:
> >>
> >> primitiveGarbageCollect
> >>
> >> **IncrementalGC**
> >>
> >> **FullGC**
> >>
> >>
> >> (Segmentation fault)
> >>
> >> ./pharo: line 11: 5224 Abort trap: 6
> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
> >
> >
> >
> >
> > --
> > _,,,^..^,,,_
> > best, Eliot
>
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Andrei Chis
Hi Eliot,
Is an assert vm the same as a vm compiled with debugging support?
Also can you point me to any documentation about the leak checker.
Cheers,
Andrei
On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda(a)gmail.com> wrote:
>
> Hi Andrei,
>
> On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
>>
>> Hi,
>>
>> With both the latest and stable vm I have an use case in which the vm
crashed in SmalltalkImage>>garbageCollect.
>>
>> To set up an image that exhibits the failure , execute this with the
latest pharo version:
>>
>> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'. 'Pharo'.
'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
new smalltalkhubUser: spec second project: spec third; package: spec first;
load ]."
>>
>> ./pharo Pharo.image config
http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
ConfigurationOfGToolkitCore --install=3.2
>>
>> Then attempting to run the following code triggers the failure:
>>
>> ./pharo Pharo.image eval --save "TestRunner open model
packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
'GTInspectorExamplesTest'; runAll"
>>
>> Based on the trace below the failure happens when the
test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
method.
>>
>> That call can be removed, however, in other runs the failure happens in
other methods calling Smalltalk>>garbageCollect.
>>
>> Is it possible that this is a bug with the image (some broken object) or
is it a vm bug?
>
>
> The way to test this is to build an assert VM and then use the leak
checker. The leak checker will allow you to narrow down the cause. If the
leak checker shows no corruption then its definitely a GC bug. If there
leak checker does show corruption before GC then one still has to find out
what caused the heap corruption, but you can use the leak checker to narrow
the search.
>
> HTH
> Eliot
>
>> Cheers,
>>
>> Andrei
>>
>>
>>
>> andrei$ ./pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
{ 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
new smalltalkhubUser: spec second project: spec third; package: spec first;
load ]."
>>
>> andrei$ ./pharo Pharo.image config
http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
ConfigurationOfGToolkitCore --install=3.2
>>
>> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
'GTInspectorExamplesTest'; runAll"
>>
>>
>> Segmentation fault Mon Nov 23 16:48:36 2015
>>
>>
>>
>> https://github.com/pharo-project/pharo-vm.git Commit:
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>
>>
>> C stack backtrace:
>>
>> 0 Pharo 0x0004cacf reportStackState + 159
>>
>>
>>
>> Smalltalk stack dump:
>>
>> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
SmalltalkImage
>>
>> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
GTInspectorExamplesTest
>>
>> 0x2126cb90 is not a context
>>
>>
>> Most recent primitives
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> basicNew
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> shallowCopy
>>
>> new
>>
>> new:
>>
>> new:
>>
>> basicNew
>>
>> basicNew
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> replaceFrom:to:with:startingAt:
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> replaceFrom:to:with:startingAt:
>>
>> new:
>>
>> basicNew
>>
>> @
>>
>> new:
>>
>> at:put:
>>
>> at:put:
>>
>> perform:with:
>>
>> perform:with:
>>
>> perform:
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> new:
>>
>> at:put:
>>
>> at:put:
>>
>> perform:with:
>>
>> perform:with:
>>
>> perform:
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> new
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> new:
>>
>> at:put:
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> new:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> new:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> shallowCopy
>>
>> shallowCopy
>>
>> @
>>
>> @
>>
>> new:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> new:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> at:put:
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> @
>>
>> @
>>
>> basicNew
>>
>> @
>>
>> @
>>
>> perform:
>>
>> basicNew
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> shallowCopy
>>
>> shallowCopy
>>
>> primUTCMicrosecondsClock
>>
>> //
>>
>> basicNew
>>
>> basicNew
>>
>> new:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> value
>>
>> valueNoContextSwitch
>>
>> basicNew
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> replaceFrom:to:with:startingAt:
>>
>> primitiveGarbageCollect
>>
>> **IncrementalGC**
>>
>> **FullGC**
>>
>> garbageCollectMost
>>
>> **IncrementalGC**
>>
>> basicNew
>>
>> new:
>>
>> someInstance
>>
>> basicNew
>>
>> new:
>>
>> someInstance
>>
>> basicNew
>>
>> new:
>>
>> someInstance
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> replaceFrom:to:with:startingAt:
>>
>> primitiveGarbageCollect
>>
>> **IncrementalGC**
>>
>> **FullGC**
>>
>> garbageCollectMost
>>
>> **IncrementalGC**
>>
>> wait
>>
>> shallowCopy
>>
>> shallowCopy
>>
>> signal
>>
>> wait
>>
>> shallowCopy
>>
>> shallowCopy
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> at:put:
>>
>> signal
>>
>> wait
>>
>> shallowCopy
>>
>> shallowCopy
>>
>> at:put:
>>
>> at:put:
>>
>> signal
>>
>> new:
>>
>> basicNew
>>
>> new:
>>
>> replaceFrom:to:with:startingAt:
>>
>> primitiveGarbageCollect
>>
>> **IncrementalGC**
>>
>> **FullGC**
>>
>>
>> (Segmentation fault)
>>
>> ./pharo: line 11: 5224 Abort trap: 6
"$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>
>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
Nov. 24, 2015
Re: [Pharo-dev] Debugging a failing test doesn't include the full stack
by Esteban A. Maringolo
I don't know if this is related, but trying to debug another test I
got an endless loop of MNU related with Message>>#sendTo:
MessageNotUnderstood: BlockClosure>>asSymbol
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
I got this kind of error en Pharo 4 too, but not as soon as trying to
debug a failing test.
Anybody know why this happen?
Regards!
Esteban A. Maringolo
Log...
MessageNotUnderstood: BlockClosure>>asSymbol
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
MessageNotUnderstood: BlockClosure>>asSymbol
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
BlockClosure(Object)>>doesNotUnderstand: #asSymbol
Message>>sentTo:
ad infinitum... or until Alt+.
Nov. 24, 2015
Re: [Pharo-dev] problem using curl and wget in zero-conf -- explained
by Dale Henrichs
As I mentioned in the previous email, I sometimes have users report that
they get the following error in their log file when installing
pharo/GsDevKit-Home:
> /home/travis/build/GsDevKit/GsDevKit_home/shared/pharo/pharo: line 11:
> /home/travis/build/GsDevKit/GsDevKit_home/shared/pharo
and I assumed that it was some sort of unreported error while
downloading the pharo-vm (--silent used without --show-error for curl)
... fortunately I just started reliably getting this error on travis[1]
and was able to track down the root cause of the bogus "file does not
exist message" to the fact that the 32 bit libraries have not been
installed[2].
It's true that the zero-conf script reports info that the 32-bit
libraries were not installed, but the linux error message in this case
is completely misleading ... it wasn't until I verified that the file
did indeed exist[1] that I was able to investigate this further --- in
my case I was expecting the 32-bit libraries to get installed in a later
step and changes to the script structure resulted in the 32 bit library
install being skipped ...
At the end of the day, I think that error messages should not be
suppressed by the zero-conf scripts, especially given the fact that the
error message you get when a download does fail is pretty much the same
as you'd get when you don't have the 32 bit libraries installed ...
In my case, now that I understand that I cannot rely on a proper error
error when 32-libraries have not been installed, I will have to see if I
can come up with a way to provide a better error message for
GsDevKit_home users ....
Dale
[1] https://travis-ci.org/GsDevKit/GsDevKit_home/jobs/92839591#L352
[2]
http://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-fil…
On 11/23/2015 04:05 PM, Dale Henrichs wrote:
>
>
> On 11/23/2015 03:39 PM, Esteban A. Maringolo wrote:
>> 2015-11-23 20:25 GMT-03:00 Dale Henrichs
>> <dale.henrichs(a)gemtalksystems.com>:
>>> I've been using zero-conf scripts to download the pharo vm for a
>>> while and
>>> occasionally the download fails to install the vm in the pharo-vm
>>> directory
>>> .... silently ..... with no clue as to what happened. even worse the
>>> exit
>>> status is zero so the failure isn't noticed until much later on in my
>>> install when an attempt is made to actually use the vm .... I do
>>> know that
>>> when I see these failures the pharo-vm does get created but is
>>> empty ...
>> +1. I've been bitten by this too.
>>
>> I would also like the option of seeing the progress of the download of
>> the sources AND vm, because sometimes I want to know how the download
>> is going on, speed, etc.
>>
>> Regards!
>>
>> --
>> Esteban
>>
> I agree with the progress, but when running as a batch job, you end up
> with a ton of junk being dumped out into the log file ... getting rid
> of junk from a log file is how I learned about the problem with
> --silent:)
>
> With regards to the issue I am having --- I have hit a point in my
> testing (on travis) where I consistently get the:
>
>> /home/travis/build/GsDevKit/GsDevKit_home/shared/pharo/pharo: line
>> 11:
>> /home/travis/build/GsDevKit/GsDevKit_home/shared/pharo/pharo-vm/pharo: No
>> such file or directory
>
> error message yet the following appears to work:
>
>> if [ "$OS" == "win" ]; then
>> PHARO_VM=`find $VM_DIR -name ${VM_BINARY_NAME}.exe`
>> elif [ "$OS" == "mac" ]; then
>> PHARO_VM=`find $VM_DIR -name ${VM_BINARY_NAME}`
>> elif [ "$OS" == "linux" ]; then
>> PHARO_VM=`find $VM_DIR -name ${VM_BINARY_NAME_LINUX}`
>> fi
>>
>> echo $PHARO_VM
>
> since `pharo-vm/pharo` is properly echoed even though the file does
> not appear to exist? I'm digging deeper ....
>
> Dale
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Eliot Miranda
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
> Hi,
>
> With both the latest and stable vm I have an use case in which the vm
> crashed in SmalltalkImage>>garbageCollect.
>
> To set up an image that exhibits the failure , execute this with the
> latest pharo version:
>
> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'. 'Pharo'.
> 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
> new smalltalkhubUser: spec second project: spec third; package: spec first;
> load ]."
>
> ./pharo Pharo.image config
> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
> ConfigurationOfGToolkitCore --install=3.2
>
> Then attempting to run the following code triggers the failure:
>
> ./pharo Pharo.image eval --save "TestRunner open model
> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
> 'GTInspectorExamplesTest'; runAll"
>
> Based on the trace below the failure happens when the
> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
> method.
>
> That call can be removed, however, in other runs the failure happens in
> other methods calling Smalltalk>>garbageCollect.
>
> Is it possible that this is a bug with the image (some broken object) or
> is it a vm bug?
>
The way to test this is to build an assert VM and then use the leak
checker. The leak checker will allow you to narrow down the cause. If the
leak checker shows no corruption then its definitely a GC bug. If there
leak checker does show corruption before GC then one still has to find out
what caused the heap corruption, but you can use the leak checker to narrow
the search.
HTH
Eliot
Cheers,
>
> Andrei
>
>
>
> andrei$ ./pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
> new smalltalkhubUser: spec second project: spec third; package: spec first;
> load ]."
>
> andrei$ ./pharo Pharo.image config
> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
> ConfigurationOfGToolkitCore --install=3.2
>
> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
> 'GTInspectorExamplesTest'; runAll"
>
>
> Segmentation fault Mon Nov 23 16:48:36 2015
>
>
>
> https://github.com/pharo-project/pharo-vm.git Commit:
> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>
>
> C stack backtrace:
>
> 0 Pharo 0x0004cacf reportStackState + 159
>
>
>
> Smalltalk stack dump:
>
> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n) SmalltalkImage
>
> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
> GTInspectorExamplesTest
>
> 0x2126cb90 is not a context
>
>
> Most recent primitives
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> basicNew
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> shallowCopy
>
> new
>
> new:
>
> new:
>
> basicNew
>
> basicNew
>
> new:
>
> basicNew
>
> new:
>
> replaceFrom:to:with:startingAt:
>
> new:
>
> basicNew
>
> new:
>
> replaceFrom:to:with:startingAt:
>
> new:
>
> basicNew
>
> @
>
> new:
>
> at:put:
>
> at:put:
>
> perform:with:
>
> perform:with:
>
> perform:
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> new:
>
> at:put:
>
> at:put:
>
> perform:with:
>
> perform:with:
>
> perform:
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> new
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> new:
>
> at:put:
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> new:
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> new:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> shallowCopy
>
> shallowCopy
>
> @
>
> @
>
> new:
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> new:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> at:put:
>
> @
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> @
>
> @
>
> basicNew
>
> @
>
> @
>
> perform:
>
> basicNew
>
> new:
>
> basicNew
>
> new:
>
> basicNew
>
> new:
>
> shallowCopy
>
> shallowCopy
>
> primUTCMicrosecondsClock
>
> //
>
> basicNew
>
> basicNew
>
> new:
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> value
>
> valueNoContextSwitch
>
> basicNew
>
> new:
>
> basicNew
>
> new:
>
> new:
>
> basicNew
>
> new:
>
> replaceFrom:to:with:startingAt:
>
> primitiveGarbageCollect
>
> **IncrementalGC**
>
> **FullGC**
>
> garbageCollectMost
>
> **IncrementalGC**
>
> basicNew
>
> new:
>
> someInstance
>
> basicNew
>
> new:
>
> someInstance
>
> basicNew
>
> new:
>
> someInstance
>
> new:
>
> basicNew
>
> new:
>
> replaceFrom:to:with:startingAt:
>
> primitiveGarbageCollect
>
> **IncrementalGC**
>
> **FullGC**
>
> garbageCollectMost
>
> **IncrementalGC**
>
> wait
>
> shallowCopy
>
> shallowCopy
>
> signal
>
> wait
>
> shallowCopy
>
> shallowCopy
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> at:put:
>
> signal
>
> wait
>
> shallowCopy
>
> shallowCopy
>
> at:put:
>
> at:put:
>
> signal
>
> new:
>
> basicNew
>
> new:
>
> replaceFrom:to:with:startingAt:
>
> primitiveGarbageCollect
>
> **IncrementalGC**
>
> **FullGC**
>
>
> (Segmentation fault)
>
> ./pharo: line 11: 5224 Abort trap: 6
> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>
--
_,,,^..^,,,_
best, Eliot
Nov. 24, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Andrei Chis
Here is an image where I get the error if I execute the tests. Strangely
enough it's also 50463.
https://dl.dropboxusercontent.com/u/74244847/Data/Pharo-50463-bad.zip
I'm using also the latest vm on OSX Yosemite 10.10.3
On Tue, Nov 24, 2015 at 12:35 AM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
> Could you upload somewhere the image ready for running the test and make
> it crash?
> thanks
>
> On Mon, Nov 23, 2015 at 8:32 PM, Mariano Martinez Peck <
> marianopeck(a)gmail.com> wrote:
>
>> Mmmm I tried in 50463 and I cannot reproduce the crash with your steps. I
>> am using latest VM and on OSX Capitan.
>>
>> And you?
>>
>> On Mon, Nov 23, 2015 at 7:27 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
>> wrote:
>>
>>>
>>> On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
>>> marianopeck(a)gmail.com> wrote:
>>>
>>>> Can you confirm the image is later than 50454?
>>>>
>>>
>>> Yes, it is (50461).
>>> I can reproduce it up to 50388 as in 50387 due to some changes in the
>>> theming mechanism I can no longer load the configuration by default.
>>>
>>>
>>>
>>>> I was thinking if it could be a VM crash because of this issue:
>>>> https://pharo.fogbugz.com/f/cases/13854/
>>>>
>>>> Cheers,
>>>>
>>>> On Mon, Nov 23, 2015 at 5:07 PM, Andrei Chis <
>>>> chisvasileandrei(a)gmail.com> wrote:
>>>>
>>>>> So it's not just me. Thanks
>>>>>
>>>>> Cheers,
>>>>> Andrei
>>>>>
>>>>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske(a)gmail.com> wrote:
>>>>> >
>>>>> > Reprocucible as per your steps:
>>>>> >
>>>>> > Segmentation fault Mon Nov 23 17:42:47 2015
>>>>> >
>>>>> >
>>>>> > https://github.com/pharo-project/pharo-vm.git Commit:
>>>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>>>> >
>>>>> > C stack backtrace:
>>>>> > 0 Pharo 0x0004cacf reportStackState
>>>>> + 159
>>>>> >
>>>>> >
>>>>> > Smalltalk stack dump:
>>>>> > 0xbffbe11c M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>>>> SmalltalkImage
>>>>> > 0xbffbe140 I GTExampleOrganizer>reset 0x216acc5c: a(n)
>>>>> GTExampleOrganizer
>>>>> > 0x216ad57c is not a context
>>>>> >
>>>>> > Most recent primitives
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > perform:with:
>>>>> > fractionPart
>>>>> > truncated
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > perform:with:
>>>>> > fractionPart
>>>>> > truncated
>>>>> > perform:with:
>>>>> > fractionPart
>>>>> > truncated
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > basicNew
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > shallowCopy
>>>>> > new
>>>>> > new:
>>>>> > new:
>>>>> > basicNew
>>>>> > basicNew
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > replaceFrom:to:with:startingAt:
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > replaceFrom:to:with:startingAt:
>>>>> > new:
>>>>> > basicNew
>>>>> > @
>>>>> > new:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > perform:with:
>>>>> > perform:with:
>>>>> > perform:
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > new:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > perform:with:
>>>>> > perform:with:
>>>>> > perform:
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > new
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > new:
>>>>> > at:put:
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > new:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > new:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > shallowCopy
>>>>> > shallowCopy
>>>>> > @
>>>>> > @
>>>>> > new:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > new:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > at:put:
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > @
>>>>> > basicNew
>>>>> > @
>>>>> > @
>>>>> > perform:
>>>>> > basicNew
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > shallowCopy
>>>>> > shallowCopy
>>>>> > primUTCMicrosecondsClock
>>>>> > //
>>>>> > basicNew
>>>>> > basicNew
>>>>> > new:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > at:put:
>>>>> > value
>>>>> > valueNoContextSwitch
>>>>> > basicNew
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > replaceFrom:to:with:startingAt:
>>>>> > primitiveGarbageCollect
>>>>> > **IncrementalGC**
>>>>> > **FullGC**
>>>>> > garbageCollectMost
>>>>> > **IncrementalGC**
>>>>> > basicNew
>>>>> > new:
>>>>> > someInstance
>>>>> > basicNew
>>>>> > new:
>>>>> > someInstance
>>>>> > basicNew
>>>>> > new:
>>>>> > someInstance
>>>>> > new:
>>>>> > basicNew
>>>>> > new:
>>>>> > replaceFrom:to:with:startingAt:
>>>>> > primitiveGarbageCollect
>>>>> > **IncrementalGC**
>>>>> > **FullGC**
>>>>> >
>>>>> > (Segmentation fault)
>>>>> > ./pharo: line 11: 16509 Abort trap: 6
>>>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@â
>>>>> >
>>>>> >> On 23 Nov 2015, at 17:30, Andrei Chis <chisvasileandrei(a)gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> The image is small 25.4 MB.
>>>>> >>
>>>>> >> First I'd like to know if this can be reproduced by others.
>>>>> >>
>>>>> >> On Mon, Nov 23, 2015 at 5:09 PM, Mariano Martinez Peck <
>>>>> marianopeck(a)gmail.com> wrote:
>>>>> >>>
>>>>> >>> What is the size of the .image when you are about to run GC?
>>>>> >>>
>>>>> >>> On Mon, Nov 23, 2015 at 12:59 PM, Andrei Chis <
>>>>> chisvasileandrei(a)gmail.com> wrote:
>>>>> >>>>
>>>>> >>>> Hi,
>>>>> >>>>
>>>>> >>>> With both the latest and stable vm I have an use case in which
>>>>> the vm crashed in SmalltalkImage>>garbageCollect.
>>>>> >>>>
>>>>> >>>> To set up an image that exhibits the failure , execute this with
>>>>> the latest pharo version:
>>>>> >>>>
>>>>> >>>> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>>>>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>>>>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>>> load ]."
>>>>> >>>>
>>>>> >>>> ./pharo Pharo.image config
>>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>>> ConfigurationOfGToolkitCore --install=3.2
>>>>> >>>>
>>>>> >>>> Then attempting to run the following code triggers the failure:
>>>>> >>>>
>>>>> >>>> ./pharo Pharo.image eval --save "TestRunner open model
>>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>>> 'GTInspectorExamplesTest'; runAll"
>>>>> >>>>
>>>>> >>>> Based on the trace below the failure happens when the
>>>>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>>>>> method.
>>>>> >>>>
>>>>> >>>> That call can be removed, however, in other runs the failure
>>>>> happens in other methods calling Smalltalk>>garbageCollect.
>>>>> >>>>
>>>>> >>>> Is it possible that this is a bug with the image (some broken
>>>>> object) or is it a vm bug?
>>>>> >>>>
>>>>> >>>> Cheers,
>>>>> >>>>
>>>>> >>>> Andrei
>>>>> >>>>
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> andrei$ ./pharo Pharo.image eval --save "{ {
>>>>> 'ConfigurationOfRubric'. 'Pharo'. 'Rubric' }. {
>>>>> 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>>>>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>>> load ]."
>>>>> >>>>
>>>>> >>>> andrei$ ./pharo Pharo.image config
>>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>>> ConfigurationOfGToolkitCore --install=3.2
>>>>> >>>>
>>>>> >>>> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>>> 'GTInspectorExamplesTest'; runAll"
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> Segmentation fault Mon Nov 23 16:48:36 2015
>>>>> >>>>
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> https://github.com/pharo-project/pharo-vm.git Commit:
>>>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> C stack backtrace:
>>>>> >>>>
>>>>> >>>> 0 Pharo 0x0004cacf
>>>>> reportStackState + 159
>>>>> >>>>
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> Smalltalk stack dump:
>>>>> >>>>
>>>>> >>>> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>>>> SmalltalkImage
>>>>> >>>>
>>>>> >>>> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>>>>> GTInspectorExamplesTest
>>>>> >>>>
>>>>> >>>> 0x2126cb90 is not a context
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> Most recent primitives
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> new
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> replaceFrom:to:with:startingAt:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> replaceFrom:to:with:startingAt:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> perform:with:
>>>>> >>>>
>>>>> >>>> perform:with:
>>>>> >>>>
>>>>> >>>> perform:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> perform:with:
>>>>> >>>>
>>>>> >>>> perform:with:
>>>>> >>>>
>>>>> >>>> perform:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> @
>>>>> >>>>
>>>>> >>>> perform:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> primUTCMicrosecondsClock
>>>>> >>>>
>>>>> >>>> //
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> value
>>>>> >>>>
>>>>> >>>> valueNoContextSwitch
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> replaceFrom:to:with:startingAt:
>>>>> >>>>
>>>>> >>>> primitiveGarbageCollect
>>>>> >>>>
>>>>> >>>> **IncrementalGC**
>>>>> >>>>
>>>>> >>>> **FullGC**
>>>>> >>>>
>>>>> >>>> garbageCollectMost
>>>>> >>>>
>>>>> >>>> **IncrementalGC**
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> someInstance
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> someInstance
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> someInstance
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> replaceFrom:to:with:startingAt:
>>>>> >>>>
>>>>> >>>> primitiveGarbageCollect
>>>>> >>>>
>>>>> >>>> **IncrementalGC**
>>>>> >>>>
>>>>> >>>> **FullGC**
>>>>> >>>>
>>>>> >>>> garbageCollectMost
>>>>> >>>>
>>>>> >>>> **IncrementalGC**
>>>>> >>>>
>>>>> >>>> wait
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> signal
>>>>> >>>>
>>>>> >>>> wait
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> signal
>>>>> >>>>
>>>>> >>>> wait
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> shallowCopy
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> at:put:
>>>>> >>>>
>>>>> >>>> signal
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> basicNew
>>>>> >>>>
>>>>> >>>> new:
>>>>> >>>>
>>>>> >>>> replaceFrom:to:with:startingAt:
>>>>> >>>>
>>>>> >>>> primitiveGarbageCollect
>>>>> >>>>
>>>>> >>>> **IncrementalGC**
>>>>> >>>>
>>>>> >>>> **FullGC**
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> (Segmentation fault)
>>>>> >>>>
>>>>> >>>> ./pharo: line 11: 5224 Abort trap: 6
>>>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>>>>> >>>
>>>>> >>>
>>>>> >>>
>>>>> >>>
>>>>> >>> --
>>>>> >>> Mariano
>>>>> >>> http://marianopeck.wordpress.com
>>>>> >>
>>>>> >>
>>>>> >
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Mariano
>>>> http://marianopeck.wordpress.com
>>>>
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
Nov. 24, 2015