Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
May fix #782.
Using the information linked by @kenji21 (Thank you so much for the pointer), I noticed that the
OutputStream
ofSerialStream
has its delegate set, but the delegate is never unset.OutputStream
does indeed mark its delegate asunowned(unsafe)
so this is likely the cause of the crash. I have not however tested this change since I haven’t seen the crash on my end.I’m also a little concerned about the correctness of
SerialStream
. It’s not clear to me how long its lifetime is, and the fact that the crash occurred in at least one case “around 200kb/2.82MB” makes me worry that theSerialStream
is being prematurely released. Not sure if there’s a good way to make sure it stays alive until the request is done.