Reproducible VM crash with excessive garbage collection

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Reproducible VM crash with excessive garbage collection

Max Leske
 
Hi.

I may have discovered a bug in the PharoVM (stable and latest), which may have been around for at least two years (I had a very similiar situation about two years ago with Fuel).

I have a test that fails when a particular method contains “3 timesRepeat: [ Smalltalk garbageCollect ]”. In order to be sure that it’ not the #timesRepeat message that’s causing the crash, I replaced that with multiple “Smalltalk garbageCollect” sends.

The test I’m talking about ObsoleteTest>>testFixObsoleteSharedPools. To make the test crash the VM, simply add a couple of garbageCollects at the end of SmalltalkImage>>fixObsoleteSharedPools. I tried to come up with a little script to demonstrate the issue but I can only reproduce the problem with Nautilus (which makes me suspect that the problem is related to Nautilus).

Steps to reproduce:
1. get a fresh image and  the latest vm:
curl get.pharo.org/40+vmLastest | bash && ./pharo-ui Pharo.image
2. open the class browser and navigate to SmalltalkImage>>fixObsoleteSharedPools
3. Append ten “self garbageCollect” statements to the method.
4. navigate to ObsoleteTest>>testFixObsoleteSharedPools and click on the test runner icon to the left of the method name.

I can reproduce this with the Mac VM (OS X 10.10) as well as with the linux VM (Ubuntu 12.04.1).



Cheers,
Max
Reply | Threaded
Open this post in threaded view
|

Re: Reproducible VM crash with excessive garbage collection

Stephan Eggermont-3
 
Hi Max,

Non-reproducible on iMac 11.1, 10.9.4 (40371)

Stephan
Reply | Threaded
Open this post in threaded view
|

Re: Reproducible VM crash with excessive garbage collection

Stephan Eggermont-3
In reply to this post by Max Leske
 
Non-reproducible on MBA 10.7.5

Stephan
Reply | Threaded
Open this post in threaded view
|

Re: Reproducible VM crash with excessive garbage collection

Nicolai Hess
In reply to this post by Max Leske
 
2014-11-16 17:46 GMT+01:00 Max Leske <[hidden email]>:
 
Hi.

I may have discovered a bug in the PharoVM (stable and latest), which may have been around for at least two years (I had a very similiar situation about two years ago with Fuel).

I have a test that fails when a particular method contains “3 timesRepeat: [ Smalltalk garbageCollect ]”. In order to be sure that it’ not the #timesRepeat message that’s causing the crash, I replaced that with multiple “Smalltalk garbageCollect” sends.

The test I’m talking about ObsoleteTest>>testFixObsoleteSharedPools. To make the test crash the VM, simply add a couple of garbageCollects at the end of SmalltalkImage>>fixObsoleteSharedPools. I tried to come up with a little script to demonstrate the issue but I can only reproduce the problem with Nautilus (which makes me suspect that the problem is related to Nautilus).

Steps to reproduce:
1. get a fresh image and  the latest vm:
curl get.pharo.org/40+vmLastest | bash && ./pharo-ui Pharo.image
2. open the class browser and navigate to SmalltalkImage>>fixObsoleteSharedPools
3. Append ten “self garbageCollect” statements to the method.
4. navigate to ObsoleteTest>>testFixObsoleteSharedPools and click on the test runner icon to the left of the method name.

I can reproduce this with the Mac VM (OS X 10.10) as well as with the linux VM (Ubuntu 12.04.1).



Cheers,
Max


Can not reproduce this on linux with may own vm build from an older version (on ubuntu 10.04)

/home/nicolai/devel/pharo-vm/pharo-vm/results/pharo
NBCoInterpreter NativeBoost-CogPlugin-HolgerHansPeterFreyther.21 uuid: e0df6e2d-5694-40e2-8035-dc217200b424 Oct 14 2014
NBCogit NativeBoost-CogPlugin-HolgerHansPeterFreyther.21 uuid: e0df6e2d-5694-40e2-8035-dc217200b424 Oct 14 2014
https://github.com/pharo-project/pharo-vm.git Commit: 81b5d19917dcb78f22482a780deec48c53738396 Date: 2014-09-20 14:36:18 +0200 By: Esteban Lorenzano <[hidden email]>

Unix built on Oct 14 2014 20:55:01 Compiler: 4.4.3
VMMaker versionString https://github.com/pharo-project/pharo-vm.git Commit: 81b5d19917dcb78f22482a780deec48c53738396 Date: 2014-09-20 14:36:18 +0200 By: Esteban Lorenzano <[hidden email]>
NBCoInterpreter NativeBoost-CogPlugin-HolgerHansPeterFreyther.21 uuid: e0df6e2d-5694-40e2-8035-dc217200b424 Oct 14 2014
NBCogit NativeBoost-CogPlugin-HolgerHansPeterFreyther.21 uuid: e0df6e2d-5694-40e2-8035-dc217200b424 Oct 14 2014


reproducable on ubuntu 12.? 64 bit (32 bit latest vm):
---------------
/home/nicolai/Downloads/pharo-vm/pharo
NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Nov 13 2014
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Nov 13 2014
https://github.com/pharo-project/pharo-vm.git Commit: 27d505ceffde98d854ed887903a2a94908637a49 Date: 2014-11-04 12:04:48 +0100 By: Esteban Lorenzano <[hidden email]> Jenkins build #14876

Unix built on Nov 13 2014 00:43:51 Compiler: 4.6.3
VMMaker versionString https://github.com/pharo-project/pharo-vm.git Commit: 27d505ceffde98d854ed887903a2a94908637a49 Date: 2014-11-04 12:04:48 +0100 By: Esteban Lorenzano <[hidden email]> Jenkins build #14876
NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Nov 13 2014
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Nov 13 2014


both with image 40370
Reply | Threaded
Open this post in threaded view
|

Re: Reproducible VM crash with excessive garbage collection

Ben Coman
In reply to this post by Max Leske

Max Leske wrote:

>  
>
>
> ------------------------------------------------------------------------
>
> Hi.
>
> I may have discovered a bug in the PharoVM (stable and latest), which
> may have been around for at least two years (I had a very similiar
> situation about two years ago with Fuel).
>
> I have a test that fails when a particular method contains “3
> timesRepeat: [ Smalltalk garbageCollect ]”. In order to be sure that it’
> not the #timesRepeat message that’s causing the crash, I replaced that
> with multiple “Smalltalk garbageCollect” sends.
>
> The test I’m talking about ObsoleteTest>>testFixObsoleteSharedPools. To
> make the test crash the VM, simply add a couple of garbageCollects at
> the end of SmalltalkImage>>fixObsoleteSharedPools. I tried to come up
> with a little script to demonstrate the issue but I can only reproduce
> the problem with Nautilus (which makes me suspect that the problem is
> related to Nautilus).
>
> Steps to reproduce:
> 1. get a fresh image and  the latest vm:
> curl get.pharo.org/40+vmLastest <http://get.pharo.org/40+vmLastest> |
> bash && ./pharo-ui Pharo.image
> 2. open the class browser and navigate to
> SmalltalkImage>>fixObsoleteSharedPools
> 3. Append ten “self garbageCollect” statements to the method.
> 4. navigate to ObsoleteTest>>testFixObsoleteSharedPools and click on the
> test runner icon to the left of the method name.
>
> I can reproduce this with the Mac VM (OS X 10.10) as well as with the
> linux VM (Ubuntu 12.04.1).
>
> I’ve opened an issue for
> this: https://pharo.fogbugz.com/f/cases/14478/Reproducible-VM-crash-with-excessive-garbage-collection
>
>
> Cheers,
> Max

I reported similar here..
http://lists.squeakfoundation.org/pipermail/vm-dev/2014-August/016364.html
https://pharo.fogbugz.com/default.asp?13822