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]
