vm crash in SmalltalkImage>garbageCollect
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@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 "$@"
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@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@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
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@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@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@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
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@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@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@gmail.com <mailto:marianopeck@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@gmail.com <mailto:chisvasileandrei@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 <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 <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 <https://github.com/pharo-project/pharo-vm.git> Commit: 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@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 <http://marianopeck.wordpress.com/>
So it's not just me. Thanks Cheers, Andrei On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@gmail.com> wrote:
Reprocucible as per your steps:
Segmentation fault Mon Nov 23 17:42:47 2015
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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@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@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@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
Can you confirm the image is later than 50454? 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@gmail.com> wrote:
So it's not just me. Thanks
Cheers, Andrei
On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@gmail.com> wrote:
Reprocucible as per your steps:
Segmentation fault Mon Nov 23 17:42:47 2015
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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@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@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@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
marianopeck@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@gmail.com>
> wrote:
>
>> So it's not just me. Thanks
>>
>> Cheers,
>> Andrei
>>
>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@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@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@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@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@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@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
>
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@gmail.com>
wrote:
>
> On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
> marianopeck@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@gmail.com>
>> wrote:
>>
>>> So it's not just me. Thanks
>>>
>>> Cheers,
>>> Andrei
>>>
>>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@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@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@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@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@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@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
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@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@gmail.com> wrote:
On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck < marianopeck@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@gmail.com
wrote:
So it's not just me. Thanks
Cheers, Andrei
On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@gmail.com> wrote:
Reprocucible as per your steps:
Segmentation fault Mon Nov 23 17:42:47 2015
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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@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@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@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
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@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@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@gmail.com> wrote:
On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck < marianopeck@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@gmail.com> wrote:
So it's not just me. Thanks
Cheers, Andrei
On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske@gmail.com> wrote:
Reprocucible as per your steps:
Segmentation fault Mon Nov 23 17:42:47 2015
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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@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@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@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
This sounds suspiciously like the same thing we had with Fuel 2 or 3 years back. Search for "Frequent SegFaults in PharoVM with Pharo 3.0â. The problem there was with Opal though and the #timesRepeat: message IIRC. Max
On 23 Nov 2015, at 16:59, Andrei Chis <chisvasileandrei@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 <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 <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 <https://github.com/pharo-project/pharo-vm.git> Commit: 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@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 "$@"
Hi Andrei, On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei@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@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
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@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei@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@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
On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei@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@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei@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@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
chisvasileandrei@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
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@gmail.com> wrote:
On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei@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@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
chisvasileandrei@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
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@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
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@gmail.com> wrote:
>
>
>
>
> On Mon, Nov 23, 2015 at 11:15 PM, Mariano Martinez Peck <
> marianopeck@gmail.com> wrote:
>
>>
>>
>> On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck <
>> marianopeck@gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei@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@gmail.com>
>>>> wrote:
>>>> >
>>>> > Hi Andrei,
>>>> >
>>>> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
>>>> chisvasileandrei@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@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
Hi Mario,
I compiled a debug vm with #checkForLeaks answering 1 and I get the same
error messages.
However I get them in every version of Pharo 5 that I checked just by
interacting with the system.
When running clearLeakMapAndMapAccessibleObjects I get a failure:
(lldb) call clearLeakMapAndMapAccessibleObjects()
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1,
address=0x424a9434).
The process has been returned to the state before expression evaluation.
Cheers,
Andrei
On Tue, Nov 24, 2015 at 3:28 AM, Mariano Martinez Peck <
marianopeck@gmail.com> wrote:
> 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@gmail.com> wrote:
>
>>
>>
>> On Mon, Nov 23, 2015 at 11:13 PM, Mariano Martinez Peck <
>> marianopeck@gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Nov 23, 2015 at 9:57 PM, Andrei Chis <chisvasileandrei@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@gmail.com>
>>>> wrote:
>>>> >
>>>> > Hi Andrei,
>>>> >
>>>> > On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
>>>> chisvasileandrei@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@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
>
On Mon, Nov 23, 2015 at 4:57 PM, Andrei Chis <chisvasileandrei@gmail.com> wrote:
Hi Eliot,
Is an assert vm the same as a vm compiled with debugging support?
VMMaker.oscog generates VM sources designed to be compiled in three different ways, Debug, Assert and Production. Debug is designed to enable asserts to check invariants and be compiled with no optimization for maximum debuggability. Assert is designed to enable asserts to check invariants and be compiled with limited optimization for faster assert checking. Production has asserts disabled (actually compiled-out) and be compiled with aggressive optimization, so it has limited debuggability (it should still contain debugging symbols). So Assert and Debug are not quite the same and certainly if you're hunting for storage leaks an Assert VM will run much faster than a Debug VM. If you have a look at the Cog svn sources you'll find that the build scripts build all three kinds of VMs for all platforms. Also can you point me to any documentation about the leak checker.
It's not well documented because it may change over time, but the -help flag on the VM should include this: -leakcheck num check for leaks in the heap and the meaning of num is a set of flags: setCheckForLeaks: integerFlags " 0 = do nothing. 1 = check for leaks on fullGC (GCModeFull). 2 = check for leaks on scavenger (GCModeNewSpace). 4 = check for leaks on incremental (GCModeIncremental) 8 = check for leaks on become 16 = check for leaks on image segments" checkForLeaks := integerFlags So once you have your assert VM try running your test case using myvm -leakcheck 5 myimage.image on the command line. You'll want to use a debugger to put breakpoints in the leak checker and you may need to learn about the VM's debug routines to try and figure out the cause of the leak once the leak checker finds it.
Cheers, Andrei
On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei@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@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
-- _,,,^..^,,,_ best, Eliot
Hi Eliot, Thanks for explaining this. For now I just removed the explicit #garbageCollect that we were doing in the test that was causing the error and I cannot reproduce it any more. We'll see if this comes back again. Cheers, Andrei On Tue, Nov 24, 2015 at 7:34 PM, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Mon, Nov 23, 2015 at 4:57 PM, Andrei Chis <chisvasileandrei@gmail.com> wrote:
Hi Eliot,
Is an assert vm the same as a vm compiled with debugging support?
VMMaker.oscog generates VM sources designed to be compiled in three different ways, Debug, Assert and Production. Debug is designed to enable asserts to check invariants and be compiled with no optimization for maximum debuggability. Assert is designed to enable asserts to check invariants and be compiled with limited optimization for faster assert checking. Production has asserts disabled (actually compiled-out) and be compiled with aggressive optimization, so it has limited debuggability (it should still contain debugging symbols).
So Assert and Debug are not quite the same and certainly if you're hunting for storage leaks an Assert VM will run much faster than a Debug VM. If you have a look at the Cog svn sources you'll find that the build scripts build all three kinds of VMs for all platforms.
Also can you point me to any documentation about the leak checker.
It's not well documented because it may change over time, but the -help flag on the VM should include this:
-leakcheck num check for leaks in the heap
and the meaning of num is a set of flags:
setCheckForLeaks: integerFlags " 0 = do nothing. 1 = check for leaks on fullGC (GCModeFull). 2 = check for leaks on scavenger (GCModeNewSpace). 4 = check for leaks on incremental (GCModeIncremental) 8 = check for leaks on become 16 = check for leaks on image segments" checkForLeaks := integerFlags
So once you have your assert VM try running your test case using
myvm -leakcheck 5 myimage.image
on the command line. You'll want to use a debugger to put breakpoints in the leak checker and you may need to learn about the VM's debug routines to try and figure out the cause of the leak once the leak checker finds it.
Cheers, Andrei
On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
chisvasileandrei@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@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
-- _,,,^..^,,,_ best, Eliot
Hi, I discovered a similar issue described in this issue https://pharo.fogbugz.com/f/cases/14165/ObsoleteTest-testFixObsoleteSharedPo.... Might be related. Cheers, Max
On 24 Nov 2015, at 19:34, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Mon, Nov 23, 2015 at 4:57 PM, Andrei Chis <chisvasileandrei@gmail.com <mailto:chisvasileandrei@gmail.com>> wrote: Hi Eliot,
Is an assert vm the same as a vm compiled with debugging support?
VMMaker.oscog generates VM sources designed to be compiled in three different ways, Debug, Assert and Production. Debug is designed to enable asserts to check invariants and be compiled with no optimization for maximum debuggability. Assert is designed to enable asserts to check invariants and be compiled with limited optimization for faster assert checking. Production has asserts disabled (actually compiled-out) and be compiled with aggressive optimization, so it has limited debuggability (it should still contain debugging symbols).
So Assert and Debug are not quite the same and certainly if you're hunting for storage leaks an Assert VM will run much faster than a Debug VM. If you have a look at the Cog svn sources you'll find that the build scripts build all three kinds of VMs for all platforms.
Also can you point me to any documentation about the leak checker.
It's not well documented because it may change over time, but the -help flag on the VM should include this:
-leakcheck num check for leaks in the heap
and the meaning of num is a set of flags:
setCheckForLeaks: integerFlags " 0 = do nothing. 1 = check for leaks on fullGC (GCModeFull). 2 = check for leaks on scavenger (GCModeNewSpace). 4 = check for leaks on incremental (GCModeIncremental) 8 = check for leaks on become 16 = check for leaks on image segments" checkForLeaks := integerFlags
So once you have your assert VM try running your test case using
myvm -leakcheck 5 myimage.image
on the command line. You'll want to use a debugger to put breakpoints in the leak checker and you may need to learn about the VM's debug routines to try and figure out the cause of the leak once the leak checker finds it. Cheers, Andrei
On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda@gmail.com <mailto:eliot.miranda@gmail.com>> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <chisvasileandrei@gmail.com <mailto:chisvasileandrei@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 <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 <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 <https://github.com/pharo-project/pharo-vm.git> Commit: 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@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
-- _,,,^..^,,,_ best, Eliot
Indeed it seems related. Unfortunately neither Andrei or me could find the reason. We did what Eliot suggested us with leaks but we found none. At least right now we have 2 different ways of reproducing the crash (if it is the same bug). On Thu, Dec 3, 2015 at 7:50 AM, Max Leske <maxleske@gmail.com> wrote:
Hi,
I discovered a similar issue described in this issue https://pharo.fogbugz.com/f/cases/14165/ObsoleteTest-testFixObsoleteSharedPo.... Might be related.
Cheers, Max
On 24 Nov 2015, at 19:34, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Mon, Nov 23, 2015 at 4:57 PM, Andrei Chis <chisvasileandrei@gmail.com> wrote:
Hi Eliot,
Is an assert vm the same as a vm compiled with debugging support?
VMMaker.oscog generates VM sources designed to be compiled in three different ways, Debug, Assert and Production. Debug is designed to enable asserts to check invariants and be compiled with no optimization for maximum debuggability. Assert is designed to enable asserts to check invariants and be compiled with limited optimization for faster assert checking. Production has asserts disabled (actually compiled-out) and be compiled with aggressive optimization, so it has limited debuggability (it should still contain debugging symbols).
So Assert and Debug are not quite the same and certainly if you're hunting for storage leaks an Assert VM will run much faster than a Debug VM. If you have a look at the Cog svn sources you'll find that the build scripts build all three kinds of VMs for all platforms.
Also can you point me to any documentation about the leak checker.
It's not well documented because it may change over time, but the -help flag on the VM should include this:
-leakcheck num check for leaks in the heap
and the meaning of num is a set of flags:
setCheckForLeaks: integerFlags " 0 = do nothing. 1 = check for leaks on fullGC (GCModeFull). 2 = check for leaks on scavenger (GCModeNewSpace). 4 = check for leaks on incremental (GCModeIncremental) 8 = check for leaks on become 16 = check for leaks on image segments" checkForLeaks := integerFlags
So once you have your assert VM try running your test case using
myvm -leakcheck 5 myimage.image
on the command line. You'll want to use a debugger to put breakpoints in the leak checker and you may need to learn about the VM's debug routines to try and figure out the cause of the leak once the leak checker finds it.
Cheers, Andrei
On Nov 24, 2015 1:45 AM, "Eliot Miranda" <eliot.miranda@gmail.com> wrote:
Hi Andrei,
On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <
chisvasileandrei@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@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
-- _,,,^..^,,,_ best, Eliot
-- Mariano http://marianopeck.wordpress.com
participants (4)
-
Andrei Chis -
Eliot Miranda -
Mariano Martinez Peck -
Max Leske