Page MenuHomePhabricator

CheckUser stores two rows for account creations on WMF wikis
Closed, ResolvedPublic1 Estimated Story Points

Description

When querying with the "get edits" function an IP or CIDR, account creations are displayed twice in the results. I don't see the need for that to happen and results would be cleaner if just appeared once. Thanks.

Event Timeline

MarcoAurelio raised the priority of this task from to Needs Triage.
MarcoAurelio updated the task description. (Show Details)
MarcoAurelio subscribed.

You mean like this?

(Logs) . . 00:46 . . Krenair (talk | contribs | block) (Previously blocked) (bot, bureaucrat, check user, administrator) User account TestT123114 was created by Krenair (test)
        IP: 127.0.0.1   [UA here]
(Logs) . . 00:46 . . TestT123114 (talk | contribs | block) (Not unified) was created 
        IP: 127.0.0.1   [UA here]

Rather this:

(Logs) . . 16:37 . . USERNAME (talk | contribs | block) (Blocked) (Locked) User account USERNAME was created 
        IP: [IP here]   [UA here]
(Logs) . . 16:37 . . USERNAME (talk | contribs | block) (Blocked) (Locked) was created 
        IP: [IP here]   [UA here]

I can provide the full details in private if there's a need for them.

I guess it makes it's own entry from the AddNewAccount hook with a potentially slightly different timestamp, no comment, no title, etc. with the assumption that the user was created anonymously... And then gets the useful log entry via RecentChange_save.

Dreamy_Jazz renamed this task from CheckUser "get edits" duplicates results on account creations to CheckUser stores two rows for account creations on WMF wikis.Sep 29 2022, 8:09 PM
Dreamy_Jazz triaged this task as Medium priority.

In cases of many accounts being created this adds lots of extra entries.

Change #1052759 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Prevent duplicate account creation events in CheckUser entries

https://gerrit.wikimedia.org/r/1052759

Change #1052759 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Prevent duplicate account creation events in CheckUser entries

https://gerrit.wikimedia.org/r/1052759

@Dreamy_Jazz From Manual:$wgNewUserLog I tried the suggestion of adding $wgLogRestrictions["newusers"] = 'autoconfirmed'; to my LocalSettings.php. I created a user but I could not see this recorded in CheckUser. I assume because the user creation is not written to Recent Changes.

Is this something we need to support?

@Dreamy_Jazz From Manual:$wgNewUserLog I tried the suggestion of adding $wgLogRestrictions["newusers"] = 'autoconfirmed'; to my LocalSettings.php. I created a user but I could not see this recorded in CheckUser. I assume because the user creation is not written to Recent Changes.

Is this something we need to support?

I had not considered this. This shouldn't the case on WMF wikis, but I think we should still otherwise support it. We can probably fix this by still creating the private event if the newusers log requires a right to view.

Change #1055884 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Create private create-account event if 'newusers' log is restricted

https://gerrit.wikimedia.org/r/1055884

Change #1055884 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Create private create-account event if 'newusers' log is restricted

https://gerrit.wikimedia.org/r/1055884

I experimented with different combinations of $wgNewUserLog and $wgLogRestrictions['newusers'] and creating accounts. I saw only one account create entry logged in Special:CheckUser.

One thing I noticed is that if $wgNewUserLog = false; or $wgLogRestrictions['newusers'] = 'autoconfirmed'; and I create a user while logged in as another user, the fact that the account was created by another user is not shown in CheckUser. I assume because cu_private_event does not record that information.

I set $wgLogRestrictions['newusers'] = '*'; and the result seemed to be all the create account events in CheckUser were hidden (except those in cu_private_event), hidden in RecentChanges and I got permissions errors when going to Special:Log/newusers. I don't know if that is the expected outcome.

I also notice that, while logged in as a temporary user, if I create an account the CheckUser create account entry does not record the temporary account that created it. I wonder if that would be useful information to know. But I also see we don't record this information on Special:Log either.

Dreamy_Jazz closed this task as Resolved.EditedJul 24 2024, 4:57 PM

I experimented with different combinations of $wgNewUserLog and $wgLogRestrictions['newusers'] and creating accounts. I saw only one account create entry logged in Special:CheckUser.

One thing I noticed is that if $wgNewUserLog = false; or $wgLogRestrictions['newusers'] = 'autoconfirmed'; and I create a user while logged in as another user, the fact that the account was created by another user is not shown in CheckUser. I assume because cu_private_event does not record that information.

Yes. The private event does not store who created the account. It might be worth adding this, but it is out of scope of this ticket.

I set $wgLogRestrictions['newusers'] = '*'; and the result seemed to be all the create account events in CheckUser were hidden (except those in cu_private_event), hidden in RecentChanges and I got permissions errors when going to Special:Log/newusers. I don't know if that is the expected outcome.

I don't seem to be getting the permission errors when I set $wgLogRestrictions['newusers'] = '*';

I also notice that, while logged in as a temporary user, if I create an account the CheckUser create account entry does not record the temporary account that created it. I wonder if that would be useful information to know. But I also see we don't record this information on Special:Log either.

Only having this data in the CheckUser results might be useful, though wouldn't be a quick to implement and the ways I think of doing this would end up not having the log ID be connected in the CheckUser results. As such, I think we can leave this as-is unless there is a feature request for it from the community.

Not showing this in Special:Log was deliberate per T364716,