-
Notifications
You must be signed in to change notification settings - Fork 167
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
Fix deadlock when accessing user instance from within a listener #7186
Conversation
Pull Request Test Coverage Report for Build andrew.meyer_4
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than the style nit this looks fine. Just needs a changelog entry.
// m_current_user is normally set very indirectly via the metadata manger | ||
if (!m_metadata_manager) | ||
m_current_user = new_user; | ||
auto user = std::shared_ptr<SyncUser>(nullptr); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
std::shared_ptr<SyncUser> user;
is the normal way to write this.
* Remove lock before calling `log_in` * Add test for deadlock
5293314
to
82cb295
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small suggestion on the changelog entry.
Co-authored-by: Kræn Hansen <kraen.hansen@mongodb.com>
else { // LoggedOut => LoggedIn | ||
auto user = *it; | ||
|
||
// LoggedOut => LoggedIn |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know what this comment means anymore? I guess we're in in get_user()
which implies we don't have a logged in user?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this case assumes a cached user is changing to a logged in state, but in the case I'm testing against, we are updating the current logged in users auth tokens.
Comment could probably be removed or adapted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say just remove it. I don't think it was adding much context.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was originally comments like this for each of the User state transitions, but they weren't maintained as the code was modified/
What, How & Why?
log_in
Fixes #7183
☑️ ToDos
bindgen/spec.yml
, if public C++ API changed