villebro commented on PR #43696:
URL: https://github.com/apache/superset/pull/43696#issuecomment-5473219200

   Fixed the cursor race in `5262aa3`. `runCatchUp` was advancing the global 
cursor to the fetch's returned value unconditionally — so if a waiter 
registered mid-flight and rewound the cursor to its own earlier 202 watermark 
(queuing a follow-up), that rewind got clobbered and the follow-up skipped the 
`[rewound, requestCursor)` window. Now the fetch captures the cursor it started 
from and only advances when nobody rewound it meanwhile; otherwise the queued 
follow-up runs from the earlier watermark. Added the regression test you 
described (deferred first catch-up from T2, a second waiter registers with T1 
mid-flight, first resolves with T3, and the follow-up is asserted to fetch from 
T1).
   
   On the remaining "no backstop while connected" point: that's a deliberate 
decision (replied inline). The socket is the transport when enabled, reconciled 
by the registration + reconnect catch-ups, with a per-request give-up + page 
reload for the rare lost-while-open case. If dropped `task.status` over Pub/Sub 
proves to be a real problem, we'll revisit Pub/Sub vs Redis Streams for this 
channel rather than reintroducing steady-state polling — I'll open a follow-up 
issue to track that option.
   
   Frontend suites green (77 tests incl. the new cursor-race regression); 
lint/format clean.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to