MaximilianSchreff opened a new pull request, #1985:
URL: https://github.com/apache/systemds/pull/1985

   A description of the bug:
   
   Usual Behavior of SystemDS:
   - When: A function returns an object and this object is assigned the 
variable name "blub".
   - And: A variable named "blub" already exists in the execution context.
   - Then: Variable object should be replaced with new returned object and the 
old object should be cleaned up..
   Bug:
   - When: Old object and new object of variable named "blub" are lists and 
both contain the same element A.
   - And: There is no reference to A in the execution context.
   - Then: The mutual list element will be cleaned up and its cached data 
deleted even though it is still in the new list. This happens since the new 
object isn't added to the execution context when cleaning up. Otherwise, the 
reference to A would be detected and its cached data not deleted.
   
   This behavior can be seen when executing the newly added DML script. 
   
   The solution for this is to only clean up the old objects after having 
removed all old objects from and added all new objects to the execution 
context. This way, the cached data of the mutual list elements will not be 
deleted since the clean up always checks whether there is another reference in 
the execution context to that element.
   
   Testing has been added.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@systemds.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to