Skip to content
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

Discussion: Can UDF expression cause inconsistency when UDF server fails? #15092

Closed
kwannoel opened this issue Feb 14, 2024 · 4 comments
Closed

Comments

@kwannoel
Copy link
Contributor

kwannoel commented Feb 14, 2024

When UDF server fails, we insert null values.
Consider that this is updatable stream, in that case when running updates / deletes, the null value can lead to panics due to inconsistent state:

insert udf(1) -> null (fails initially)
delete udf(1) -> 3 (succeeds later) this can cause panic due to inconsistent state, since no such value (3) exists.

Not sure how to deal with this case yet.

We also need a reproduction of it first. I think can just create a UDF server, kill it to force null values being emitted, restart it, update some values.

@kwannoel
Copy link
Contributor Author

Seems we have to drop and recreate mv in that scenario.

@BugenZhao
Copy link
Member

This may apply to all expressions that are impure, whether deliberate or accidental (like NULL padding on temporary failures). There's an unimplemented RFC for this: risingwavelabs/rfcs#24

@kwannoel
Copy link
Contributor Author

Can we add a config to always retry on UDF server error? I.e. block the entire stream graph, until UDF server is back online.

@kwannoel
Copy link
Contributor Author

kwannoel commented Mar 6, 2024

Added the config #15303

@kwannoel kwannoel closed this as completed Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants