Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- November
- October
- September
- August
- 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
- 3 participants
- 144636 messages
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
Re: [Pharo-dev] problem using curl and wget in zero-conf
by Dale Henrichs
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] problem using curl and wget in zero-conf
by Dale Henrichs
In case more info is needed, you can look at an example of a failure on
travis[1], where an apparently successful download of the vm ends up
with a non-existent pharo/pharo-vm/pharo executable on linx ...
I suspect (hope?) that I'm missing some crucial error information from
the download...
Dale
[1] https://travis-ci.org/GsDevKit/GsDevKit_home/jobs/92825487
On 11/23/2015 03:29 PM, Dale Henrichs wrote:
> If it matters, I'm downloading the pharo30 vm: get.pharo.org/vm30
>
> On 11/23/2015 03:25 PM, Dale Henrichs wrote:
>> 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 ...
>>
>> I got another failure today and figured that I would dig into this on
>> my end to see if I could understand what might be going on ....
>>
>> The section of the zero-conf script that is suspect is the following:
>>
>> mkdir $VM_DIR
>> $DOWNLOAD_TO$VM_DIR/vm.zip $VM_URL
>>
>>
>> After the $VM_DIR is created (which I know happens), the $DOWNLOAD_TO
>> script is run. Recently, I learned that a side effect of using the
>> --silent option for curl is that error messages are also suppressed
>> and I see that for curl, the `--silent` option is being used:
>>
>> if [[ `which curl 2> /dev/null` ]]; then
>> DOWNLOAD="curl --silent --location --compressed ";
>> DOWNLOAD_TO="$DOWNLOAD --output ";
>> elif [[ `which wget 2> /dev/null` ]]; then
>> DOWNLOAD_TO="wget --quiet --output-document=";
>> DOWNLOAD="$DOWNLOAD_TO-";
>> else
>> echo "Please install curl or wget on your machine";
>> exit 1
>> fi
>>
>>
>> For curl if you want to turn off the progress meter (a good thing)
>> and continue to report errors, you need to use --show-error in
>> conjunction with --silent (as described in the man page)
>>
>> I think the same thing applies to wget, --quiet turns off error
>> messages and progress .... you probably should be using --no-verbose
>> to continue to get error messages ...
>>
>> Dale
>>
>
Nov. 23, 2015
Re: [Pharo-dev] problem using curl and wget in zero-conf
by Esteban A. Maringolo
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
Nov. 23, 2015