[squeak-dev] The Trunk: System-cmm.602.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Oct 18 10:46:26 UTC 2013


Note that the inst var swapping is a dirty hack...
The obsolete CompiledMethod on the stack will index the wrong inst. var.
after the swapping, but since size was unused and nil, and since the code
was robust to such nil, it worked.
But don't take this hack for a general recipe!


2013/10/18 Frank Shearar <frank.shearar at gmail.com>

> Hooray for Chris and Nicolas!
>
> frank
>
> On 17 October 2013 01:45, Chris Muller <asqueaker at gmail.com> wrote:
> > On Wed, Oct 16, 2013 at 4:07 PM, Nicolas Cellier
> > <nicolas.cellier.aka.nice at gmail.com> wrote:
> >> To reproduce, just load System-cmm.602 from a MC browser and it quits
> quite
> >> fast...
> >> From assert cog vm, here is the end of the report:
> >>
> >> **IncrementalGC**
> >> **FullGC**
> >>
> >> stack page bytes 2048 available headroom 1252 minimum unused headroom
> 724
> >>
> >>     (sweep failed to find exact end of memory)
> >> Abort trap
> >>
> >> and the beginning is:
> >>
> >> sweep failed to find exact end of memory
> >>
> >> Squeak VM version: 4.0 4.0.2778 Mac OS X built on Aug  8 2013 07:43:35
> >> Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) [Assert VM]
> >> Built from: CoInterpreter * VMMaker.oscog-nice.336 uuid:
> >> 409e5084-5ffa-466c-a844-2473662c1ebf Sep  8 2013
> >> With: StackToRegisterMappingCogit * VMMaker.oscog-nice.336 uuid:
> >> 409e5084-5ffa-466c-a844-2473662c1ebf Sep  8 2013
> >> Revision: VM: r2778 http://squeakvm.org/svn/squeak/branches/Cog
> >> Plugins: r2545
> http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
> >>
> >>
> >> C stack backtrace:
> >> 0   Squeak                              0x0004deec reportStackState +
> 147
> >> 1   Squeak                              0x0004e26b error + 31
> >> 2   Squeak                              0x000b43ec fullGC + 897
> >> 3   Squeak                              0x000b4cd5
> sufficientSpaceAfterGC +
> >> 64
> >> 4   Squeak                              0x000b6094 primitiveNewWithArg
> + 147
> >> 5   ???                                 0x11acc789 0x0 + 296535945
> >> 6   Squeak                              0x000c9795 interpret + 32627
> >> 7   Squeak                              0x000429dd
> EventLoopEventHandler +
> >> 28
> >> 8   HIToolbox                           0x911eac2f
> >>
> _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec
> >> + 1567
> >> 9   HIToolbox                           0x911e9ef6
> >>
> _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec
> >> + 411
> >> 10  HIToolbox                           0x911e9d55
> >> SendEventToEventTargetWithOptions + 58
> >> 11  HIToolbox                           0x9121ea24
> >>
> _ZL29ToolboxEventDispatcherHandlerP25OpaqueEventHandlerCallRefP14OpaqueEventRefPv
> >> + 3006
> >> 12  HIToolbox                           0x911eb080
> >>
> _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec
> >> + 2672
> >> 13  HIToolbox                           0x911e9ef6
> >>
> _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec
> >> + 411
> >> 14  HIToolbox                           0x9120c7f3
> SendEventToEventTarget +
> >> 52
> >> 15  HIToolbox                           0x91395c17
> ToolboxEventDispatcher +
> >> 86
> >> 16  HIToolbox                           0x91395d4f
> RunApplicationEventLoop +
> >> 243
> >> 17  Squeak                              0x00040e61
> >> RunApplicationEventLoopWithSqueak + 185
> >> 18  Squeak                              0x0004de37 main + 1079
> >> 19  Squeak                              0x000027be start + 54
> >>
> >>
> >> Smalltalk stack dump:
> >> 0xbffeb058 M Array(SequenceableCollection)>select: 0x13fe1d04: a(n)
> Array
> >> 0xbffeb074 M MCFileRepositoryInspector>versionNamesForSelectedPackage
> >> 0x135d28b0: a(n) MCFileRepositoryInspector
> >> 0xbffeb094 M
> MCFileRepositoryInspector(MCRepositoryInspector)>versionList
> >> 0x135d28b0: a(n) MCFileRepositoryInspector
> >>
> >> Squeak stack has no importance, I just clicked somewhere in a MC trunk
> repo
> >> inspector...
> >>
> >> It sounds like memory corruption...
> >>
> >> What it interesting is that loading this mcz also blow a 4.10.10
> interpreter
> >> VM...
> >>
> >> I just fail to see what could cause such a violent ... Ah WAIT WAIT
> WAIT:
> >>
> >> MCPackageLoader>>basicLoad invoke RecentMessages default suspendWhile:
> [ ]
> >> suspendWhile is using the last instance variable... which is being
> shifted
> >> inside the suspendWhile: []...
> >> So when we're back from the block, it's not long before die...
> >
> > Ahh!!  THANK YOU and compliments for an awesome diagnosis!  I was
> > leisurely digging for a couple of hours today, I was stuck thinking my
> > changes were benign.  My image updated fine after I committed it.
> >
> > I guess I found a tricky land mine!
> >
> >> At least i'm happy it's not related to CharacterScanner stuff.
> >
> > My bad.  :)  I'll post a fix.
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20131018/26ca4d1b/attachment.htm


More information about the Squeak-dev mailing list