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]
