Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-47) was last changed on 27-Sep-2017 15:19 by John Thywissen  

This page was created on 27-Sep-2010 12:18 by JohnThywissen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 3 changed one line
This is a list of reported problems in the pre-release version of OrcScala (to be released as Orc 2.0 later this year). Edit this page to add a problem report.
This was a list of reported problems in the pre-release version of OrcScala. This list is no longer used.
At line 5 changed 5 lines
%%invisible
---> To add a problem:
---> Go to the invisible block below the other open problems
---> Copy the template to above the invisible block
%%
%%warning Report problems at the [Orc Github project|https://github.com/orc-lang/orc/issues], not here. %%
At line 13 removed 87 lines
!! 11: {{orc.run.extensions.~ManyActorBasedScheduler}} causes a {{~ClassCastException}}
| __Reporter:__ | John Thywissen
| __Report date-time:__ | 2011-01-22 19:17
| __Orc version:__ | 2.0.0 rev. 2382
! Code:
While running the Orc7 test case. Appears to be a heisenbug.
! Actual output:
{{{
orc.run.extensions.ManyActorBasedScheduler$Worker@5176477b: caught java.lang.ClassCastException: java.lang.Thread cannot be cast to scala.concurrent.forkjoin.ForkJoinWorkerThread
java.lang.ClassCastException: java.lang.Thread cannot be cast to scala.concurrent.forkjoin.ForkJoinWorkerThread
at scala.concurrent.forkjoin.ForkJoinTask.fork(ForkJoinTask.java:481)
at scala.actors.scheduler.ForkJoinScheduler.executeFromActor(ForkJoinScheduler.scala:121)
at scala.actors.scheduler.DelegatingScheduler$class.executeFromActor(DelegatingScheduler.scala:42)
at scala.actors.Scheduler$.executeFromActor(Scheduler.scala:21)
at scala.actors.Actor$class.scheduleActor(Actor.scala:628)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scheduleActor(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$class.resumeReceiver(Reactor.scala:131)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$ReplyReactor$$super$resumeReceiver(ManyActorBasedScheduler.scala:77)
at scala.actors.ReplyReactor$class.resumeReceiver(ReplyReactor.scala:69)
at orc.run.extensions.ManyActorBasedScheduler$Worker.resumeReceiver(ManyActorBasedScheduler.scala:77)
at scala.actors.Actor$class.searchMailbox(Actor.scala:478)
at orc.run.extensions.ManyActorBasedScheduler$Worker.searchMailbox(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$class.react(Reactor.scala:203)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$ReplyReactor$$super$react(ManyActorBasedScheduler.scala:77)
at scala.actors.ReplyReactor$class.react(ReplyReactor.scala:109)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$Actor$$super$react(ManyActorBasedScheduler.scala:77)
at scala.actors.Actor$class.react(Actor.scala:606)
at orc.run.extensions.ManyActorBasedScheduler$Worker.react(ManyActorBasedScheduler.scala:77)
at orc.run.extensions.ManyActorBasedScheduler$Worker$$anonfun$act$1.apply(ManyActorBasedScheduler.scala:84)
at orc.run.extensions.ManyActorBasedScheduler$Worker$$anonfun$act$1.apply(ManyActorBasedScheduler.scala:84)
at scala.actors.Reactor$class.seq(Reactor.scala:280)
at orc.run.extensions.ManyActorBasedScheduler$Worker.seq(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$$anon$3.andThen(Reactor.scala:258)
at scala.actors.Combinators$class.loop(Combinators.scala:26)
at orc.run.extensions.ManyActorBasedScheduler$Worker.loop(ManyActorBasedScheduler.scala:77)
at scala.actors.Combinators$$anonfun$loop$1.apply(Combinators.scala:26)
at scala.actors.Combinators$$anonfun$loop$1.apply(Combinators.scala:26)
at scala.actors.Reactor$$anonfun$seq$1$$anonfun$apply$1.apply(Reactor.scala:277)
at scala.actors.ReactorTask.run(ReactorTask.scala:34)
at scala.actors.threadpool.ThreadPoolExecutor.runWorker(Unknown Source)
at scala.actors.threadpool.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:680)
}}}
! Reporter's comments:
Apparently, this comes when one "uses the lightweight react when using the thread proxy actor".
----
%%invisible
---> Copy the template below, except for the "% %" at the bottom
---> Insert the copy ABOVE the "% % invisible" line (up 2 lines)
---> Replace text in the form of <<blah>> with real values
!! <<Problem title which briefly and uniquely identifies a problem report>>
| __Reporter:__ | <<Your Name>>
| __Report date-time:__ | <<YYYY-MM-DD HH:MM>>
| __Orc version:__ | <<In Eclipse, choose Run > Run Configurations > Orc program. Copy the version info. in the first line of "runtime engine version".>>
! Code:
[{orc runnable='false'
<<Minimal complete example Orc code demonstrating problem.>>
}]
! Actual output:
{{{
<<Cut-and-paste any relevant Orc message or output produced>>
}}}
! Reporter's comments:
<<Free-form notes by reporter>>
----
%%
----
At line 425 added 60 lines
!! %%strike 11: {{orc.run.extensions.~ManyActorBasedScheduler}} causes a {{~ClassCastException}} %% (fixed)
| __Reporter:__ | John Thywissen
| __Report date-time:__ | 2011-01-22 19:17
| __Orc version:__ | 2.0.0 rev. 2382
! Code:
While running the Orc7 test case. Appears to be a heisenbug.
! Actual output:
{{{
orc.run.extensions.ManyActorBasedScheduler$Worker@5176477b: caught java.lang.ClassCastException: java.lang.Thread cannot be cast to scala.concurrent.forkjoin.ForkJoinWorkerThread
java.lang.ClassCastException: java.lang.Thread cannot be cast to scala.concurrent.forkjoin.ForkJoinWorkerThread
at scala.concurrent.forkjoin.ForkJoinTask.fork(ForkJoinTask.java:481)
at scala.actors.scheduler.ForkJoinScheduler.executeFromActor(ForkJoinScheduler.scala:121)
at scala.actors.scheduler.DelegatingScheduler$class.executeFromActor(DelegatingScheduler.scala:42)
at scala.actors.Scheduler$.executeFromActor(Scheduler.scala:21)
at scala.actors.Actor$class.scheduleActor(Actor.scala:628)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scheduleActor(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$class.resumeReceiver(Reactor.scala:131)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$ReplyReactor$$super$resumeReceiver(ManyActorBasedScheduler.scala:77)
at scala.actors.ReplyReactor$class.resumeReceiver(ReplyReactor.scala:69)
at orc.run.extensions.ManyActorBasedScheduler$Worker.resumeReceiver(ManyActorBasedScheduler.scala:77)
at scala.actors.Actor$class.searchMailbox(Actor.scala:478)
at orc.run.extensions.ManyActorBasedScheduler$Worker.searchMailbox(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$class.react(Reactor.scala:203)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$ReplyReactor$$super$react(ManyActorBasedScheduler.scala:77)
at scala.actors.ReplyReactor$class.react(ReplyReactor.scala:109)
at orc.run.extensions.ManyActorBasedScheduler$Worker.scala$actors$Actor$$super$react(ManyActorBasedScheduler.scala:77)
at scala.actors.Actor$class.react(Actor.scala:606)
at orc.run.extensions.ManyActorBasedScheduler$Worker.react(ManyActorBasedScheduler.scala:77)
at orc.run.extensions.ManyActorBasedScheduler$Worker$$anonfun$act$1.apply(ManyActorBasedScheduler.scala:84)
at orc.run.extensions.ManyActorBasedScheduler$Worker$$anonfun$act$1.apply(ManyActorBasedScheduler.scala:84)
at scala.actors.Reactor$class.seq(Reactor.scala:280)
at orc.run.extensions.ManyActorBasedScheduler$Worker.seq(ManyActorBasedScheduler.scala:77)
at scala.actors.Reactor$$anon$3.andThen(Reactor.scala:258)
at scala.actors.Combinators$class.loop(Combinators.scala:26)
at orc.run.extensions.ManyActorBasedScheduler$Worker.loop(ManyActorBasedScheduler.scala:77)
at scala.actors.Combinators$$anonfun$loop$1.apply(Combinators.scala:26)
at scala.actors.Combinators$$anonfun$loop$1.apply(Combinators.scala:26)
at scala.actors.Reactor$$anonfun$seq$1$$anonfun$apply$1.apply(Reactor.scala:277)
at scala.actors.ReactorTask.run(ReactorTask.scala:34)
at scala.actors.threadpool.ThreadPoolExecutor.runWorker(Unknown Source)
at scala.actors.threadpool.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:680)
}}}
! Reporter's comments:
Apparently, this comes when one "uses the lightweight react when using the thread proxy actor".
! Orc team response
|| Analysis
| __Repeatable:__ | Inconsistent
| __Root Cause:__ | Speculation: When thread pool is shutting down, submitted tasks get run on caller's thread. If the caller is the main thread, and the task is a Reactor, the CCE above occurs.
| __Proposed Fix:__ | Replace token scheduler with simpler one
|| Implementation
| __Fix Made:__ | __Rev:__ 2642 __Date:__ 30 Mar 2011 __By:__ jthywiss
----
Version Date Modified Size Author Changes ... Change note
47 27-Sep-2017 15:19 18.993 kB John Thywissen to previous Change Google Code link to GitHub
46 30-Mar-2011 13:23 18.995 kB JohnThywissen to previous | to last
45 30-Mar-2011 00:28 19.976 kB JohnThywissen to previous | to last
44 28-Mar-2011 20:38 19.534 kB DavidKitchin to previous | to last
43 28-Mar-2011 09:26 19.459 kB JohnThywissen to previous | to last
42 28-Mar-2011 09:26 19.451 kB JohnThywissen to previous | to last
41 28-Mar-2011 00:19 19.451 kB DavidKitchin to previous | to last
« This page (revision-47) was last changed on 27-Sep-2017 15:19 by John Thywissen