villebro opened a new pull request, #43685:
URL: https://github.com/apache/superset/pull/43685

   ### SUMMARY
   
   Addresses review feedback from @sadpandajoe on the umbrella PR (#43407).
   
   1. **Shared-task cancellation bug (asyncEvent).** Two charts for the same
      principal join a single deduplicated SHARED GTF task through one backend
      subscriber. Aborting one chart called `/cancel` on that task even while 
the
      other chart still awaited it, so the server saw the last subscriber leave 
and
      aborted work the surviving chart needed. Cancellation is now **deferred 
to the
      last local waiter**: `cancelUnwaitedTasks()` only cancels a task id when 
no
      local waiter still awaits it (checked after unregistering the aborting 
waiter,
      or before registering on an already-aborted signal). Regression test added
      (`aborting one chart does not cancel a shared task another chart still 
awaits`).
   
   2. **Websocket Pub/Sub channel docs.** `UPDATING.md` and the websocket README
      listed `realtime:<channel_id>` — the *browser-delivery* channel — as a 
channel
      the server consumes. The server actually **subscribes** to 
`entity-changes:*`
      and `task-status` and republishes to browsers on `realtime:*` after 
fanout.
      Corrected so a Redis ACL following the guidance allows `task-status` 
(omitting
      it silently prevents task updates from reaching clients).
   
   Not included here (from the same review, handled separately):
   - The 202 poll cursor microsecond-vs-seconds miss was already fixed on
     `gaq-to-gtf` (floored via the shared `floored_status_cursor()` helper).
   - The Helm `GLOBAL_ASYNC_QUERIES_*` → `WEBSOCKET_*` migration is 
intentionally
     **not** done: the Helm chart is being deprecated (7.0), and first-class 
support
     for this feature will land in the official Superset Kubernetes operator.
   
   ### TESTING INSTRUCTIONS
   
   - `npm run test -- asyncEvent` — the new shared-cancel regression test.
   - Manual: open two charts backed by the same async query (same principal); 
abort
     one and confirm the other still resolves; abort both and confirm the task 
is
     cancelled once.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [ ] Required feature flags: `GLOBAL_ASYNC_QUERIES` / 
`GLOBAL_TASK_FRAMEWORK`
   - [ ] Changes UI
   - [ ] Includes DB Migration
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   


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