[Vm-dev] Image crashing on startup, apparently during GC

Eliot Miranda eliot.miranda at gmail.com
Fri Mar 23 20:52:44 UTC 2018


Hi Damien,

On Fri, Mar 23, 2018 at 12:38 PM, Damien Pollet <damien.pollet at gmail.com>
wrote:

>
> Here are the files (image and various outputs). Running with --leakcheck
> does mention a few object leaks (see output.txt);
>

Indeed the image is corrupt at start-up.  See below.


> I'm not sure where to get or how to build an assert VM.
>

When you build a phar. VM under build.macos64x64/pharo.cog.spur using the
mvm script (mvm -A) you produce an assert VM in PharoAssert.app.


> I also realized the VM I had was from this summer (the one that comes with
> a 70 image with zeroconf). The output files I include were produced by the
> VM at get.pharo.org/64/vmLatest70
>
> https://www.dropbox.com/s/y8yqjuzd9nsvy1u/clap-broken.tar.gz?dl=0
>
> On 20 March 2018 at 18:17, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>
>>
>> Hi Damien,
>>
>> On Tue, Mar 20, 2018 at 3:12 AM, Damien Pollet <damien.pollet at gmail.com>
>> wrote:
>>
>>>
>>> Hi, I have a Pharo image that crashes the VM on startup. The crash
>>> report below seems to incriminate GC. Should I make it available somewhere
>>> online? What's most convenient?
>>>
>>
>> Don't care.  Anywhere it can be downloaded from.  Also, try running with
>> -leakcheck 15, preferably in an assert VM and see if that gets you
>> additional information.
>>
>>
>>>
>>> Process:               Pharo [64892]
>>> Path:                  /Users/USER/*/Pharo.app/Contents/MacOS/Pharo
>>> Identifier:            org.pharo.Pharo
>>> Version:               5.0.201708271955 (5.0.201708271955)
>>>
>>
Right.  This VM is prior to the bug fixes in VMMaker.oscog-eem.2320:

Spur:
Fix a bad bug in SpurPlnningCompactor.  unmarkObjectsFromFirstFreeObject,
used when the compactor requires more than one pass due to insufficient
savedFirstFieldsSpace, expects the corpse of a moved object to be unmarked,
but copyAndUnmarkObject:to:bytes:firstField: only unmarked the target.
Unmarking the corpse before the copy unmarks both.  This fixes a crash with
ReleaseBuilder class>>saveAsNewRelease when non-use of cacheDuring: creates
lots of files, enough to push the system into the multi-pass regime.


Pharo urgently needs to upgrade the VM to one more up to date than 2017 08
27 (in fact more up-to-date than opensmalltalk/vm commit
0fe1e1ea108e53501a0e728736048062c83a66ce, Fri Jan 19 13:17:57 2018 -0800).
The bug that VMMaker.oscog-eem.2320 fixes can result in image corruption in
large images, and can occur (as it has here) at start-up, causing one's
work to be irretrievably lost.


> Code Type:             X86-64 (Native)
>>> Parent Process:        ??? [64888]
>>> Responsible:           Pharo [64892]
>>> User ID:               501
>>>
>>> Date/Time:             2018-03-19 20:27:03.906 +0100
>>> OS Version:            Mac OS X 10.13.3 (17D102)
>>> Report Version:        12
>>> Anonymous UUID:        6D022236-78DD-6676-117F-EADA56D5D1BE
>>>
>>> Sleep/Wake UUID:       AC9E4E55-3CDB-4B4F-A6B4-51ACB1177154
>>>
>>> Time Awake Since Boot: 28000 seconds
>>> Time Since Wake:       6500 seconds
>>>
>>> System Integrity Protection: enabled
>>>
>>> Crashed Thread:        0  Dispatch queue: com.apple.main-thread
>>>
>>> Exception Type:        EXC_BAD_ACCESS (SIGABRT)
>>> Exception Codes:       KERN_INVALID_ADDRESS at 0x000000012b67c0b0
>>> Exception Note:        EXC_CORPSE_NOTIFY
>>>
>>> VM Regions Near 0x12b67c0b0:
>>>    VM_ALLOCATE            000000011adfc000-00000001259fc000 [172.0M]
>>> rw-/rwx SM=PRV
>>> -->
>>>    STACK GUARD            0000700005613000-0000700005614000 [    4K]
>>> ---/rwx SM=NUL  stack guard for thread 1
>>>
>>> Application Specific Information:
>>> abort() called
>>>
>>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>>> 0   libsystem_kernel.dylib         0x00007fff53fbde3e __pthread_kill + 10
>>> 1   libsystem_pthread.dylib        0x00007fff540fc150 pthread_kill + 333
>>> 2   libsystem_c.dylib              0x00007fff53f1a312 abort + 127
>>> 3   org.pharo.Pharo                0x0000000104ed8997 sigsegv + 190
>>> 4   libsystem_platform.dylib       0x00007fff540eff5a _sigtramp + 26
>>> 5   ???                            000000000000000000 0 + 0
>>> 6   org.pharo.Pharo                0x0000000104e73558 markObjects + 464
>>> 7   org.pharo.Pharo                0x0000000104e72d40 fullGC + 72
>>> 8   org.pharo.Pharo                0x0000000104e92dea primitiveFullGC +
>>> 45
>>> 9   org.pharo.Pharo                0x0000000104e52425 interpret + 26715
>>> 10  org.pharo.Pharo                0x0000000104e5c7f6
>>> enterSmalltalkExecutiveImplementation + 152
>>> 11  org.pharo.Pharo                0x0000000104e4be6c interpret + 674
>>> 12  org.pharo.Pharo                0x0000000104ed9cc1
>>> -[sqSqueakMainApplication runSqueak] + 394
>>> 13  com.apple.Foundation           0x00007fff2e6d696c
>>> __NSFirePerformWithOrder + 360
>>> 14  com.apple.CoreFoundation       0x00007fff2c579127
>>> __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
>>> 15  com.apple.CoreFoundation       0x00007fff2c57904f
>>> __CFRunLoopDoObservers + 527
>>> 16  com.apple.CoreFoundation       0x00007fff2c55b6a8 __CFRunLoopRun +
>>> 1240
>>> 17  com.apple.CoreFoundation       0x00007fff2c55af43
>>> CFRunLoopRunSpecific + 483
>>> 18  com.apple.HIToolbox            0x00007fff2b872e26
>>> RunCurrentEventLoopInMode + 286
>>> 19  com.apple.HIToolbox            0x00007fff2b872a9f
>>> ReceiveNextEventCommon + 366
>>> 20  com.apple.HIToolbox            0x00007fff2b872914
>>> _BlockUntilNextEventMatchingListInModeWithFilter + 64
>>> 21  com.apple.AppKit               0x00007fff29b3df5f _DPSNextEvent +
>>> 2085
>>> 22  com.apple.AppKit               0x00007fff2a2d3b4c
>>> -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
>>> + 3044
>>> 23  com.apple.AppKit               0x00007fff29b32d6d -[NSApplication
>>> run] + 764
>>> 24  com.apple.AppKit               0x00007fff29b01f1a NSApplicationMain
>>> + 804
>>>
>>> --
>>> Damien Pollet
>>> type less, do more [ | ] http://people.untyped.org/damien.pollet
>>>
>>>
>>
>>
>> --
>> _,,,^..^,,,_
>> best, Eliot
>>
>>
>
>
> --
> Damien Pollet
> type less, do more [ | ] http://people.untyped.org/damien.pollet
>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180323/09a59ee4/attachment-0001.html>


More information about the Vm-dev mailing list