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

Duplicate code executions if consumer channel was unexpectedly closed #209

Open
if0s opened this issue Sep 3, 2024 · 2 comments
Open

Duplicate code executions if consumer channel was unexpectedly closed #209

if0s opened this issue Sep 3, 2024 · 2 comments

Comments

@if0s
Copy link
Contributor

if0s commented Sep 3, 2024

Case of infobip https://elasticio.slack.com/archives/C01FLMQ0PB5/p1724140722291269?thread_ts=1723557442.846699&cid=C01FLMQ0PB5

Case of Gomocha

Hi Pavel, Olexandr,
 
I've created an additional flow for NOU, [AFAS->FMP daily] Stock_Sync->StockItem. This morning, I noticed that my chron expression was incorrect, it was running every minute from 3:00 to 3:59. This is now corrected.
 
Could you please check whether the page size of 100 is defective? For example, when retrieving a sample, I don't get 100 entities. Additionally, during execution, the number of expected iterations would be about 2.5k, instead of the actual 5.9k. The dataset consists out of about 250k records.
 
Best Regards,
 
Bastiaan Pierhagen

Slack conversation

Sailor Bug Report

Description

If the component encounters an unexpectedly closed consumer channel, the sailor will automatically restore the channel and resume processing the previous message by executing the component's code a second time, while the code from the previous execution continues to run.

This can be a significant problem if you're processing a message for an extended period. For example, if you have a trigger that needs to retrieve 50,000 objects from a system, it will do so in batches of 100 objects each - taking 100, emitting 100, and so on. To retrieve all the data, the component may require several minutes or even hours. If, during this process, an error occurs stating Channel unexpectedly closed, but we were listening. Reconnecting and re-listening queue the sailor will restart the main process. However, the previous process will continue to run as well, resulting in the component emitting a significant number of duplicates.
If this error occurs several times, it may also lead to an OOM error.

Sailor Version

2.7.2

@if0s
Copy link
Contributor Author

if0s commented Sep 3, 2024

This error seems to appear 31 minutes after the flow has started.

@if0s
Copy link
Contributor Author

if0s commented Sep 3, 2024

Looks like it's RabbitMQ problem - Delivery Acknowledgement Timeout
image

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