I was getting low rate fails in jenkins on existing tests, and wanted to focus on lock issues entering/leaving exec. This is entering. Since delete_on_done=0 caused a different issue, I set it to 1 here.

I think this test shows that overlapping a parse with exec doesn't work due to lock issues. Note the exec is complaining about the parse result key, even though the exec does use the key in it's expression. Exec tends to want to lock the world, so I think that's part of the issue here
h2o gets this (some earlier iterations, but these are the two key things)

  /2/Parse2.json?destination_key=iris2_3.hex&source_key=iris.csv&delete_on_done=1
  /2/Exec2.json?str=iris2_2.hex[,5]=(iris2_2.hex[,5]

Note Exec isn't touching iris2_3.hex. The parse is overlapped because I don't poll (I use the jobs list while iterating to synchronize for the next loop iteration, which bumps the suffixes used)

Heres the error

01:09:45.619 # Session ERRR WATER: Exception while adding frame iris2_3.hex to Exec env
01:09:45.622 # Session ERRR WATER:
+                                  java.lang.IllegalArgumentException: Dataset iris2_3.hex is already in use.  Unable to use it now.  Consider using a different destination name.
+                                   at water.Lockable$PriorWriteLock.atomic(Lockable.java:85)
+                                   at water.Lockable$PriorWriteLock.atomic(Lockable.java:74)
+                                   at water.TAtomic.atomic(TAtomic.java:19)
+                                   at water.Atomic.compute2(Atomic.java:58)
+                                   at water.Atomic.fork(Atomic.java:42)
+                                   at water.Atomic.invoke(Atomic.java:34)
+                                   at water.Lockable.write_lock(Lockable.java:60)
+                                   at water.Lockable.delete_and_lock(Lockable.java:64)
+                                   at water.exec.Env.remove_and_unlock(Env.java:363)
+                                   at water.exec.Exec2.exec(Exec2.java:104)
+                                   at water.api.Exec2.serve(Exec2.java:35)