Blazemeter / jmeter-http2-plugin

HTTP2 plugin for Apache JMeter
Apache License 2.0
45 stars 27 forks source link

http2 Plugin not sending http2 requests, showing 100% error #63

Open heysarthak opened 8 months ago

heysarthak commented 8 months ago

Jmeter Version 5.6.1 http2 2.0.2

Creating summariser

Created the tree successfully using /var/lib/jenkins/ocslf_tests/data/traffic/jsons/config_without_ramping.jmx Starting standalone test @ 2023 Oct 6 13:37:43 UTC (1696599463801) Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445 summary + 1159 in 00:00:16 = 72.2/s Avg: 22 Min: 15 Max: 126 Err: 0 (0.00%) Active: 3 Started: 1161 Finished: 1158 summary + 21506 in 00:00:30 = 717.0/s Avg: 7 Min: 2 Max: 44 Err: 0 (0.00%) Active: 175 Started: 2225 Finished: 2050 summary = 22665 in 00:00:46 = 492.3/s Avg: 8 Min: 2 Max: 126 Err: 0 (0.00%)


Jmeter Version 5.6.2 http2 2.0.4

Creating summariser

Created the tree successfully using /var/lib/jenkins/ocslf_tests/data/traffic/jsons/config_without_ramping.jmx Starting standalone test @ 2023 Oct 6 13:33:41 UTC (1696599221904) Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445 summary + 1352 in 00:00:18 = 75.4/s Avg: 2 Min: 1 Max: 126 Err: 1352 (100.00%) Active: 1 Started: 1352 Finished: 1351

3dgiordano commented 8 months ago

Hi @heysarthak

Please, share jmeter.log, or the errors mentioned in the result (or jtl with detailed data) or the jmx used to try to identify what type of errors occurs. A summary with percentage of errors is not sufficient information for diagnosis.

Thanks.

heysarthak commented 8 months ago

696947366472,3,slf_subscriber_create,Non HTTP response code: java.util.concurrent.ExecutionException,"Non HTTP response message: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: bad response on HttpConnectionOverHTTP@4cabe5e9::SocketChannelEndPoint@426c120c[{l=/10.244.24.133:53846,r=ocudr-ingressgateway-prov.ocudr/10.96.148.93:80,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}]->[HttpConnectionOverHTTP@4cabe5e9(l:/10.244.24.133:53846 <-> r:ocudr-ingressgateway-prov.ocudr/10.96.148.93:80,closed=false)=>HttpChannelOverHTTP@46538e99(exchange=HttpExchange@3511837{req=HttpRequest[PUT /nudr-group-id-map-prov/v1/slf-group/accountID-310013100000867 HTTP/1.1]@10c62119[TERMINATED/null] res=HttpResponse[null 400 Illegal character CNTL=0x0]@3298bd7f[PENDING/null]})[send=HttpSenderOverHTTP@68e5daf3(req=QUEUED,failure=null)[HttpGenerator@637ee778{s=START}],recv=HttpReceiverOverHTTP@4211cce7(rsp=IDLE,failure=null)[HttpParser{s=CLOSE,0 of -1}]]]",scenario_subs_create 2-867,text,false,Test failed: code expected to match /201/,4431,184,1,1,http://ocudr-ingressgateway-prov.ocudr/nudr-group-id-map-prov/v1/slf-group/accountID-310013100000867,0,0,2


1696947396729,2,slf-query-subscriber,Non HTTP response code: java.util.concurrent.ExecutionException,"Non HTTP response message: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: bad response on HttpConnectionOverHTTP@3892c5c9::SocketChannelEndPoint@7fdc2ebf[{l=/10.244.24.133:38016,r=ocudr-ingressgateway-sig.ocudr/10.96.183.182:80,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}]->[HttpConnectionOverHTTP@3892c5c9(l:/10.244.24.133:38016 <-> r:ocudr-ingressgateway-sig.ocudr/10.96.183.182:80,closed=false)=>HttpChannelOverHTTP@5e806c29(exchange=HttpExchange@4b621519{req=HttpRequest[GET /nudr-group-id-map/v1/nf-group-ids HTTP/1.1]@65f03d31[TERMINATED/null] res=HttpResponse[null 400 Illegal character CNTL=0x0]@7bc75ee6[PENDING/null]})[send=HttpSenderOverHTTP@26fb9493(req=QUEUED,failure=null)[HttpGenerator@7dea9788{s=START}],recv=HttpReceiverOverHTTP@199734b1(rsp=IDLE,failure=null)[HttpParser{s=CLOSE,0 of -1}]]]",jp@gc - Ultimate Thread Group 3-145,text,false,Test failed: code expected to match /200/,4950,0,157,157,http://ocudr-ingressgateway-sig.ocudr/nudr-group-id-map/v1/nf-group-ids?subscriber-id=msisdn-310013100001824&nf-type=UDM,0,0,1

heysarthak commented 8 months ago

Hi @3dgiordano,

Please Find the logs in the above comment

3dgiordano commented 8 months ago

Hi @heysarthak

What you mention is not the complete jmeter log in DEBUG level or the jmx of the test that allows me to reproduce and diagnose the problem.

I need more information, either to reproduce exactly the same error or to diagnose based on a complete log.

One of the things I see is that it seems you are using a third party component, the Ultimate Thread Group, something that was not mentioned in the initial report. We need more info to understand if the problem is the interaction of these third components or is it part of our solution or some third party component used by us.

heysarthak commented 8 months ago

Hi @3dgiordano

I have to speak to my team if i can release our network logs or not, But one observation that i found is that if i use jmeter-bzm-http2-2.0.4.jar, with 11.0.15 of http2 and jetty it is throwing the error.

But if i use jmeter-bzm-http2-2.0.2.jar i.e. v2.0.2 with 11.0.15 jars of http2 and jetty it is working fine.

3dgiordano commented 8 months ago

Hi @heysarthak

We only need to know the details of the error. Mentioning 100% without a way how to reproduce the error is not enough information for us. If you send us how to reproduce the problem, (like with another site), we appreciate it. Otherwise you can send the logs, if possible without sensitive information (you can replace url, pass or any type sensitive information), to dgiordano at perforce.com .

Did you try the latest release 2.0.5? Maybe the fixes in the latest version resolved the issue.

AddRemover commented 7 months ago

I have very same issue. The problem is with the http2.0 servers only. As of now, 2.0.5 plugin first try to establish http1.1 and upgrade it to http2.0 or within ALPN negotiate version, and if supported, use HTTP2.0 directly. Have a try with https://google.com/ (it does support HTTP/2). However, my servers does not have (yet) SSL\TLS so I need pure http/2 what is actually does by --http2-prior-knowledge option of the curl. 2.0.2 version is working just fine with Jmeter 5.5, whilst latest 2.0.5 on Jmeter 5.6.2 - does not:

I've unpacked clean copy of apache-jmeter-5.6.2.zip, added jmeter-plugins-manager-1.10.jar and installed latest 2.0.5 version bzm http/2 plugin. any get request towards my server supporting ONLY http2.0 actually shows http1.1 on the wire. debug_2.0.5.txt So, there is no way to contact non TLS http2.0 servers with this bzm plugin version.

AddRemover commented 7 months ago

@3dgiordano I've attached debug log in my comment above. I also compare it with the 2.0.2 debug log and I can clearly see that initial request towards the server is being sent as HTTP1.1 instead of HTTP2.0. That is the problem... Hope that log helps to identify the issue. I would like to see a "checkbox" in the plugin allowing me to enable pure HTTP2.0 same as curl's --http2-prior-knowledge option. Thanks in advance. p.s. if attached debug log is not enough, I can create another one with more details you need.

AddRemover commented 7 months ago

@3dgiordano any update on this issue?

heysarthak commented 6 months ago

Hey @3dgiordano,

any update on the issue?

heysarthak commented 6 months ago

are we working on a solution? @3dgiordano or we should consider it not useable for this case?

heysarthak commented 4 months ago

Hi @3dgiordano, are we going to have a fix for the issue?

akhilgoswami8992 commented 1 month ago

Any workaround for this issue? Currently on apache jmeter 5.6.3 and Http2 2.0.5 version