RC5 Error [ERROR] i.g.h.f.ResourceFetcher - Actor ResourceFetcher crashed on message

Hi,

I’m Using 2.0.0-RC5 and am seeing the Actor ResourceFetcher crashed Error message.
It is caused by java.lang.IllegalArgumentException.

I’m not sure why this is happening, or if it is important, so I’ve attached the full (very long ) error message.
Any help or indication whether this Error can be ignored would be useful.

FYI

The script I run was captured by the gatling recorder, and then I modified it to capture a verification token on login and capture a value from a JSON resonse to a post

exec(http(“login_req_0”)
.get("""/""")
.headers(headers_login_0)
.check( css(“form#loginForm > input[name=__RequestVerificationToken]”, “value”).saveAs(“loginreqVerTok”) ))

I then successfully use ${loginreqVerTok} later in the script to login.

The json value was captured as below and then the captured ${theJobId} is used elsewhere eg in http(“FOOEY”) successfully.

http(“request_156”)

.post(uri3 + “”"/Api/v1/Jobs""")
.headers(headers_64)
.formParam(""“jobReceived”"", “”“2014-09-16T11:32:55+10:00"”")
.formParam(""“supportJob”"", “”“false”"")

.check(jsonPath("$.Job.Id").saveAs(“theJobId”))))
.exec( (s:Session) => {println("-------->>>>>> theJobId= " + s(“theJobId”).as[String]); s})
.exec(http(“FOOEY”).get(uri3 + “”"/Jobs/${theJobId}""")

the scenario is a simple grouping of chains

val scn = scenario(“KKKKK”)
.repeat(1) {
group(“G1”) {
exec(login_chain, switch_area_chain)
}
.group(“G2”){
exec(create_job_chain, fill_job_details_chain, save_job_chain)
}
}

Cheers

Karl

gatlingError1.txt (52.9 KB)

Hi,

ResourceFetcher is in charge of resources. Is there anywhere you use resources() or inferHtmlResources()?

Then, is this “Actor ResourceFetcher doesn’t support message Session” the first one you have? I’m wondering if it could be caused by something else happening first.

Cheers,

Stéphane

Hi Karl,

Do you have any details about this issue?
I’d like to release RC6 soon, and I’d like it to be the latest RC before final.

Cheers,

Stéphane

Hi Stéphane,

Yes resource() is used, unfortunately I have overwritten the log files and have been hacking the test around to make progress and have lost the example.
I think it happened when the resource() has too many sub queries in it… but that is a guess … I’ll try to recreate it for you.

However I do think that that there may also be an issue with groups() or long chains loosing session attributes saved from check().
the “theJobId” captured (see first message in this thread) goes missing in later chains and when I try to use it I get this error:-

“[ERROR] [09/25/2014 21:26:56.421] [GatlingSystem-akka.actor.default-dispatcher-8] [akka://GatlingSystem/user/$l] key not found: theJobId
java.util.NoSuchElementException: key not found: theJobId”

I’m trying to create a minimum test that recreates it… it could be that the webservice I’m calling is just flaky.

Is there a limit that you know of exec chains?
are groups run sequentially or is there some parallelism?

Hopefully I’ll get more specific details in the next post.

Cheers

Karl

Hi Karl,

I have a pretty good idea about what happened: https://github.com/gatling/gatling/issues/2249

I’m pretty sure this error (actually IllegalState) was caused by another crash happening first when processing the resource.
I suspect something like an Exception while parsing HTML.

I’ve fixed the downstream issue, but I can’t do anything about the root cause until someone provides me with the original exception stacktrace.

Cheers,

Stéphane