On Wed Aug 31 04:31:25 2016, nicholas wrote:
> "my" machine has almost as many cores. I can get it to bomb at times.
> (ASAN makes no comment)
> 
Yeah, I'm guessing it's a slightly higher level data race due to mis-code-gen 
rather than any kind of memory corruption.

> > Any chance you could:
> >
> > 1) Run it with `--ll-exception`
> > 2) Stick a CATCH block in the sub that does `.backtrace.full.say` or
> > similar, to see if we get any more details output there
> 
> You mean like this?
> 
> sub what-is {
>     CATCH { .backtrace.full.say }
>     return $^num.is-prime ?? "$num is prime" !! "$num is not prime";
> }
> my @results;
> for 3¹²³⁴⁵ … 3¹²³⁴⁵+127 -> $n {
>     @results.push: start what-is $n;
> }
> print await @results;
> 
Yes, that's what I meant.

> I got this:
> 
> Cannot invoke this object (REPR: Null; VMNull)
>   in block <unit> at 129120.pl line 9
> 
> 
> Line 9 is `print await @results;`
> 
> 
> What do I need to do better, to get actual useful details?
> 
Well, that's information in and that it means the exception is not happening 
inside of the sub `what-is`. Unfortunately, the only thing between the two is 
the stuff in CORE.setting implementing promises and scheduling, which means 
it's probably a very occasional race somewhere in there. Probably instrumenting 
the bit of MoarVM that spits out that error to dump a backtrace before throwing 
is the easiest next thing to do.

I'll see if I can recreate it locally outside of my VM.

/jnthn

Reply via email to