You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Need DestructorGuard in HQSession::handleWriteError(HQStreamTransportBase* hqStream, quic::QuicErrorCode err)? #582
Hi, our codebase uses proxygen and recently we saw a crash inside the proxygen HTTPTransaction/HQSession stack. It looks like the underlying txn object was gone inside the dguards destructor.
I am the author of that comment (in 2018 lol). I'm not sure adding another dguard there will help with the stack you have though, I think it would just delay observing the the crash until the new dguard is destroyed in handleWriteError.
What does your application do when it receives onError?
If you have a core file, any memory state of the transaction or session might be helpful. The HTTPTransaction is supposed to be protected against premature destruction by the guard in processIngressError, but it seems to die exiting that routine.
Activity
afrind commentedon Nov 1, 2025
I am the author of that comment (in 2018 lol). I'm not sure adding another dguard there will help with the stack you have though, I think it would just delay observing the the crash until the new dguard is destroyed in handleWriteError.
What does your application do when it receives onError?
ryanchiu0416 commentedon Nov 1, 2025
Thanks for the quick response. In the app handler's
::onError(const proxygen::HTTPException& error), it callstxn_->sendAbort();The last app log is the following, before it crashed:
afrind commentedon Nov 1, 2025
If you have a core file, any memory state of the transaction or session might be helpful. The HTTPTransaction is supposed to be protected against premature destruction by the guard in processIngressError, but it seems to die exiting that routine.