Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The following script fails with missing function and misleading error message. The root cause is incorrect meta data management in the functional call graph of IPA which did not properly detect eval functions under persistent writes or print/tostring.
foo1 = function (matrix[double] M) return (matrix[double] ret) { ret = M + 1 } foo2 = function (matrix[double] M) return (matrix[double] ret) { ret = M + 2 } M = matrix ("1 2 3 4 5 6", rows=3, cols=2) A = eval("foo1", M) B = eval("foo2", A) print ("A = \n" + toString(A)) print ("B = \n" + toString(B))
Caused by: org.apache.sysml.runtime.DMLRuntimeException: namespace .defaultNS is undefined at org.apache.sysml.runtime.controlprogram.Program.getFunctionProgramBlock(Program.java:93) at org.apache.sysml.runtime.instructions.cp.FunctionCallCPInstruction.processInstruction(FunctionCallCPInstruction.java:101) at org.apache.sysml.runtime.instructions.cp.EvalNaryCPInstruction.processInstruction(EvalNaryCPInstruction.java:67) at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:252) ... 36 more