PG1204 opened a new issue, #8727:
URL: https://github.com/apache/texera/issues/8727

   ### What happened?
   
   The row-details modal (`RowModalComponent`) is reused as the user pages 
through rows: the footer's `<` and `>` buttons mutate `component.rowIndex` and 
call `component.ngOnChanges()` directly 
(`result-table-frame.component.ts:352-364`). Two problems follow from that 
reuse.
   
   **1. Blob URLs accumulate until the modal closes.** Every media cell fetched 
through the proxy creates an object URL and pushes it onto `allocatedBlobUrls` 
(`result-panel-modal.component.ts:123`), but the only `URL.revokeObjectURL` is 
in `ngOnDestroy` (L106-110), which runs when the modal closes. Navigating 
through rows of images, audio or video therefore holds every blob from every 
row visited, for as long as the modal stays open.
   
   **2. Row navigation can display a stale row.** `ngOnChanges` subscribes to 
`selectTuple` with only `untilDestroyed(this)` (L89-99), which unsubscribes on 
component destroy, not on the next change. Each navigation adds another live 
subscription, so if an earlier row's response arrives after a later one, it 
overwrites `currentDisplayRowData` and the modal shows the wrong row's data. 
In-flight `fetchBlobSrc` requests (L112-134) have the same issue and can write 
a previous row's media into the current entry.
   
   Both are a consequence of the component being reused across rows while its 
teardown is scoped to the modal's lifetime.
   
   
   ### How to reproduce?
   
   1. Run a workflow whose result column contains media (for example a Hugging 
Face operator producing images or audio), and open a row's details.
   2. Click `>` repeatedly to page through rows.
   3. Memory held by the tab grows with each row visited and is only released 
when the modal is closed, the blob URLs from earlier rows are never revoked.
   4. On a slow connection, clicking `>` quickly can leave the modal showing an 
earlier row's values, because that row's response arrives last.
   
   ### Version/Branch
   
   1.4.0-incubating-SNAPSHOT (main)
   
   ### Commit Hash (Optional)
   
   _No response_
   
   ### What browsers are you seeing the problem on?
   
   _No response_
   
   ### Relevant log output
   
   ```shell
   
   ```


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