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

Address race condition when creating users. Addresses #1834 #1852

Closed
wants to merge 1 commit into from

Conversation

baus
Copy link

@baus baus commented Jan 5, 2014

This is a second attempt at preventing multiple users from being created. My previous PR on issue #1834 still had a race condition. I'm pretty sure this doesn't, but it depends on the application rejecting users when their password is empty.

This is more difficult to address than it seems because the correct way to do this is with an atomic operation on the DB, such as a conditional INSERT, but SQLite does not support conditional INSERTs and it if did, it would require bypassing Bookshelf.

I think this this about as close as we can get to solving this issue w/out doing heavy lifting on the data model.

There maybe other places in the application which have similar race conditions which depend on counters in the DB -- for example creating slugs for posts and users.

…f the auto-increment, and also doesn’t set the password until it certain that there is only one users to prevent users from logging before users other than the first can be authenticated.
@baus
Copy link
Author

baus commented Jan 5, 2014

I just realized this PR still doesn't meet the guidelines. I'll try it again in the morning.

@ErisDS ErisDS closed this Jan 5, 2014
@ErisDS ErisDS reopened this Jan 5, 2014
@baus baus closed this Feb 4, 2014
@baus baus deleted the atomicusercreation2 branch February 4, 2014 02:43
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