This user is only displaying 56 rep. https://stackoverflow.com/users/2354107/user2638924
But surely (s)he has much more than that.
The user has also never given out any bounties.
Also, badges are missing:
Meta Stack Exchange is a question and answer site for meta-discussion of the Stack Exchange family of Q&A websites. It only takes a minute to sign up.
Sign up to join this communityThis user is only displaying 56 rep. https://stackoverflow.com/users/2354107/user2638924
But surely (s)he has much more than that.
The user has also never given out any bounties.
Also, badges are missing:
A fix or this was just deployed, sorry it took so long to track down. The root cause was review audits, the common pattern in these users was they were owners of a post used for a positive review audit in the first post review queue.
Down in the code was this:
post.Owner.Reputation = deterministicFakeStats.Next(0, 10) * 5 + 1;
post.Owner.BadgeSummary = "1=0 2=0 3=0";
The issue was that post.Owner
is a Lazy load of a User
via User.Get(int id)
, which is a Linq2SQL query. This means the loaded user is in the relational mapper so when sometimes a SubmitChanges()
is later called for another reason (rotating a user cookie, etc.) they get saved. What do they get saved with? You guessed it! a random-ish low amount of rep and no badges.
The change is simple:
- var post = Post.GetReadOnly(reviewTask.PostId);
+ // Note we're loading the owner here as to not screw with the actual database
+ // Otherwise, a Post.Owner trigger of User.Get() underneath would cause mutation on audits
+ var post = Post.GetReadOnly(reviewTask.PostId, Post.UserLoadMode.Owner);
We have a few overloads for the Dapper-based Post.GetReadOnly()
, the UserLoadMode.Owner
of which will load the User object via a LEFT JOIN
where the Linq2SQL mapper is unaware of it, preventing any mutation if a save is called later in the request.
There may be a few more comments added further down too...
Until this is fixed, I'll keep here a "log" of the victims, starting now. If anyone spot any other victims I miss don't hesitate to edit it in here as well, I've made it CW on purpose.
What they have in common? So far all I could see is that all victims have accounts on other Stack Exchange sites, most including account here on Meta and more than 1000 rep before the reset took place. (not all though)
January 20th, 2014: user2466472
Fixed few hours after posted here, with no clear reason how
January 21st, 2014: user2808697 (rep loss: 6,622)