So, an update on this one.

The first set of ASAN barf (involving rope flattening) and SEGVs were fixed 
last month by 5224878b2869. Now it can run for 10,000 iterations without 
trouble. Well, until it can't.

Seems that the Cannot Invoke thingy happens about 1 time in a few hundred 
thousand iterations:

jnthn@lviv:~/dev/rakudo$ seq 20 | xargs -Iz ./perl6-m -e 'await (for ^10000 { 
start ‘/etc/hostname’.IO ~~ :e })'
Cannot invoke this object (REPR: P6opaque; Scalar)
  in block <unit> at -e line 1

jnthn@lviv:~/dev/rakudo$ seq 20 | xargs -Iz ./perl6-m -e 'await (for ^10000 { 
start ‘/etc/hostname’.IO ~~ :e })'

jnthn@lviv:~/dev/rakudo$ seq 20 | xargs -Iz ./perl6-m -e 'await (for ^10000 { 
start ‘/etc/hostname’.IO ~~ :e })'

jnthn@lviv:~/dev/rakudo$ seq 20 | xargs -Iz ./perl6-m -e 'await (for ^10000 { 
start ‘/etc/hostname’.IO ~~ :e })'
Cannot invoke this object (REPR: P6opaque; Scalar)
  in block <unit> at -e line 1

Fun debugging awaits...

Finally, the last set of ASAN barfage is about global destruction (as mentioned 
in the stack trace). This does want looking in to, but only happens when we 
pass the --full-cleanup flag. Thus, it's not related to the original problem, 
and won't happen when not running under valgrind (since we just leave cleanup 
to the OS in that case, which can no doubt do it far faster than we can).

So, to resolve this issue we should:

1) Hunt down the cause of the rare invoke thing.
2) Add a spectest.

/jnthn

Reply via email to