Ss/flu1 factorization2 #55
Loading…
Reference in a new issue
No description provided.
Delete branch "ss/flu1-factorization2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Separating append server related code to new module.
I love these revisions - but I have a concern about casting the wedge state change message to another process. In the current FLU when wedge status changes, that state change is immediate and flows through any subsequent requests from clients until the chain manager comes along to rescue things.
It seems like we introduce a race condition by casting where the message to update the wedged state is sent, and in the meanwhile, future incoming requests are processed as if nothing were wrong. That seems like it might impact the safety guarantees we're trying to make.
Thank you for looking closely @mrallen1
I'm sorry that I don't understand the comment correctly 😅 ,
gen_server:cast()
are used to replaceerlang:send()
(or!
) and the caller does not wait for ack/reply for it.So, I'm wondering whether this PR changes message pattern and introduces some race / consistency breaking or there has been possibility to suffer consistency around wedge state management. Apparently, either is important 🍖 😄
I'm not sure I can easily explain my concerns in a comment, so maybe we could have a chat tonight on Mumble or Screenhero and I can step through my concerns - it may well be that I am misunderstanding how the original code worked.
It will be very helpful, thanks!
As for screenhero, I tried a few weeks ago but couldn't download itAfter our discussion, I think these changes are equivalent in behavior to the original implementation. My mistake in misremembering how they were structured.
👍
+1, many thanks!