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 changed one line
!! 4: {{misra_philosopher.orc}} throwing {{~ArgumentTypeMismatchException}}
!! CLOSED
At line 11 added 39 lines
----
!! %%strike 1: {{{random}}}'s values not comparing correctly%% (fixed)
| __Reporter:__ | Bryan Marker
| __Report date-time:__ | 2010-09-24 11:32
| __Orc version:__ | 2.0.0 rev. 2136
! Code:
[{orc runnable='false'
random(1) >v> println(v) >> (v = 0)
}]
! Actual output:
{{{
false
}}}
! Reporter's comments:
This does work:
[{orc runnable='false'
random(1) >w> random(1) >v> println(v) >> (v = w)
}]
Is there something with the types of {{v}} and {{0}} that cause this?
! Orc team response
|| Analysis
| __Repeatable:__ | Yes
| __Root Cause:__ | OrcScala bug. {{random(1)}} returns a {{java.lang.Integer}} which, when its {{equals}} is called with the {{scala.math.~BigInt}} literal {{0}}, fails to compare as equal. ~OrcJava had work-arounds in its {{orc.runtime.sites.core.Equal}} site for this.
| __Proposed Fix:__ | Update {{orc.lib.builtin.Eq}} to replace use of {{equals}} with Scala's {{==}}, which handles boxing correctly.
|| Implementation
| __Fix Made:__ | __Rev:__ 2141 __Date:__ 28 Sep 2010 __By:__ jthywiss
----
!! %%strike 2: Orc plug-in token colorer doesn't recognize nested comments %% (fixed)
At line 51 added 69 lines
| __Report date-time:__ | 2010-12-14 16:48
| __Orc version:__ | 2.0.0 rev. 2253
! Code:
[{orc runnable='false'
{-{-{-{-{-{--}-}-}-}-}-}
}]
! Actual output:
Close braces are highlighted as erroneous characters.
! Reporter's comments:
The parser handles the comments correctly, so there is no error marker. Only the token coloring is wrong.
! Orc team response
|| Analysis
| __Repeatable:__ | Yes
| __Root Cause:__ | {{OrcEclipse src.edu.utexas.cs.orc.orceclipse.parse.~OrcLexer.getFirstTokenAt}} bug -- it stops scanning a multi-line comment at the first {{ -} }}.
| __Proposed Fix:__ | {{getFirstTokenAt}}'s {{COMMENT_MULTILINE}} case needs to handle nested comments.
|| Implementation
| __Fix Made:__ | __Rev:__ 2307 __Date:__ 2010-12-28 10:26 __By:__ jthywiss
----
!! 3: %%strike {{~CappedActorBasedScheduler}} tries to run halted token %% (fixed)
| __Reporter:__ | John Thywissen
| __Report date-time:__ | 2010-12-15 11:29
| __Orc version:__ | 2.0.0 rev.
! Code:
[{orc runnable='false'
def f(num) = num + 1
f(1,2)
}]
! Actual output:
{{{
OrcExamples/test_data/functional_invalid/Parser26.orc:11:1: orc.error.runtime.ArityMismatchException: Arity mismatch, expected 1 arguments, got 2 arguments.
f(1,2)
^
orc.run.extensions.CappedActorBasedScheduler$Worker@f27461b: caught java.lang.AssertionError: halted token scheduled
java.lang.AssertionError: halted token scheduled
at orc.run.Orc$Token.run(Orc.scala:504)
at orc.run.extensions.CappedActorBasedScheduler$Worker.steal(CappedActorBasedScheduler.scala:103)
at orc.run.extensions.CappedActorBasedScheduler$Worker$$anonfun$act$1$$anonfun$apply$1.apply(CappedActorBasedScheduler.scala:114)
at orc.run.extensions.CappedActorBasedScheduler$Worker$$anonfun$act$1$$anonfun$apply$1.apply(CappedActorBasedScheduler.scala:111)
at scala.actors.ReactorTask.run(ReactorTask.scala:34)
...
}}}
! Reporter's comments:
This is test case {{Parser26}}.
! Orc team response
|| Analysis
| __Repeatable:__ | Yes
| __Root Cause:__ | Arity mismatch on function call attempts the call even after halting the token
| __Proposed Fix:__ | Add else branching
|| Implementation
| __Fix Made:__ | __Rev:__ 2302 __Date:__ 26 Dec 2010 __By:__ dkitchin
----
!! %%strike 4: {{misra_philosopher.orc}} throwing {{~ArgumentTypeMismatchException}} %%
| __Reporter:__ | John Thywissen
At line 96 changed one line
| __Fix Made:__ | __Rev:__ __Date:__ __By:__
| __Fix Made:__ | __Rev:__ 2640 __Date:__ 28 Mar 2011 __By:__ dkitchin
At line 100 changed one line
!! 5: {{randomized_byzantine.orc}} refers to an old {{Map}} site that no longer exists
!! %%strike 5: {{randomized_byzantine.orc}} refers to an old {{Map}} site that no longer exists %%
At line 128 changed one line
| __Fix Made:__ | __Rev:__ __Date:__ __By:__
| __Fix Made:__ | __Rev:__ 2640 __Date:__ 28 Mar 2011 __By:__ dkitchin
At line 132 changed one line
!! 11: {{orc.run.extensions.~ManyActorBasedScheduler}} causes a {{~ClassCastException}}
!! %%strike 6: {{Vtimer}} hangs %% (fixed)
At line 135 changed 2 lines
| __Report date-time:__ | 2011-01-22 19:17
| __Orc version:__ | 2.0.0 rev. 2382
| __Report date-time:__ | 2010-12-16 16:57
| __Orc version:__ | 2.0.0 rev. 2270
At line 139 changed one line
While running the Orc7 test case. Appears to be a heisenbug.
(Any code that calls {{Vtimer}}.)
At line 143 changed 35 lines
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)
}}}
../OrcExamples/beginning_Orc/auction.orc
java.util.concurrent.TimeoutException
At line 179 changed 2 lines
! Reporter's comments:
Apparently, this comes when one "uses the lightweight react when using the thread proxy actor".
../OrcExamples/standard_problems/fib-vtimer.orc
java.util.concurrent.TimeoutException
At line 182 changed one line
----
../OrcExamples/standard_problems/path.orc
java.util.concurrent.TimeoutException
At line 256 added 2 lines
../OrcExamples/test_data/functional_valid/Orc24.orc
java.util.concurrent.TimeoutException
At line 259 added 2 lines
../OrcExamples/test_data/functional_valid/Orc25.orc
java.util.concurrent.TimeoutException
At line 186 changed 4 lines
%%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
../OrcExamples/test_data/functional_valid/Orc26.orc
java.util.concurrent.TimeoutException
At line 191 changed one line
!! <<Problem title which briefly and uniquely identifies a problem report>>
../OrcExamples/test_data/functional_valid/readwrite.orc
java.util.concurrent.TimeoutException
At line 193 removed 13 lines
| __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>>
At line 209 changed one line
<<Free-form notes by reporter>>
Back on 23 Oct, we decided to refactor {{Vtimer}} to not make the engine depend on {{Vtimer}}. r2169 removed the {{Vtimer}} calls from the engine, but the {{Vtimer}} side of the changes was never completed.
At line 211 removed 35 lines
----
%%
----
!! CLOSED
----
!! %%strike 1: {{{random}}}'s values not comparing correctly%% (fixed)
| __Reporter:__ | Bryan Marker
| __Report date-time:__ | 2010-09-24 11:32
| __Orc version:__ | 2.0.0 rev. 2136
! Code:
[{orc runnable='false'
random(1) >v> println(v) >> (v = 0)
}]
! Actual output:
{{{
false
}}}
! Reporter's comments:
This does work:
[{orc runnable='false'
random(1) >w> random(1) >v> println(v) >> (v = w)
}]
Is there something with the types of {{v}} and {{0}} that cause this?
At line 249 changed 2 lines
| __Root Cause:__ | OrcScala bug. {{random(1)}} returns a {{java.lang.Integer}} which, when its {{equals}} is called with the {{scala.math.~BigInt}} literal {{0}}, fails to compare as equal. ~OrcJava had work-arounds in its {{orc.runtime.sites.core.Equal}} site for this.
| __Proposed Fix:__ | Update {{orc.lib.builtin.Eq}} to replace use of {{equals}} with Scala's {{==}}, which handles boxing correctly.
| __Root Cause:__ | {{Vtimer}} design changes from 23 Oct never carried through.
| __Proposed Fix:__ | Delete {{Vwait}} until next release
At line 252 changed one line
| __Fix Made:__ | __Rev:__ 2141 __Date:__ 28 Sep 2010 __By:__ jthywiss
| __Fix Made:__ | __Rev:__ 2631 __Date:__ 26 Mar 2011 __By:__ J^T
At line 256 removed 69 lines
!! %%strike 2: Orc plug-in token colorer doesn't recognize nested comments %% (fixed)
| __Reporter:__ | John Thywissen
| __Report date-time:__ | 2010-12-14 16:48
| __Orc version:__ | 2.0.0 rev. 2253
! Code:
[{orc runnable='false'
{-{-{-{-{-{--}-}-}-}-}-}
}]
! Actual output:
Close braces are highlighted as erroneous characters.
! Reporter's comments:
The parser handles the comments correctly, so there is no error marker. Only the token coloring is wrong.
! Orc team response
|| Analysis
| __Repeatable:__ | Yes
| __Root Cause:__ | {{OrcEclipse src.edu.utexas.cs.orc.orceclipse.parse.~OrcLexer.getFirstTokenAt}} bug -- it stops scanning a multi-line comment at the first {{ -} }}.
| __Proposed Fix:__ | {{getFirstTokenAt}}'s {{COMMENT_MULTILINE}} case needs to handle nested comments.
|| Implementation
| __Fix Made:__ | __Rev:__ 2307 __Date:__ 2010-12-28 10:26 __By:__ jthywiss
----
!! 3: %%strike {{~CappedActorBasedScheduler}} tries to run halted token %% (fixed)
| __Reporter:__ | John Thywissen
| __Report date-time:__ | 2010-12-15 11:29
| __Orc version:__ | 2.0.0 rev.
! Code:
[{orc runnable='false'
def f(num) = num + 1
f(1,2)
}]
! Actual output:
{{{
OrcExamples/test_data/functional_invalid/Parser26.orc:11:1: orc.error.runtime.ArityMismatchException: Arity mismatch, expected 1 arguments, got 2 arguments.
f(1,2)
^
orc.run.extensions.CappedActorBasedScheduler$Worker@f27461b: caught java.lang.AssertionError: halted token scheduled
java.lang.AssertionError: halted token scheduled
at orc.run.Orc$Token.run(Orc.scala:504)
at orc.run.extensions.CappedActorBasedScheduler$Worker.steal(CappedActorBasedScheduler.scala:103)
at orc.run.extensions.CappedActorBasedScheduler$Worker$$anonfun$act$1$$anonfun$apply$1.apply(CappedActorBasedScheduler.scala:114)
at orc.run.extensions.CappedActorBasedScheduler$Worker$$anonfun$act$1$$anonfun$apply$1.apply(CappedActorBasedScheduler.scala:111)
at scala.actors.ReactorTask.run(ReactorTask.scala:34)
...
}}}
! Reporter's comments:
This is test case {{Parser26}}.
! Orc team response
|| Analysis
| __Repeatable:__ | Yes
| __Root Cause:__ | Arity mismatch on function call attempts the call even after halting the token
| __Proposed Fix:__ | Add else branching
|| Implementation
| __Fix Made:__ | __Rev:__ 2302 __Date:__ 26 Dec 2010 __By:__ dkitchin
----
At line 467 changed one line
!! %%strike 6: {{Vtimer}} hangs %% (fixed)
!! %%strike 11: {{orc.run.extensions.~ManyActorBasedScheduler}} causes a {{~ClassCastException}} %% (fixed)
At line 470 changed 2 lines
| __Report date-time:__ | 2010-12-16 16:57
| __Orc version:__ | 2.0.0 rev. 2270
| __Report date-time:__ | 2011-01-22 19:17
| __Orc version:__ | 2.0.0 rev. 2382
At line 474 changed one line
(Any code that calls {{Vtimer}}.)
While running the Orc7 test case. Appears to be a heisenbug.
At line 478 changed 21 lines
../OrcExamples/beginning_Orc/auction.orc
java.util.concurrent.TimeoutException
../OrcExamples/standard_problems/fib-vtimer.orc
java.util.concurrent.TimeoutException
../OrcExamples/standard_problems/path.orc
java.util.concurrent.TimeoutException
../OrcExamples/test_data/functional_valid/Orc24.orc
java.util.concurrent.TimeoutException
../OrcExamples/test_data/functional_valid/Orc25.orc
java.util.concurrent.TimeoutException
../OrcExamples/test_data/functional_valid/Orc26.orc
java.util.concurrent.TimeoutException
../OrcExamples/test_data/functional_valid/readwrite.orc
java.util.concurrent.TimeoutException
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)
At line 502 changed one line
Back on 23 Oct, we decided to refactor {{Vtimer}} to not make the engine depend on {{Vtimer}}. r2169 removed the {{Vtimer}} calls from the engine, but the {{Vtimer}} side of the changes was never completed.
Apparently, this comes when one "uses the lightweight react when using the thread proxy actor".
At line 506 changed 3 lines
| __Repeatable:__ | Yes
| __Root Cause:__ | {{Vtimer}} design changes from 23 Oct never carried through.
| __Proposed Fix:__ | Delete {{Vwait}} until next release
| __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
At line 510 changed one line
| __Fix Made:__ | __Rev:__ 2631 __Date:__ 26 Mar 2011 __By:__ J^T
| __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