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

chan desync regression #1604

Closed
michaelortmann opened this issue Jun 7, 2024 · 3 comments · Fixed by #1729
Closed

chan desync regression #1604

michaelortmann opened this issue Jun 7, 2024 · 3 comments · Fixed by #1729

Comments

@michaelortmann
Copy link
Member

michaelortmann commented Jun 7, 2024

For eggdrop 1.10.0rc1 #1374 has been merged

Side effect is a chan desync

For example stats.mod now continuously prints like the following every minute:

Channel '#test' desynched: 2 eggmembers vs 1 statsmembers. Resynching...

See full example log here:

https://pastebin.com/xS6Fhbj8

@michaelortmann
Copy link
Member Author

michaelortmann commented Jun 7, 2024

In this regard it is interesting that #1374 introduced the WHO_SYNC flag

because it just happened, when developing #1593, i noticed the WHO_SYNC flag in clear_channel() is used in a way, thatg i cant maintain / understand it fully, where it is altered when reset is set but then discarded in init_channel() along with the user record, that is also called when reset is set. It was decided to let it be with #1593, because no real world problem could be shown. Now here we have a real world problem that could be bound to the WHO_SYNC design.

@michaelortmann
Copy link
Member Author

michaelortmann commented Jan 7, 2025

Robby found, that it also affects .channel and .status showing a member count off by +1

It is a core issue, not a stats.mod issue.

See also: https://pastebin.com/xSazr7Dt

@michaelortmann
Copy link
Member Author

here: https://github.com/eggheads/eggdrop/pull/1374/files#diff-71cbee3e3d9097207d7afa9d2c6e96f3c146aa07354b94b3ac574a243ffa15b9R1280
splitnick(&uhost) returns "" (empty string), because in my testcase, uhost is @BotA and doesnt contain a '!' char, which is, what splitnick() is looking for.
and then here: https://github.com/eggheads/eggdrop/pull/1374/files#diff-71cbee3e3d9097207d7afa9d2c6e96f3c146aa07354b94b3ac574a243ffa15b9R1298
got352or4() is called, which will look up ismember(chan, emptynick) and create a new member for the emptynick.

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

Successfully merging a pull request may close this issue.

1 participant