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

mod_proxy_http2 - HEAD Request - "unable to parse status line: \x89PNG" #133

Closed
BenediktS opened this Issue Mar 10, 2017 · 5 comments

Comments

Projects
None yet
3 participants
@BenediktS

BenediktS commented Mar 10, 2017

Hi,

if i activate mod_proxy_http2, i get the error "[http2:error] AH03467: h2_task(459-99): unable to parse status line: \x89PNG" while proxying some PNG Files.
Always the same PNG Files are raising the error and the PNGs didn't show up on the client.
Most of the PNGs just work fine.

I use apache: 2.4.25 and mod_h2 1.9.2

[... some tests later .... ]

I have just realized that our programmers did some "unusal" stuff in the javascript programming.
It's not the normal PNG proxying that's not working. If we try to catch the file with a normal "GET"-Request the file is delivered. They try to verify that the files exists first. They create a "HEAD"-Request to do this.

used javascript:

function UrlExists(url)
{
   try {
      var http = new XMLHttpRequest();
      http.open('HEAD', url, false);
      http.send();
      return http.status!=404;
    } catch (e) {
	 return false
    }
} 

We will remove that unnecessary code, but the underlying HEAD-Request-Proxying-Issues could turn up on other sites as well

best regards
Benedikt

Config:

SSLProxyEngine on
ProxyPreserveHost on
SSLProxyCheckPeerName off
SSLProxyCheckPeerCN off

<VirtualHost *:443>
  ServerName something.de
  ServerAlias  something.different.de

  ProxyPass /server-status !
  ProxyPass / h2://87.x.x.x/
  ProxyPassReverse / https://87.x.x.x/

  SSLEngine On
  SSLCertificateFile [...]
</VirtualHost>

Error Log:

[Fri Mar 10 13:25:00.479951 2017] [http2:error] [pid 434:tid 140277493446400] [client 202.131.106.130:52306] AH03467: h2_task(459-95): unable to parse status line: \x89PNG
[Fri Mar 10 13:25:00.484701 2017] [http2:error] [pid 434:tid 140277493446400] [client 202.131.106.130:52306] AH03467: h2_task(459-99): unable to parse status line: \x89PNG
[Fri Mar 10 13:25:00.621179 2017] [http2:error] [pid 434:tid 140277493446400] [client 202.131.106.130:52306] AH03467: h2_task(459-207): unable to parse status line: \x89PNG
[Fri Mar 10 13:25:00.638109 2017] [http2:error] [pid 434:tid 140277493446400] [client 202.131.106.130:52306] AH03467: h2_task(459-209): unable to parse status line: \x89PNG
[Fri Mar 10 13:32:30.497679 2017] [core:crit] [pid 434:tid 140277004015360] AH00102: [Fri Mar 10 13:32:30 2017] file h2_ngn_shed.c, line 378, assertion "apr_hash_count(shed->ngns) == 0" failed
[Fri Mar 10 13:32:31.022343 2017] [core:notice] [pid 61:tid 140277584611200] AH00052: child pid 434 exit signal Aborted (6)
[Fri Mar 10 13:43:01.108784 2017] [http2:error] [pid 275:tid 140277342377728] [client 202.131.106.130:40654] AH03467: h2_task(276-295): unable to parse status line: \x89PNG
[Fri Mar 10 13:49:31.939607 2017] [http2:error] [pid 65:tid 140277501839104] [client 61.6.233.199:65077] AH03467: h2_task(133-9): unable to parse status line: \x89PNG
[Fri Mar 10 13:59:03.855354 2017] [core:crit] [pid 63:tid 140277171869440] AH00102: [Fri Mar 10 13:59:03 2017] file h2_bucket_beam.c, line 495, assertion "safe_send || !beam->send_pool" failed
[Fri Mar 10 13:59:04.604764 2017] [core:notice] [pid 61:tid 140277584611200] AH00052: child pid 63 exit signal Aborted (6)
[Fri Mar 10 14:00:08.011317 2017] [http2:error] [pid 65:tid 140277409519360] [client 190.238.121.110:50631] AH03467: h2_task(131-51): unable to parse status line: \xe0\v\xd7\xda\xfd0h\xe6\x8a\xa9C\x81\xc1j\xb4S\xff\xa1\x87pU\xa6\x84\xdf\xc2p\xb83\xffpxM\xe36\xad\xb0}p\x1c\x7fT\x83x\xe5x\b\x95\xb3\xfc\x88\xa8\x98J\xbdaj\x0e\bZ\xe7\xde^\xa1h1\x80\xf4\xd8\xc8\xaf\x8e!\x97<\x8f\x10\xbb'\x9d{n\xbaW\xaf\xb8UHN7;\xf3.}\x17|[|\xe0"\xa8\xd4\xb1z\xed\x9e\x97\x8b\xf9N'T\x11Qh\xb6F\xd5\xcb\xfe\xd5\x1cy\x98\xbf\x12\xdd(\xd9\x02\xce0\x8d\xc9\x9f%\xa5n\x93Z\xe3+T\xb4XaZ\xb01\xfd\\u\xcc\xc2\x8b\xdc\x89j\x1a\xfb4\x96\xf1\x9a\x8b\xf3\xd6\x02\x87M\x92\xb3\xdd\xbd\xc1^\xee\\\ty\xb1G\x9e\xd1\x80\xdbE\xafR\xc2\xc0\xda\xc9w\xf7z\x10\x97\ri\xcf\xc5$\x98\x02/\xaf\r3D\x15"\xaa\xd0m\xac\xc0\xc8}\x02U\xde\x06\xca\xa1K\xee\xd7w\x89b\xe5\xb6uHop\xbf\x87\x035\xf3e\x9e#\xf3\x188\xfb\xe6\x16\xf5\xd2\x83B\xc7< 0:\xdd\x12\xea\xdd\x07\xf5:\xa6y\xb9}J\xf6\xa0J\xc9@\xb9\x0cO\xa6\xc0\xb5\xf1S\xb2eY(r\xbdaGmS\xd7w\x0c\xb1\x99
[Fri Mar 10 14:00:47.020482 2017] [core:crit] [pid 64:tid 140277096335104] AH00102: [Fri Mar 10 14:00:47 2017] file h2_bucket_beam.c, line 495, assertion "safe_send || !beam->send_pool" failed
[Fri Mar 10 14:00:47.708165 2017] [core:notice] [pid 61:tid 140277584611200] AH00052: child pid 64 exit signal Aborted (6)
[Fri Mar 10 14:00:58.388282 2017] [core:crit] [pid 275:tid 140277121513216] AH00102: [Fri Mar 10 14:00:58 2017] file h2_proxy_util.c, line 616, assertion "req->authority" failed
[Fri Mar 10 14:00:58.718728 2017] [core:notice] [pid 61:tid 140277584611200] AH00052: child pid 275 exit signal Aborted (6)
[Fri Mar 10 14:02:54.548397 2017] [http2:error] [pid 381:tid 140277367555840] [client 186.61.17.104:28832] AH03467: h2_task(387-37): unable to parse status line: \x89PNG

@icing

This comment has been minimized.

Show comment
Hide comment
@icing

icing Mar 12, 2017

Owner

Sorry, been busy the last days. Thanks for your detailed report. I will look into this and hopefully have a fix soon.

Owner

icing commented Mar 12, 2017

Sorry, been busy the last days. Thanks for your detailed report. I will look into this and hopefully have a fix soon.

@icing icing closed this Mar 12, 2017

@icing icing reopened this Mar 12, 2017

@icing

This comment has been minimized.

Show comment
Hide comment
@icing

icing Apr 12, 2017

Owner

@BenediktS I was not directly able to reproduce this issue by adding HEAD requests in my proxy test suite. However I was able to reproduce some reliability issues with connection reuse/reconnect that I fixed in the current v1.10.1.

Could you give that version a run in your setup when you find the chance? Thanks!

Owner

icing commented Apr 12, 2017

@BenediktS I was not directly able to reproduce this issue by adding HEAD requests in my proxy test suite. However I was able to reproduce some reliability issues with connection reuse/reconnect that I fixed in the current v1.10.1.

Could you give that version a run in your setup when you find the chance? Thanks!

@BenediktS

This comment has been minimized.

Show comment
Hide comment
@BenediktS

BenediktS Apr 19, 2017

I could not reproduce the error with v1.10.2 .

BenediktS commented Apr 19, 2017

I could not reproduce the error with v1.10.2 .

@BenediktS BenediktS closed this Apr 19, 2017

@icing

This comment has been minimized.

Show comment
Hide comment
@icing

icing Apr 19, 2017

Owner

Wonderful. Thanks!

Owner

icing commented Apr 19, 2017

Wonderful. Thanks!

@Jan-E

This comment has been minimized.

Show comment
Hide comment
@Jan-E
Contributor

Jan-E commented Apr 20, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment