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

C19288 accord async reads are unsafe #98

Open
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

bdeggleston
Copy link
Member

No description provided.

SafeCommand safeCommand = in.ifInitialised(txnId);
if (safeCommand != null) safeCommand.removeListener(this);
}, node.agent()));
if (waitingOn != null)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you hit a NPE? since we touch waitingOn.stream() we would hit a NPE.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, if there are multiple calls to cancel it will throw an NPE

Copy link
Contributor

@dcapwell dcapwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

am I right that async reads are fine, its just async ephemeral reads is where we have issues? Else I don't see the real change that fixes async reads

@bdeggleston
Copy link
Member Author

I think that async reads are safe by virtue of the execution process, but the assertion was assuming they were synchronous. Was there another issue with ephemeral reads? I'm less familiar with them, but it seems like it would be ok for an ephemeral read to read the from "future", so long as they don't go backwards in time

@dcapwell
Copy link
Contributor

We disable Ephemeral Reads in C* as they don't work (let alone a single cache evict will cause chaos), so thats fine by me.

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 this pull request may close these issues.

2 participants