-
Notifications
You must be signed in to change notification settings - Fork 552
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
transform: validate wasm binaries at deploy time #16290
Conversation
This is blocked on the corresponding vtools changes |
For testing, it will be nice to be able to define these tests using the WAT format. Enable the feature. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
We upgraded wasmtime and the features we use, so update the crates too Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44321#018d4303-0ddf-4ae5-a558-2dc0d50feb7a ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44321#018d4303-0dd6-4903-927c-d89505bef9df ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44321#018d4304-9021-405d-9b26-482da3599a38 ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44321#018d4304-9026-4618-bbb7-efa1bf0859a2 ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44327#018d5052-783e-4981-aa70-51ddbd41f3df ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/44718#018d7b90-c748-47ea-997b-d46c66cc8f66 |
Force push: push a v1 vs v2 wasm spec difference |
Our friend |
Pretty sure this is timing out on every CI run, currently. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Handful of non-pressing questions, and I feel like the plumbing might benefit from a DT test. Otherwise looks great to me.
Parsing wasm modules uses leb128 for numbers, so introduce a decoder for this with good tests. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This will allow us to extract imports and exports, so we can validate our ABI during deploys. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Support validating a wasm module without the expensive of compiling and running it. The validation is mostly a smoke test of the different things that could go wrong. It's still possible to have a module that does something "wrong" from an ABI prospective. I think this is good enough because at some point you have to run the module to make sure it does the right thing. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This does valiation of the WebAssembly binary during deploys. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
In the case of deploys errors could come from multiple different subsystems, so we will be consistent and always return std::error_code for all public methods in the transform subsystem. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Have more understandable error messages for users when they deploy functions, this will also help ducktape distinguish between them. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, LGTM
/ci-repeat 4 |
/backport v23.3.x |
Failed to create a backport PR to v23.3.x branch. I tried:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
As part of the multiple output topics project, we will be supporting multiple ABI versions.
To help reduce user confusion when the case of when the SDK is newer than Redpanda, we will
validate the versions we support at deploy time. As we currently will provide backwards compatibility,
but not forwards compatibility.
Backports Required
Release Notes
Improvements