Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promise sometimes is executed asynchronously #3527

Closed
p6rt opened this issue Sep 18, 2014 · 7 comments
Closed

Promise sometimes is executed asynchronously #3527

p6rt opened this issue Sep 18, 2014 · 7 comments

Comments

@p6rt
Copy link

p6rt commented Sep 18, 2014

Migrated from rt.perl.org#122803 (status was 'resolved')

Searchable as RT122803$

@p6rt
Copy link
Author

p6rt commented Sep 18, 2014

From @bbkr

On Rakudo Star 2014.08​:

$ perl6 -e 'my $job1 = start { say "started job 1"; sleep 4; say "finished job 1"}; my $job2 = start { say "started job 2"; sleep 4; say "finished job 2"}; await $job1, $job2'

In most cases I get expected result​:

started job 1
started job 2
... 4 seconds wait time
finished job 2
finished job 1

But sometimes promises are executed synchronously​:

started job 1
... 4 seconds wait time
finished job 1
started job 2
... 4 seconds wait time
finished job 2

Looks like they are assigned to the same thread despite other threads being unused.

My common-sense assumption was "If I spawn less Promises than available threads they will be ALL executed in parallel".
But this behavior randomly ruins script performance.

@p6rt
Copy link
Author

p6rt commented Oct 13, 2014

From @bbkr

On Rakudo Star 2014.09 with MoarVM promises are executed asynchronously. But i get randomly one of following errors​:

Unhandled exception​: non-invokable object is non-invokable
  at <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:throw​:4294967295)
from src/gen/m-CORE.setting​:19361 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:result​:113)
from src/gen/m-CORE.setting​:20720 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:await​:21)
from src/gen/m-CORE.setting​:20719 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:await​:25)
from src/gen/m-CORE.setting​:8185 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​::562)
from src/gen/m-CORE.setting​:8108 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:60)
from src/gen/m-CORE.setting​:8021 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​::308)
from src/gen/m-CORE.setting​:7992 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:60)
from src/gen/m-CORE.setting​:8508 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:gimme​:155)
from src/gen/m-CORE.setting​:8985 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:sink​:4294967295)
from src/gen/m-main.nqp​:41 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:MAIN​:40)
from src/gen/m-main.nqp​:35 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<mainline>​:197)
from <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<main>​:8)
from <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<entry>​:9)

Unhandled exception​: Cannot assign to a readonly variable or a value
  at <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:throw​:4294967295)
from src/gen/m-CORE.setting​:19361 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:result​:113)
from src/gen/m-CORE.setting​:20720 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:await​:21)
from src/gen/m-CORE.setting​:20719 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:await​:25)
from src/gen/m-CORE.setting​:8185 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​::562)
from src/gen/m-CORE.setting​:8108 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:60)
from src/gen/m-CORE.setting​:8021 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​::308)
from src/gen/m-CORE.setting​:7992 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:60)
from src/gen/m-CORE.setting​:8508 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:gimme​:155)
from src/gen/m-CORE.setting​:8985 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/CORE.setting.moarvm​:sink​:4294967295)
from src/gen/m-main.nqp​:41 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:MAIN​:40)
from src/gen/m-main.nqp​:35 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<mainline>​:197)
from <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<main>​:8)
from <unknown>​:1 (/Users/bbkr/Developer/rakudo-star-2014.09/install/languages/perl6/runtime/perl6.moarvm​:<entry>​:9)

@p6rt
Copy link
Author

p6rt commented Oct 13, 2014

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Oct 22, 2014

From @bbkr

New random error after running this code​:

$ perl6 --version
This is perl6 version 2014.09-258-g315ec62 built on MoarVM version 2014.09-54-g03ac9a7

Unhandled exception​: Cannot invoke this object (REPR​: P6opaque, cs = 0)
  at <unknown>​:1 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:throw​:4294967295)
from src/gen/m-CORE.setting​:20060 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:result​:113)
from src/gen/m-CORE.setting​:21545 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:await​:21)
from src/gen/m-CORE.setting​:8300 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​::562)
from src/gen/m-CORE.setting​:8223 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:60)
from src/gen/m-CORE.setting​:8136 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​::308)
from src/gen/m-CORE.setting​:8107 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:reify​:53)
from src/gen/m-CORE.setting​:8619 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:gimme​:155)
from src/gen/m-CORE.setting​:9135 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/CORE.setting.moarvm​:sink​:4294967295)
from src/gen/m-main.nqp​:41 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/perl6.moarvm​:MAIN​:40)
from src/gen/m-main.nqp​:35 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/perl6.moarvm​:<mainline>​:197)
from <unknown>​:1 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/perl6.moarvm​:<main>​:8)
from <unknown>​:1 (/Users/bbkr/.rakudobrew/moar-HEAD/install/languages/perl6/runtime/perl6.moarvm​:<entry>​:9)

@p6rt
Copy link
Author

p6rt commented Nov 14, 2014

From @bbkr

I am no longer getting this bug on​:

This is perl6 version 2014.10-114-gf8f6feb built on MoarVM version 2014.10-17-g05b25a6

Ticket should be marked as testneeded or just closed?

@p6rt
Copy link
Author

p6rt commented Jul 5, 2016

From @zoffixznet

Tests added​: Raku/roast@1bf2a1b1a5

@p6rt
Copy link
Author

p6rt commented Jul 5, 2016

@zoffixznet - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Jul 5, 2016
@p6rt p6rt added the testneeded label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant