[backport -> release/3.6.x] fix(wasm): do not call attach() on re-entrancy #12452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Automated backport to
release/3.6.x
, triggered by a label in #12402.Original description
Summary
kong.runloop.wasm.attach()
may be called more than once when filters utilize thedispatch_http_call
proxy-wasm SDK function. Previously this was assumed to be false, which can yield errors like this one:This adds a
ngx.ctx
check and avoids callingproxy_wasm.attach()
in this case.Unfortunately it is incredibly non-trivial to add a test case for this at the moment, but the behavior change/correctness has been validated by hand.
Checklist
changelog/unreleased/kong
orskip-changelog
label added on PR if changelog is unnecessary. README.mdThere is a user-facing docs PRIssue reference
KAG-3603