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

"Rule Restart Strategy" not restarting upon rules failure as expected #3519

Open
mahendra-prakashhh opened this issue Jan 17, 2025 · 5 comments

Comments

@mahendra-prakashhh
Copy link

mahendra-prakashhh commented Jan 17, 2025

Please describe your problem in detail, if necessary, you can upload the log file through the attachment:

We have configured ekuiper (version: lfedge/ekuiper:1.11.4-alpine - official image) to restart rules upon failure every 1 minute for 3 days from when it fails (as mentioned in the below image). In our case the failure happens because the MQTT broker becomes unreachable due to network connectivity or broker going down.

Kindly help us with this

Image

@mahendra-prakashhh mahendra-prakashhh changed the title "Rule Restart Strategy" not restating upon rules failure as expected "Rule Restart Strategy" not restarting upon rules failure as expected Jan 18, 2025
@ngjaying
Copy link
Collaborator

Hi @mahendra-prakashhh , if the etc/kuiper.yaml in docker was not mounted, the change may be reset. Could you please try to set it in the rule level by setting the rule option? Try to use the latest version if possible.

@mahendra-prakashhh
Copy link
Author

mahendra-prakashhh commented Jan 23, 2025

Thanks for the response!

  1. The screenshot attached above shows the result of executing cat kuiper.yaml from within the eKuiper container's shell. This confirms that the volume is mounted correctly.
  2. We attempted to set the restartStrategy at the individual rule level using the REST API. However, this resulted in an error indicating that 0 is not a valid value for jitterFactor. To verify, we checked whether the same error was generated for jitterFactor when specified in kuiper.yaml—it was not.
  3. Our requirement is to apply the restartStrategy globally for all rules, as supported in the kuiper.yaml configuration.
  4. We are using eKuiper as part of EdgeX Foundry version 3.1.0. Since this system is deployed at scale in air-gapped networks, we prefer to remain on the same version and address the issue within its current context.

@ngjaying
Copy link
Collaborator

Try to set a non 0 value for jitterFactor. About the version, due to the resource limit, contributors can only maitain the latest version. If you need to fix problems in the previous version, feel free to open a PR to master-1.xx.

@mahendra-prakashhh
Copy link
Author

Thanks for your response, @ngjaying.

We have already tested setting the jitterFactor to a non-zero value via the REST API within the range 0 < x < 1, and it works as expected. However, setting any value for jitterFactor directly in kuiper.yaml does not seem to take effect at all.

Our primary concern is that when an invalid value is set in kuiper.yaml, no error is logged nor is the valid range is specified in the documentation, making it difficult to identify configuration issues.

I appreciate the opportunity to contribute. I am willing to work on a fix for the 1.x.x version. To proceed, I would need the following clarifications:

Is the restartStrategy in kuiper.yaml parsed at all?
If so, could you kindly share the file path in this repository where it is being processed?
Looking forward to your guidance.

@ngjaying
Copy link
Collaborator

ngjaying commented Feb 5, 2025

@mahendra-prakashhh The kuiper.yaml file is parsed at internal/conf/conf.go, InitConf() function. Notice that, different version of 1.xx may still have differences.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants