[Vm-dev] corruption of PC in context objects or not (?)

Eliot Miranda eliot.miranda at gmail.com
Sat Sep 26 21:24:43 UTC 2020


Hi Andrei,

   fixed in commit 561b06530bbaed5f19e9d7f077a7df9eb3a8d236,
VMMaker.oscog-eem.2824


On Fri, Sep 11, 2020 at 8:58 AM Andrei Chis <chisvasileandrei at gmail.com>
wrote:

>
> Hi,
>
> We are getting often crashes on our CI when calling `Context>copyTo:` in a
> GT image and a vm build from https://github.com/feenkcom/opensmalltalk-vm.
>
> To sum up during `Context>copyTo:`, `Object>>#copy` is called on a
> context leading to a segmentation fault crash. Looking at that context in
> lldb the pc looks off.  It has the value `0xfffffffffea7f6e1`.
>
>  (lldb) call (void *) printOop(0x1206b6990)
>     0x1206b6990: a(n) Context
>      0x1206b6a48 0xfffffffffea7f6e1                0x9        0x1146b2e08        0x1206b6b00
>      0x1206b6b28        0x1206b6b50
>
>
> Can this indicate some corruption or is it expected to have such values?
> `CoInterpreter>>ensureContextHasBytecodePC:` has code that also handles
> negative values for the pc which suggests that this might be expected.
>
> Changing `Context>copyTo:` by adding a `self pc` before calling `self
> copy` leads to no more crashes. Not sure if there is a reason for that or
> just plain luck.
>
> A simple reduced stack is below (more details in this issue [1]). The
> crash happens always with contexts reified as objects (in this case
> 0x1206b6990 s [] in GtExamplesCommandLineHandler>runPackages).
> Could this suggest some kind of issue in the vm when reifying contexts, or
> just some other problem with memory corruption?
>
>
>  0x7ffeefbb4380 M Context(Object)>copy 0x1206b6990: a(n) Context
>     0x7ffeefbb43b8 M Context>copyTo: 0x1206b6990: a(n) Context
>     0x7ffeefbb4400 M Context>copyTo: 0x1206b5ae0: a(n) Context
>   ...
>     0x7ffeefba6078 M Context>copyTo: 0x110548b28: a(n) Context
>     0x7ffeefba60d0 I Context>copyTo: 0x110548a70: a(n) Context
>     0x7ffeefba6118 I MessageNotUnderstood(Exception)>freezeUpTo: 0x110548a20: a(n) MessageNotUnderstood
>     0x7ffeefba6160 I MessageNotUnderstood(Exception)>freeze 0x110548a20: a(n) MessageNotUnderstood
>     0x7ffeefba6190 M [] in GtExampleEvaluator>result 0x110544fb8: a(n) GtExampleEvaluator
>     0x7ffeefba61c8 M BlockClosure>cull: 0x110545188: a(n) BlockClosure
>     0x7ffeefba6208 M Context>evaluateSignal: 0x110548c98: a(n) Context
>     0x7ffeefba6240 M Context>handleSignal: 0x110548c98: a(n) Context
>     0x7ffeefba6278 M Context>handleSignal: 0x110548be0: a(n) Context
>     0x7ffeefba62b0 M MessageNotUnderstood(Exception)>signal 0x110548a20: a(n) MessageNotUnderstood
>     0x7ffeefba62f0 M GtDummyExamplesWithInheritanceSubclassB(Object)>doesNotUnderstand: exampleH 0x1105487d8: a(n) GtDummyExamplesWithInheritanceSubclassB
>     0x7ffeefba6328 M GtExampleEvaluator>primitiveProcessExample:withEvaluationContext: 0x110544fb8: a(n) GtExampleEvaluator
>  ...
>     0x7ffeefbe64d0 M [] in GtExamplesHDReport class(HDReport class)>runPackages: 0x1145e41c8: a(n) GtExamplesHDReport class
>     0x7ffeefbe6520 M [] in Set>collect: 0x1206b5ab0: a(n) Set
>     0x7ffeefbe6568 M Array(SequenceableCollection)>do: 0x1206b5c50: a(n) Array
>        0x1206b5b98 s Set>collect:
>        0x1206b5ae0 s GtExamplesHDReport class(HDReport class)>runPackages:
>        0x1206b6990 s [] in GtExamplesCommandLineHandler>runPackages
>        0x1206b6a48 s BlockClosure>ensure:
>        0x1206b6b68 s UIManager class>nonInteractiveDuring:
>        0x1206b6c48 s GtExamplesCommandLineHandler>runPackages
>        0x1206b6d98 s GtExamplesCommandLineHandler>activate
>        0x1206b75d0 s GtExamplesCommandLineHandler class(CommandLineHandler class)>activateWith:
>        0x1207d2f00 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
>        0x1207e6620 s BlockClosure>on:do:
>        0x1207f7ab8 s PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
>        0x120809d40 s PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
>        0x12082ca60 s PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
>        0x120789938 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
>        0x1207a83e0 s BlockClosure>on:do:
>        0x1207b57a0 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
>        0x1207bf830 s [] in BlockClosure>newProcess
>
> Cheers,
> Andrei
>
>
> [1] https://github.com/feenkcom/gtoolkit/issues/1440
>
>

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


More information about the Vm-dev mailing list