Race condition in disposing selection reference in QueryRenderer#_fetch?
Open
- Dominant language
- Rust
- Stars
- 19k
- Forks
- 1.9k
- PR merge metrics
- No merged PRs in 30d
Description
This may just be a misunderstanding on my part, but it seems like, on calling `_fetch`:
1. We call `this._pendingFetch.dispose()`: https://github.com/facebook/relay/blob/v1.0.0/packages/react-relay/modern/ReactRelayQueryRenderer.js#L251
2. This calls `nextReference.dispose()`: https://github.com/facebook/relay/blob/v1.0.0/packages/react-relay/modern/ReactRelayQueryRenderer.js#L266
But in the case where the query is streaming, isn't it possible that `nextReference` and `this._selectionReference` are the same?
In which case couldn't this lead to freeing essentially `this._selectionReference`? In which case is this a problem?
Contributor guide
Assessment
This issue has not been assessed yet.