76

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:

30
  • 6
    This might be related to this: meta.stackexchange.com/questions/212622/… Commented Dec 20, 2013 at 21:45
  • 16
    Well, take a look at this! Commented Dec 20, 2013 at 21:58
  • 2
    @Shadow There's literally nothing in his history that would indicate something happened here. Definitely only the devs would be able to answer this one.
    – animuson StaffMod
    Commented Dec 20, 2013 at 21:59
  • 3
    @animuson true. I shudder to the thought this will happen to Jon Skeet... imagine he suddenly have a drop of 500,000 points! Commented Dec 20, 2013 at 22:01
  • 3
    @Shadow Wizard, a thousand of us would probably award a 500 rep bounty to one of his answers. Commented Dec 20, 2013 at 22:04
  • 2
    It seems this just happened within the last day. If you look at his profile activity you see that about 8 hours ago, he is "JoeZ". About 7 hours ago other people call him "user263...".
    – chue x
    Commented Dec 20, 2013 at 23:21
  • 1
    This happened to me too. Commented Dec 20, 2013 at 23:32
  • 1
    Whatever happened has been reversed. The user's rep is now 8,928. Commented Dec 21, 2013 at 3:56
  • 8
    I appreciate everyone looking into this. My rep eventually came back, although I did have to reset my name manually. It was the strangest thing when it happened. When I went back to my profile page, there was a green bubble over the Reputation tab that said something like -8752 or the like (I didn't remember the number, I just remembered it was large and negative), and my rep had dropped to 41. I had come to my profile page when I noticed my name started showing up as user2638924 instead of "Joe Z." My rep eked back up to 56 when someone accepted one of my answers.
    – Joe Z
    Commented Dec 23, 2013 at 6:58
  • 20
    We are aware of the issue and are looking into this, though I don't expect that anything will happen before the new year (people are on vacation at Stack Exchange too...).
    – Oded
    Commented Dec 23, 2013 at 21:22
  • 3
    @Oded here is another one for you. Commented Dec 26, 2013 at 14:08
  • 1
    @gnat - it might be related - a cached value certainly looks to be the culprit. I am actually taking some time off - so not really had a chance to investigate this (and most of the devs are taking a few days off as well, so this may have to wait till after the new year)
    – Oded
    Commented Dec 26, 2013 at 20:25
  • 4
    Is this user one where the issue has come and gone, and they are just not around (last seen Oct 24 '11) to change their display name back? Or did they really post ~2,500 answers under the autogenerated username? Commented Dec 27, 2013 at 3:17
  • 1
    Nothing so far, @Sha
    – Oded
    Commented Jan 3, 2014 at 12:50
  • 2
    Got the same at Stackoverflow.com Commented Jan 9, 2014 at 21:38

2 Answers 2

42

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...

5
  • 10
    +1 for making me laugh out loud with that comment. Commented Jan 22, 2014 at 2:42
  • Awesome! But it means it happened for long time, wonder how we missed it before. Also, curious to know what restored the rep and badges back to normal? The latest victim for example was affected for long hours, even after being upvoted and downvoted. Commented Jan 22, 2014 at 8:13
  • 1
    @ShadowWizard there is a job that runs nightly that sums up everyone's rep history and compares to their current rep - if it doesn't match it recalcs them to make sure everything's right. The count affected is metric I'll be adding to our new monitoring system so we can see when a source of skew is introduced in the future. Commented Jan 22, 2014 at 10:01
  • @Nick thanks. Hmm... but it means badges are also re-calculated? Can't it lead to losing some badges that aren't eligible anymore after the recalculation? Commented Jan 22, 2014 at 10:19
  • 1
    @ShadowWizard a rep recalc doesn't affect badges, and the badge counts sync with current actual badge counts via another nightly task as well. User to badge mapping rows in the database aren't added or removed by either process. Commented Jan 22, 2014 at 10:30
6
+100

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)

11
  • 3
    I think they forgot to make hell bans less public =) Commented Jan 21, 2014 at 2:13
  • 1
    As I posted on the question, I wonder if this user was affected, and is not around to change his name back (hasn't been seen since Oct 2011). According to the comments on several of his posts (this question, and its answers, for instance), it seems his username was patrick_dw at some point. Commented Jan 21, 2014 at 15:21
  • 2
    @jadarnel27 - Unlikely. He's had that username since at least last August 2012. wayback machine Commented Jan 21, 2014 at 15:25
  • Please remove the screenshot of my personal info from here. I don't see how it helps you troubleshoot. I am user2808697. Commented Jan 21, 2014 at 15:56
  • 2
    @sedefcho it's not personal, everyone can see it by clicking your name same way you can see anyone's profile on any site. It help by keeping a log of the affected users. Commented Jan 21, 2014 at 15:58
  • @ShadowWizard I know that of course. But if I remove it later, it will still stay here. OK? And the rep loss is wrong btw. Commented Jan 21, 2014 at 15:59
  • @sedefcho have it your way. cheers. Commented Jan 21, 2014 at 16:01
  • Ah, good catch @MartinSmith. Commented Jan 21, 2014 at 16:02
  • @ShadowWizard OK. Thank you. Commented Jan 21, 2014 at 16:02
  • I think my reputation was 7165 on SO before this happened. Now I am at 39 :) / sedefcho == peter.petrov here in meta /. Also, I see my nickname on SO is gone too (was peter.petrov, now just user2808697). Commented Jan 21, 2014 at 22:14
  • 1
    @peter.petrov true. The bug affects reputation, badges and display name, resetting all to default. Reputation and badges restore themselves at some point (see other cases linked here) but you have to change the display name manually... you can do it now and it will stay. Commented Jan 21, 2014 at 22:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .