Blazemeter / HLSPlugin

A repo to hold the OpenSource HLS JMeter Plugin code
Apache License 2.0
48 stars 17 forks source link

Thread group terminates on download issue when 'on_sample_error' set to 'continue' #8

Open gmarzot opened 4 years ago

gmarzot commented 4 years ago

I have on_sample_error set to continue

continue

but thread group terminates if there is is an issue with the sample.

also i can not see any details on why the downloiad exception occurred

thank you

2020-03-03 09:40:40,888 WARN c.b.j.v.c.VideoStreamingSampler: Problem downloading playlist com.blazemeter.jmeter.videostreaming.core.exception.PlaylistDownloadException: Problem downloading media playlist https://cache.ramp.com:443/omnicacheroutehls/https/dcunilive83-lh.akamaihd.net/i/dclive_1@15468/index_150_av-p.m3u8?sd=10&rebase=on at com.blazemeter.jmeter.videostreaming.core.VideoStreamingSampler.downloadPlaylist(VideoStreamingSampler.java:106) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler.downloadPlaylist(HlsSampler.java:97) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler.downloadPlaylist(HlsSampler.java:92) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler.access$700(HlsSampler.java:20) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler$MediaPlayback.updatePlaylist(HlsSampler.java:143) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler$MediaPlayback.downloadNextSegment(HlsSampler.java:127) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler$MediaPlayback.access$200(HlsSampler.java:100) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.hls.HlsSampler.sample(HlsSampler.java:68) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.core.VideoStreamingSampler.sample(VideoStreamingSampler.java:79) [jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.hls.logic.HlsSampler.sample(HlsSampler.java:184) [jmeter-bzm-hls-3.0.jar:?] at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1271) [ApacheJMeter_http.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) [ApacheJMeter_core.jar:5.2.1] at java.lang.Thread.run(Thread.java:834) [?:?] 2020-03-03 09:40:40,888 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-343 2020-03-03 09:40:40,888 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-343

sebastianlorenzo88 commented 4 years ago

Hi,

If you add a View Result Tree can you see the sample result of the Streaming Sampler? You should see a failure result and the detail of why it failed.

Could you provide us the jmx file to reproduce the issue?

gmarzot commented 4 years ago

there is nothing special about the jmx - just an hls playlist url added. the thread group has continue on error option set. this server being tested either timed out or aborted the response.

the issue is that the thread exited.. i would think it would retry or attempt the next get after encountering an error with one transaction.

doesn't the trace above point to where to handle the exception?

sebastianlorenzo88 commented 4 years ago

If you set Continue and you only have one HLS sampler when it fails it will return a sample error and start a new iteration, in case the test is set with only one iteration it will finish after return the sampling error.

The sampler does not support reattempt in case of error, this feature is in our backlog but it won't be implemented in the near future.

As a workaround, you could configure your thread group to loop forever and set a limit duration and the Streaming Sampler with the option "Resume video download between iterations" checked.

If you provide us more detail of what you want to simulate and why this feature is important to you we can re analyze the priority.

gmarzot commented 4 years ago

what you describe makes sense and I think that work around will be fine. what we are trying to do is maintain the load of N users even if transient errors occur. I will post back if the workaround behaves differently than expected. thank you

On Mon, Mar 9, 2020 at 3:49 PM Sebastián Lorenzo notifications@github.com wrote:

If you set Continue and you only have one HLS sampler when it fails it will return a sample error and start a new iteration, in case the test is set with only one iteration it will finish after return the sampling error.

The sampler does not support reattempt in case of error, this feature is in our backlog but it won't be implemented in the near future.

As a workaround, you could configure your thread group to loop forever and set a limit duration and the Streaming Sampler with the option "Resume video download between iterations" checked.

If you provide us more detail of what you want to simulate and why this feature is important to you we can re analyze the priority.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Blazemeter/HLSPlugin/issues/8?email_source=notifications&email_token=AB7T3IBAG4WPGU75BBGCNZTRGVB47A5CNFSM4LAMHFU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOIZ6VY#issuecomment-596746071, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB7T3IBHH477OPU37TFJHXLRGVB47ANCNFSM4LAMHFUQ .

Otmann commented 4 years ago

I have the same problem, I set the Thread group as you said to loop forever and set a Limitation Duration, and I checked the resume video download between Iterations checkbox... here the exception I got: 2020-04-07 20:31:01,170 WARN c.b.j.v.c.VideoStreamingSampler: Problem downloading playlist com.blazemeter.jmeter.videostreaming.core.exception.PlaylistDownloadException: Problem downloading master https://damxdcfpo.maxdome.de/mxd-manifest-service/mxd-mediavault-prod/540e30_18928950_2017-08-09_02-49/18928950.ism/.mpd?session_id=1007560909-1171436075-ddb54&filter=(type==%22video%22%26%26MaxHeight%3C=576)%7C%7C(type==%22audio%22%26%26FourCC==%22AACL%22) at com.blazemeter.jmeter.videostreaming.core.VideoStreamingSampler.downloadPlaylist(VideoStreamingSampler.java:106) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.dash.DashSampler.sample(DashSampler.java:34) ~[jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.videostreaming.core.VideoStreamingSampler.sample(VideoStreamingSampler.java:79) [jmeter-bzm-hls-3.0.jar:?] at com.blazemeter.jmeter.hls.logic.HlsSampler.sample(HlsSampler.java:184) [jmeter-bzm-hls-3.0.jar:?] at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1271) [ApacheJMeter_http.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490) [ApacheJMeter_core.jar:5.2.1] at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) [ApacheJMeter_core.jar:5.2.1] at java.lang.Thread.run(Unknown Source) [?:?]

sebastianlorenzo88 commented 4 years ago

For some reason, you cannot download the master playlist, I tried to reproduce the issue but I could not.

This happens to you every time you run the script?

Could you send me your jmx and the log of your execution with the following configuration?

image

Regads.

Otmann commented 4 years ago

Yes it happens to me every time I run the script...here the jmx file Iterate_Manifest.zip here is th log file:

P_List_Dowl_Exception.zip

sebastianlorenzo88 commented 4 years ago

Hi

Your log does not have all the info I asked you, but it looks like all the samplers are responding correctly except one. The one which is failing could not download the master playlist and when this happens the plugin logs that exception. In the View Result Tree, you could see the Sample Result with more info regarding the error. If you could send me again your log but this time checking the following options:

I could analyze if it is a plugin issue.

Regards