aglinxinyuan commented on code in PR #6971:
URL: https://github.com/apache/texera/pull/6971#discussion_r3700739621


##########
amber/src/main/python/core/models/operator.py:
##########
@@ -452,21 +443,44 @@ def __init__(self):
         # AttributeError; a None _loop_table means "nothing consumed yet" and
         # condition() short-circuits to False (see eval_condition).
         self.state: State = State()
+        # Set by the runtime (attach_loop_table) right before the matching

Review Comment:
   You're right, that sentence contradicted the one-instance-per-iteration 
premise. Reworded in 25d6ace: the clear is defensive rather than load-bearing 
today — there is no second consume within one instance for a stale table to 
leak into — but nothing may run an update against a table it wasn't explicitly 
handed. And it's no longer unpinned: the two-iteration test now ends with an 
update-without-attach that must raise the "not attached" error.



##########
amber/src/main/protobuf/org/apache/texera/amber/engine/architecture/rpc/controlcommands.proto:
##########
@@ -254,12 +254,18 @@ message InitializeExecutorRequest {
   int32 totalWorkerCount = 1;
   core.OpExecInitInfo opExecInitInfo = 2;
   bool isSource = 3;
-  // Loop-back write addresses: Loop Start logical operator id -> state URI of
-  // that Loop Start's input port. Constant per execution (minted at schedule
-  // time); a Loop End worker selects the entry by the loop_start_id carried on
-  // the consumed StateFrame and writes the next-iteration state there. Empty
-  // for plans without loops.
-  map<string, string> loopStartStateUris = 4;
+  // Loop bookkeeping addresses: Loop Start logical operator id -> BASE URI of
+  // that Loop Start's input port materialization. Constant per execution

Review Comment:
   Reworded in both places in 25d6ace. The proto now says the value is the base 
URI of the materialized port the Loop Start's input port *reads from* — the 
upstream operator's output-port materialization (the storage pair of the Loop 
Start's input port config), not a port of the Loop Start itself — and the 
`WorkflowExecutionManager` scaladoc says the same, pointing at 
`cfg.storagePairs.head._1` where the difference is visible.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to