[ 
https://issues.apache.org/jira/browse/SYSTEMML-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Schüler updated SYSTEMML-1147:
------------------------------------
    Description: 
Error reporting is in many cases not very user friendly. 
For example, wrong indexing in a user-defined function leads to long 
stack-traces that only contain information about the instructions and finally 
end with an IndexOutOfBoundsException. 

In general, the reported instructions are not very helpful because they also 
only contain renamed variables (e.g. _Var42) that don't correspond to anything 
in the DML script.

This epic is to track error messages that could use some improvements.

Here is an Example of a case that is not very helpful:

{code}
Exception in thread "main" org.apache.sysml.api.mlcontext.MLContextException: 
Exception when executing script
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:301)
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:270)
        at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala:8)
        at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala)
        at 
org.apache.sysml.examples.TSNE$.delayedEndpoint$org$apache$sysml$examples$TSNE$1(TSNE.scala:119)
        at org.apache.sysml.examples.TSNE$delayedInit$body.apply(TSNE.scala:6)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
        at 
scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:381)
        at 
scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
        at scala.App$class.main(App.scala:76)
        at org.apache.sysml.examples.TSNE$.main(TSNE.scala:6)
        at org.apache.sysml.examples.TSNE.main(TSNE.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: org.apache.sysml.api.mlcontext.MLContextException: Exception 
occurred while executing runtime program
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:378)
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.execute(ScriptExecutor.java:321)
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:293)
        ... 19 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: 
org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program 
block generated from statement block between lines 62 and 62 -- Error 
evaluating instruction: 
CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
        at 
org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:130)
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:376)
        ... 21 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in program block generated from statement block between lines 62 and 62 -- 
Error evaluating instruction: 
CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
        at 
org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:123)
        ... 22 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: error executing 
function .defaultNS::x2p
        at 
org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:177)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
        ... 25 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in function program block generated from function statement block between lines 
6 and 53 -- Error evaluating function program block
        at 
org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:121)
        at 
org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:170)
        ... 26 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in for program block generated from for statement block between lines 14 and 50 
-- Error evaluating for program block
        at 
org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:162)
        at 
org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:114)
        ... 27 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in while program block generated from while statement block between lines 22 
and 48 -- Error evaluating while program block
        at 
org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:181)
        at 
org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:150)
        ... 28 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in program block generated from statement block between lines 23 and 29 -- 
Error evaluating instruction: 
CP°leftIndex°_mVar283·MATRIX·DOUBLE°0.0·SCALAR·DOUBLE·true°_Var279·SCALAR·INT·false°_Var279·SCALAR·INT·false°1·SCALAR·INT·true°1·SCALAR·INT·true°_mVar284·MATRIX·DOUBLE
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
        at 
org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:169)
        ... 29 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 100
        at 
org.apache.sysml.runtime.matrix.data.MatrixBlock.quickSetValue(MatrixBlock.java:609)
        at 
org.apache.sysml.runtime.matrix.data.MatrixBlock.leftIndexingOperations(MatrixBlock.java:3714)
        at 
org.apache.sysml.runtime.instructions.cp.MatrixIndexingCPInstruction.processInstruction(MatrixIndexingCPInstruction.java:103)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
        ... 32 more
{code}

  was:
Error reporting is in many cases not very user friendly. 
For example, wrong indexing in a user-defined function leads to long 
stack-traces that only contain information about the instructions and finally 
end with an IndexOutOfBoundsException. 

In general, the reported instructions are not very helpful because they also 
only contain renamed variables (e.g. _Var42) that don't correspond to anything 
in the DML script.

This epic is to track error messages that could use some improvements.

Here is an Example of a case that is not very helpful:

{code}
Exception in thread "main" org.apache.sysml.api.mlcontext.MLContextException: 
Exception when executing script
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:301)
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:270)
        at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala:8)
        at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala)
        at 
org.apache.sysml.examples.TSNE$.delayedEndpoint$org$apache$sysml$examples$TSNE$1(TSNE.scala:119)
        at org.apache.sysml.examples.TSNE$delayedInit$body.apply(TSNE.scala:6)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
        at 
scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:381)
        at 
scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
        at scala.App$class.main(App.scala:76)
        at org.apache.sysml.examples.TSNE$.main(TSNE.scala:6)
        at org.apache.sysml.examples.TSNE.main(TSNE.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: org.apache.sysml.api.mlcontext.MLContextException: Exception 
occurred while executing runtime program
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:378)
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.execute(ScriptExecutor.java:321)
        at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:293)
        ... 19 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: 
org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program 
block generated from statement block between lines 62 and 62 -- Error 
evaluating instruction: 
CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
        at 
org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:130)
        at 
org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:376)
        ... 21 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in program block generated from statement block between lines 62 and 62 -- 
Error evaluating instruction: 
CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
        at 
org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:123)
        ... 22 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: error executing 
function .defaultNS::x2p
        at 
org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:177)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
        ... 25 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in function program block generated from function statement block between lines 
6 and 53 -- Error evaluating function program block
        at 
org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:121)
        at 
org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:170)
        ... 26 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in for program block generated from for statement block between lines 14 and 50 
-- Error evaluating for program block
        at 
org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:162)
        at 
org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:114)
        ... 27 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in while program block generated from while statement block between lines 22 
and 48 -- Error evaluating while program block
        at 
org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:181)
        at 
org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:150)
        ... 28 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
in program block generated from statement block between lines 23 and 29 -- 
Error evaluating instruction: 
CP°leftIndex°_mVar283·MATRIX·DOUBLE°0.0·SCALAR·DOUBLE·true°_Var279·SCALAR·INT·false°_Var279·SCALAR·INT·false°1·SCALAR·INT·true°1·SCALAR·INT·true°_mVar284·MATRIX·DOUBLE
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
        at 
org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:169)
        ... 29 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 100
        at 
org.apache.sysml.runtime.matrix.data.MatrixBlock.quickSetValue(MatrixBlock.java:609)
        at 
org.apache.sysml.runtime.matrix.data.MatrixBlock.leftIndexingOperations(MatrixBlock.java:3714)
        at 
org.apache.sysml.runtime.instructions.cp.MatrixIndexingCPInstruction.processInstruction(MatrixIndexingCPInstruction.java:103)
        at 
org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
        ... 32 more
{/code}

        Summary: Improved Error Reporting  (was: Improvements for error 
reporting)

> Improved Error Reporting
> ------------------------
>
>                 Key: SYSTEMML-1147
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1147
>             Project: SystemML
>          Issue Type: Epic
>          Components: Compiler, Documentation
>            Reporter: Felix Schüler
>
> Error reporting is in many cases not very user friendly. 
> For example, wrong indexing in a user-defined function leads to long 
> stack-traces that only contain information about the instructions and finally 
> end with an IndexOutOfBoundsException. 
> In general, the reported instructions are not very helpful because they also 
> only contain renamed variables (e.g. _Var42) that don't correspond to 
> anything in the DML script.
> This epic is to track error messages that could use some improvements.
> Here is an Example of a case that is not very helpful:
> {code}
> Exception in thread "main" org.apache.sysml.api.mlcontext.MLContextException: 
> Exception when executing script
>       at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:301)
>       at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:270)
>       at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala:8)
>       at org.apache.sysml.examples.TSNE$$anon$1.run(TSNE.scala)
>       at 
> org.apache.sysml.examples.TSNE$.delayedEndpoint$org$apache$sysml$examples$TSNE$1(TSNE.scala:119)
>       at org.apache.sysml.examples.TSNE$delayedInit$body.apply(TSNE.scala:6)
>       at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
>       at 
> scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
>       at scala.App$$anonfun$main$1.apply(App.scala:76)
>       at scala.App$$anonfun$main$1.apply(App.scala:76)
>       at scala.collection.immutable.List.foreach(List.scala:381)
>       at 
> scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
>       at scala.App$class.main(App.scala:76)
>       at org.apache.sysml.examples.TSNE$.main(TSNE.scala:6)
>       at org.apache.sysml.examples.TSNE.main(TSNE.scala)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
> Caused by: org.apache.sysml.api.mlcontext.MLContextException: Exception 
> occurred while executing runtime program
>       at 
> org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:378)
>       at 
> org.apache.sysml.api.mlcontext.ScriptExecutor.execute(ScriptExecutor.java:321)
>       at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:293)
>       ... 19 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: 
> org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program 
> block generated from statement block between lines 62 and 62 -- Error 
> evaluating instruction: 
> CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
>       at 
> org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:130)
>       at 
> org.apache.sysml.api.mlcontext.ScriptExecutor.executeRuntimeProgram(ScriptExecutor.java:376)
>       ... 21 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in program block generated from statement block between lines 62 and 62 -- 
> Error evaluating instruction: 
> CP°extfunct°.defaultNS°x2p°2°1°X·MATRIX·DOUBLE°30·SCALAR·INT·true°inter
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
>       at 
> org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:123)
>       ... 22 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: error executing 
> function .defaultNS::x2p
>       at 
> org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:177)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
>       ... 25 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in function program block generated from function statement block between 
> lines 6 and 53 -- Error evaluating function program block
>       at 
> org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:121)
>       at 
> org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:170)
>       ... 26 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in for program block generated from for statement block between lines 14 and 
> 50 -- Error evaluating for program block
>       at 
> org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:162)
>       at 
> org.apache.sysml.runtime.controlprogram.FunctionProgramBlock.execute(FunctionProgramBlock.java:114)
>       ... 27 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in while program block generated from while statement block between lines 22 
> and 48 -- Error evaluating while program block
>       at 
> org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:181)
>       at 
> org.apache.sysml.runtime.controlprogram.ForProgramBlock.execute(ForProgramBlock.java:150)
>       ... 28 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in program block generated from statement block between lines 23 and 29 -- 
> Error evaluating instruction: 
> CP°leftIndex°_mVar283·MATRIX·DOUBLE°0.0·SCALAR·DOUBLE·true°_Var279·SCALAR·INT·false°_Var279·SCALAR·INT·false°1·SCALAR·INT·true°1·SCALAR·INT·true°_mVar284·MATRIX·DOUBLE
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:320)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:221)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
>       at 
> org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:169)
>       ... 29 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 100
>       at 
> org.apache.sysml.runtime.matrix.data.MatrixBlock.quickSetValue(MatrixBlock.java:609)
>       at 
> org.apache.sysml.runtime.matrix.data.MatrixBlock.leftIndexingOperations(MatrixBlock.java:3714)
>       at 
> org.apache.sysml.runtime.instructions.cp.MatrixIndexingCPInstruction.processInstruction(MatrixIndexingCPInstruction.java:103)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)
>       ... 32 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to