rusackas commented on PR #42804:
URL: https://github.com/apache/superset/pull/42804#issuecomment-5196234801

   Dug into this before merging the revert. The hang isn't actually specific to 
simple-zstd v2 -- `processHTML()` pipes the proxied response through the 
decompression stream with plain `.pipe()`, which doesn't forward the source's 
errors/premature-close to the destination. When the backend connection drops 
mid-response (the Flask reloader restarting on a save is the common case), the 
decompression stream just sits waiting forever and the request hangs. 
Reproduced the identical hang with gzip on the same code path, so reverting to 
1.4.2 wouldn't have actually fixed it.
   
   Opened #42811 as a fix-forward: swaps the manual `.pipe()` wiring for 
`stream/promises`' `pipeline()`, which properly propagates the error so the 
existing catch handler can respond fast instead of hanging. Includes two 
regression tests (zstd + gzip) that hang against the old code and pass with the 
fix.
   
   Might be worth holding this one and going with #42811 instead, since it 
fixes the actual bug rather than just removing zstd support.


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