New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assert error in HTC_RxStuff(), cache/cache_session.c line 294 #2285
Labels
Comments
Still see this, running varnish patched to 3db481a |
mbgrydeland
added a commit
to mbgrydeland/varnish-cache
that referenced
this issue
Jun 7, 2018
handling This partly reverses the fix for varnishcache#2285, as that fix was missdiagnosed. The original fix for varnishcache#2285 also introduced a bug similar to varnishcache#2219 where the proxy code would not find space to insert a NUL character. The real problem in varnishcache#2285 (and the duplicate varnishcache#2624) appears during H/2 prior knowledge upgrade, and the difference in maxbytes argument to HTC_RxStuff between the H/1 and H/2 code paths. If the pipelined bytes exceeded the maxbytes input on the second run we would run into an assert. (varnishcache#2624 has received a workaround in the H/2 code that perhaps should be reverted). Changes in this patch: HTC_RxStuff will now reserve a space to insert a NUL character for those completion functions that needs that (HTTP/1 and Proxy_V1). HTC_RxStuff will no longer assert on seeing pipelined data exceeding the maxbytes input.
mbgrydeland
added a commit
to mbgrydeland/varnish-cache
that referenced
this issue
Jun 7, 2018
handling This partly reverses the fix for varnishcache#2285, as that fix was missdiagnosed. The original fix for varnishcache#2285 also introduced a bug similar to varnishcache#2219 where the proxy code would not find space to insert a NUL character. The real problem in varnishcache#2285 (and the duplicate varnishcache#2624) appears during H/2 prior knowledge upgrade, and the difference in maxbytes argument to HTC_RxStuff between the H/1 and H/2 code paths. If the pipelined bytes exceeded the maxbytes input on the second run we would run into an assert. (varnishcache#2624 has received a workaround in the H/2 code that perhaps should be reverted). Changes in this patch: HTC_RxStuff will now reserve a space to insert a NUL character for those completion functions that needs that (HTTP/1 and Proxy_V1). HTC_RxStuff will no longer assert on seeing pipelined data exceeding the maxbytes input.
mbgrydeland
added a commit
that referenced
this issue
Jun 11, 2018
Previous fix for #2285 (and the duplicate #2624) was missdiagnosed. The problem stems from a wrong assumption that the number of bytes already pipelined will be less than maxbytes, with maxbytes beeing the maximum number of bytes the HTC_RxStuff may need to get a full work unit. That assumption may fail during the H/1 to H/2 upgrade path where maxbytes change with the context, or during runtime changing of parameters. This patch makes HTC_RxStuff not assert if the pipelined data turned out to exceed maxbytes, but return overflow if we run out of workspace. (#2624 has received a workaround in the H/2 code that perhaps should be reverted).
Dridi
pushed a commit
to Dridi/varnish-cache
that referenced
this issue
Jun 20, 2018
Previous fix for varnishcache#2285 (and the duplicate varnishcache#2624) was missdiagnosed. The problem stems from a wrong assumption that the number of bytes already pipelined will be less than maxbytes, with maxbytes beeing the maximum number of bytes the HTC_RxStuff may need to get a full work unit. That assumption may fail during the H/1 to H/2 upgrade path where maxbytes change with the context, or during runtime changing of parameters. This patch makes HTC_RxStuff not assert if the pipelined data turned out to exceed maxbytes, but return overflow if we run out of workspace. (varnishcache#2624 has received a workaround in the H/2 code that perhaps should be reverted).
dmatetelki
pushed a commit
to dmatetelki/varnish-cache
that referenced
this issue
Mar 14, 2019
Previous fix for varnishcache#2285 (and the duplicate varnishcache#2624) was missdiagnosed. The problem stems from a wrong assumption that the number of bytes already pipelined will be less than maxbytes, with maxbytes beeing the maximum number of bytes the HTC_RxStuff may need to get a full work unit. That assumption may fail during the H/1 to H/2 upgrade path where maxbytes change with the context, or during runtime changing of parameters. This patch makes HTC_RxStuff not assert if the pipelined data turned out to exceed maxbytes, but return overflow if we run out of workspace. (varnishcache#2624 has received a workaround in the H/2 code that perhaps should be reverted).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Running on ubuntu 16.04
Varnish 5.1.1 patched to 15f5c12
The text was updated successfully, but these errors were encountered: