[Vm-dev] Reproducible VM crash from commit 4749358 onwards

Eliot Miranda eliot.miranda at gmail.com
Thu Mar 15 22:53:53 UTC 2018


Hi Alistair,

    I can reproduce this on Mac OS too.  Thanks very much for the report.
Looking at it now.

On Thu, Mar 15, 2018 at 2:43 PM, Alistair Grant <akgrant0710 at gmail.com>
wrote:

>
> Hi Everyone,
>
> If I download a recent Pharo 64 bit image, e.g.:
>
> http://files.pharo.org/image/70/latest-64.zip
>
> And use a Pharo VM from commit:
>
> commit 4749358b5717b9a2f7e1d44f9baac48ed5d80431
> Author: Eliot Miranda <eliot.miranda at gmail.com>
> Date:   Wed Mar 7 15:11:21 2018 -0800
>
> or later, the following will reliably crash the VM:
>
>
> ./pharo Pharo7.0-64bit-a26248b.image eval "OCBytecodeGeneratorTest
> run: #testExample2"
>
>
> Earlier VMs don't crash.
>
> Stack dump below my signature.
>
> I'm a bit out of my depth beyond that...
>
> OS: Ubuntu 16.04 64 bit
>
>
> Cheers,
> Alistair
>
>
> Segmentation fault Thu Mar 15 22:39:13 2018
>
>
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo
> Pharo VM version: 5.0-201803072311  Thursday 15 March  22:35:05 CET
> 2018 c99 [Production Spur 64-bit VM]
> Built from: CoInterpreter VMMaker.oscog-eem.2347 uuid:
> 062614a7-e3da-4b30-997a-9568911b9ff5 Mar 15 2018
> With: StackToRegisterMappingCogit VMMaker.oscog-eem.2347 uuid:
> 062614a7-e3da-4b30-997a-9568911b9ff5 Mar 15 2018
> Revision: VM: 201803072311
> alistair at 59fbe1b42048:vmmaker/opensmalltalk-vm $ Date: Wed Mar 7
> 15:11:21 2018 -0800 $ Plugins: 201803072311
> alistair at 59fbe1b42048:vmmaker/opensmalltalk-vm $
> Build host: Linux 59fbe1b42048 4.13.0-36-generic #40~16.04.1-Ubuntu
> SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
> plugin path: /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311
> [default: /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/]
>
>
> C stack backtrace & registers:
> rax 0x13ab4880 rbx 0x13ab4710 rcx 0x13ab4938 rdx 0x13ab47c8
> rdi 0x13ab44e8 rsi 0x13ab44e8 rbp 0x13ab4658 rsp 0x13ab49f0
> r8  0x13ab3f28 r9  0x13ab3fe0 r10 0x13ab4098 r11 0x13ab4150
> r12 0x13ab4208 r13 0x13ab42c0 r14 0x13ab4378 r15 0x13ab4430
> rip 0x13ab4aa8
> *[0x7ffd13ab4aa8]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo[0x41aca2]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo[0x41c87e]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f78ad605390]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(lengthOf+0x0)[0x42aca0]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(
> cogselector+0x27)[0x49bf77]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo[0x45b15c]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo[0x45b444]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(
> interpret+0xb238)[0x469208]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo[0x46a4db]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(
> interpret+0x246)[0x45e216]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(main+0x2f8)[0x419f98]
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f78acf41830]
> /home/alistair/vmmaker/opensmalltalk-vm/products/
> cogspur64linuxht/lib/pharo/5.0-201803072311/pharo(_start+0x29)[0x41a309]
> [0x0]
>
>
> Smalltalk stack dump:
>     0x7ffd13ad4550 I CompiledMethod>valueWithReceiver:arguments:
> 0x1d7e790: a(n) CompiledMethod
>     0x7ffd13ad45a0 M OCBytecodeGeneratorTest>testExample2 0x1d78910:
> a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad1ea0 I OCBytecodeGeneratorTest(TestCase)>performTest
> 0x1d78910: a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad1ed0 M [] in OCBytecodeGeneratorTest(TestCase)>runCase
> 0x1d78910: a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad1f10 M BlockClosure>ensure: 0x1d7a450: a(n) BlockClosure
>     0x7ffd13ad1f58 I OCBytecodeGeneratorTest(TestCase)>runCase
> 0x1d78910: a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad1f90 M [] in
> TestExecutionEnvironment>runTestCaseSafelly: 0x1d78f28: a(n)
> TestExecutionEnvironment
>     0x7ffd13ad1fc0 M BlockClosure>on:do: 0x1d7a330: a(n) BlockClosure
>     0x7ffd13ad2008 M [] in
> TestExecutionEnvironment>runTestCaseSafelly: 0x1d78f28: a(n)
> TestExecutionEnvironment
>     0x7ffd13ad2038 M BlockClosure>on:do: 0x1d7a1a8: a(n) BlockClosure
>     0x7ffd13ad2088 I TestExecutionEnvironment>runTestCaseSafelly:
> 0x1d78f28: a(n) TestExecutionEnvironment
>     0x7ffd13ad20c8 M [] in TestExecutionEnvironment>runTestCase:
> 0x1d78f28: a(n) TestExecutionEnvironment
>     0x7ffd13ad2108 M BlockClosure>ensure: 0x1d7a0a8: a(n) BlockClosure
>     0x7ffd13ad2148 M [] in TestExecutionEnvironment>runTestCase:
> 0x1d78f28: a(n) TestExecutionEnvironment
>     0x7ffd13ad2188 M BlockClosure>ifCurtailed: 0x1d79fa8: a(n) BlockClosure
>     0x7ffd13ad21d0 I TestExecutionEnvironment>runTestCase: 0x1d78f28:
> a(n) TestExecutionEnvironment
>     0x7ffd13ad2218 M [] in DefaultExecutionEnvironment>runTestCase:
> 0x23f7c30: a(n) DefaultExecutionEnvironment
>     0x7ffd13ad2258 M [] in CurrentExecutionEnvironment
> class>activate:for: 0x2404bf8: a(n) CurrentExecutionEnvironment class
>     0x7ffd13ad2298 M BlockClosure>ensure: 0x1d79280: a(n) BlockClosure
>     0x7ffd13ad22e8 I CurrentExecutionEnvironment class>activate:for:
> 0x2404bf8: a(n) CurrentExecutionEnvironment class
>     0x7ffd13ad2338 I
> TestExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
> 0x1d78f28: a(n) TestExecutionEnvironment
>     0x7ffd13ad2388 I DefaultExecutionEnvironment>runTestCase:
> 0x23f7c30: a(n) DefaultExecutionEnvironment
>     0x7ffd13ad23d0 I CurrentExecutionEnvironment class>runTestCase:
> 0x2404bf8: a(n) CurrentExecutionEnvironment class
>     0x7ffd13ad2418 I OCBytecodeGeneratorTest(TestCase)>runCaseManaged
> 0x1d78910: a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad2450 M [] in TestResult>runCase: 0x1d78930: a(n) TestResult
>     0x7ffd13ad2480 M BlockClosure>on:do: 0x1d78d50: a(n) BlockClosure
>     0x7ffd13ad24d0 I TestResult>runCase: 0x1d78930: a(n) TestResult
>     0x7ffd13ad2510 M [] in OCBytecodeGeneratorTest(TestCase)>run
> 0x1d78910: a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad2550 M BlockClosure>ensure: 0x1d78c50: a(n) BlockClosure
>     0x7ffd13ad25a0 I OCBytecodeGeneratorTest(TestCase)>run 0x1d78910:
> a(n) OCBytecodeGeneratorTest
>     0x7ffd13ad0100 I OCBytecodeGeneratorTest class(TestCase
> class)>run: 0x36155c8: a(n) OCBytecodeGeneratorTest class
>     0x7ffd13ad0138 M UndefinedObject>DoIt 0x23e78e0: a(n) UndefinedObject
>     0x7ffd13ad0198 I OpalCompiler>evaluate 0x1c76f90: a(n) OpalCompiler
>     0x7ffd13ad01d8 I OpalCompiler(AbstractCompiler)>evaluate:
> 0x1c76f90: a(n) OpalCompiler
>     0x7ffd13ad0220 M [] in EvaluateCommandLineHandler>evaluate:
> 0x1c770e8: a(n) EvaluateCommandLineHandler
>     0x7ffd13ad0250 M BlockClosure>on:do: 0x1c77118: a(n) BlockClosure
>     0x7ffd13ad02a8 I EvaluateCommandLineHandler>evaluate: 0x1c770e8:
> a(n) EvaluateCommandLineHandler
>     0x7ffd13ad02f8 I EvaluateCommandLineHandler>evaluateArguments
> 0x1c770e8: a(n) EvaluateCommandLineHandler
>     0x7ffd13ad0338 I EvaluateCommandLineHandler>activate 0x1c770e8:
> a(n) EvaluateCommandLineHandler
>     0x7ffd13ad0378 I EvaluateCommandLineHandler
> class(CommandLineHandler class)>activateWith: 0x252d400: a(n)
> EvaluateCommandLineHandler class
>     0x7ffd13ad03b8 M [] in
> PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
> 0x55380b8: a(n) PharoCommandLineHandler
>     0x7ffd13ad03e8 M BlockClosure>on:do: 0x1c77390: a(n) BlockClosure
>     0x7ffd13ad0428 M
> PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
> 0x55380b8: a(n) PharoCommandLineHandler
>     0x7ffd13ad0478 I
> PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
> 0x55380b8: a(n) PharoCommandLineHandler
>     0x7ffd13ad04b8 I
> PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
> 0x55380b8: a(n) PharoCommandLineHandler
>     0x7ffd13ad04f0 M [] in
> PharoCommandLineHandler(BasicCommandLineHandler)>activate 0x55380b8:
> a(n) PharoCommandLineHandler
>     0x7ffd13ad0520 M BlockClosure>on:do: 0x1c77628: a(n) BlockClosure
>     0x7ffd13ad0560 M [] in
> PharoCommandLineHandler(BasicCommandLineHandler)>activate 0x55380b8:
> a(n) PharoCommandLineHandler
>     0x7ffd13ad05a0 I [] in BlockClosure>newProcess 0x1c77720: a(n)
> BlockClosure
>
> Most recent primitives
> stringHash:initialHash:
> basicNew
> successorSequences
> basicNew
> basicNew
> basicNew
> **StackOverflow**
> basicNew
> basicNew
> basicIdentityHash
> basicNew
> basicNew
> stringHash:initialHash:
> stringHash:initialHash:
> stringHash:initialHash:
> literal
> parameterAt:
> stringHash:initialHash:
> isInteger
> stringHash:initialHash:
> stringHash:initialHash:
> size
> findSubstring:in:startingAt:matchTable:
> indexOfAscii:inString:startingAt:
> indexOfAscii:inString:startingAt:
> stringHash:initialHash:
> stringHash:initialHash:
> *
> *
> size
> size
> copyWith:
> bitShift:
> bitShift:
> numTemps
> numTemps
> numTemps
> numTemps
> numTemps
> numTemps
> basicIdentityHash
> basicNew:
> size
> basicNew
> at:put:
> at:put:
> basicNew:
> stringHash:initialHash:
> compare:with:collated:
> perform:
> encodeNoTrailer
> encodeNoTrailer
> encodeNoTrailer
> encodeNoTrailer
> encodeNoTrailer
> encodeNoTrailer
> encodeNoTrailer
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew
> size
> at:put:
> at:put:
> at:put:
> at:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> collect:
> basicNew
> bitAnd:
> **PrimitiveFailure**
> bitAnd:
> **PrimitiveFailure**
> bitOr:
> **PrimitiveFailure**
> bitOr:
> **PrimitiveFailure**
> bitClear:
> new:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:put:
> stringHash:initialHash:
> objectAt:put:
> withArgs:executeMethod:
> basicNew
> class
> basicNew
> primUTCMicrosecondsClock
> *
> **PrimitiveFailure**
> digitMultiply:neg:
> basicNew
> primOffset
> digitCompare:
> //
> \\
> valueNoContextSwitch
> class
> class
> basicNew
> class
> class
> value
> class
> **StackOverflow**
> basicIdentityHash
> basicNew
> basicNew
> basicNew
> new:
> valueNoContextSwitch
> size
> new:
> size
> size
> at:put:
> basicNew:
> stackp:
> basicNew
> size
> at:
> at:
> at:
> at:
> psValueAt:put:
> psValueAt:put:
> psValueAt:put:
> psValueAt:put:
> psValueAt:put:
> primitiveResume
> repeat
> wait
> class
> millisecondClockValue
> basicNew
> signal
> primUTCMicrosecondsClock
> millisecondDelayDuration
> +
> primSignal:atUTCMicroseconds:
> wait
> wait
> class
> signal
> basicNew
> valueNoContextSwitch
> signal
> primUTCMicrosecondsClock
> at:put:
> at:
> at:put:
> primSignal:atUTCMicroseconds:
> wait
> wait
> valueNoContextSwitch
> wait
> ifCurtailed:
> basicNew
> value
> class
> valueNoContextSwitch
> perform:
> **StackOverflow**
> basicNew
> basicNew
> basicNew
> basicIdentityHash
> **StackOverflow**
> **StackOverflow**
> size
> indexOfAscii:inString:startingAt:
> at:
> at:
> at:
> basicIdentityHash
> value
> class
> linkTo:
> basicNew
> value
> basicIdentityHash
> stringHash:initialHash:
> stringHash:initialHash:
> size
> stringHash:initialHash:
> stringHash:initialHash:
> basicNew
> -
> class
> new:
> at:put:
> perform:withArguments:
> from:if:goto:otherwise:
> size
> size
> size
> at:
> ~=
> size
> at:put:
> basicNew:
> stringHash:initialHash:
> compare:with:collated:
> newMethod:header:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew
> size
> size
> size
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> from:if:goto:otherwise:
> from:if:goto:otherwise:
> from:if:goto:otherwise:
> objectAt:put:
> new:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:
> at:put:
> objectAt:
> at:put:
> class
> @
> withArgs:executeMethod:
>
> stack page bytes 8192 available headroom 5576 minimum unused headroom 6032
>
> (Segmentation fault)
>



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


More information about the Vm-dev mailing list