Page MenuHomePhabricator

CannotCreateActorException: Cannot create an actor for an IP user when temporary accounts are enabled
Closed, ResolvedPublic2 Estimated Story PointsPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   CannotCreateActorException: Cannot create an actor for an IP user when temporary accounts are enabled
exception.trace
from /srv/mediawiki/php-1.43.0-wmf.16/includes/user/ActorStore.php(638)
#0 /srv/mediawiki/php-1.43.0-wmf.16/includes/user/ActorStore.php(415): MediaWiki\User\ActorStore->validateActorForInsertion(MediaWiki\User\UserIdentityValue)
#1 /srv/mediawiki/php-1.43.0-wmf.16/includes/changes/RecentChange.php(452): MediaWiki\User\ActorStore->acquireActorId(MediaWiki\User\UserIdentityValue, Wikimedia\Rdbms\DBConnRef)
#2 /srv/mediawiki/php-1.43.0-wmf.16/includes/changes/CategoryMembershipChange.php(211): RecentChange->save()
#3 /srv/mediawiki/php-1.43.0-wmf.16/includes/changes/CategoryMembershipChange.php(147): CategoryMembershipChange->notifyCategorization(string, MediaWiki\Title\Title, MediaWiki\User\UserIdentityValue, string, MediaWiki\Title\Title, string, MediaWiki\Revision\RevisionStoreRecord, boolean)
#4 /srv/mediawiki/php-1.43.0-wmf.16/includes/changes/CategoryMembershipChange.php(116): CategoryMembershipChange->createRecentChangesEntry(MediaWiki\Title\Title, integer)
#5 /srv/mediawiki/php-1.43.0-wmf.16/includes/jobqueue/jobs/CategoryMembershipChangeJob.php(216): CategoryMembershipChange->triggerCategoryAddedNotification(MediaWiki\Title\Title)
#6 /srv/mediawiki/php-1.43.0-wmf.16/includes/jobqueue/jobs/CategoryMembershipChangeJob.php(167): CategoryMembershipChangeJob->notifyUpdatesForRevision(Wikimedia\Rdbms\LBFactoryMulti, WikiPage, MediaWiki\Revision\RevisionStoreRecord)
#7 /srv/mediawiki/php-1.43.0-wmf.16/extensions/EventBus/includes/JobExecutor.php(80): CategoryMembershipChangeJob->run()
#8 /srv/mediawiki/rpc/RunSingleJob.php(60): MediaWiki\Extension\EventBus\JobExecutor->execute(array)
#9 {main}
Impact
Notes

See T349219: [M] Investigate: Which workflows create an IP actor?.

Details

Request URL
https://mw-jobrunner.discovery.wmnet/rpc/RunSingleJob.php
Related Changes in Gerrit:

Event Timeline

Not sure if this is still a problem (error above was seen on August 1), but worth double checking.

I do not believe that this is fixed. Looking at the API, it seems that this was for an import of revisions.

What I'm thinking is going wrong:

  1. An import occurs with revisions that contain IP addresses
  2. The import succeeds, because we allow actor IDs for IP addresses on import
  3. At least one of the IP revisions adds a category to the page, and wgRCWatchCategoryMembership is true.
  4. This causes a CategoryMembershipChangeJob to be added for the imported revision
  5. The job creates a RecentChange entry for the categorisation
  6. This attempts to create an actor ID, but not using the actor store that allows creating IP address actors

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

[mediawiki/core@master] [WIP] Use import actor store where needed in RC categorisation

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

mszabo changed the task status from Open to In Progress.Sep 30 2024, 2:47 PM
mszabo claimed this task.

Change #1072801 merged by jenkins-bot:

[mediawiki/core@master] Use import actor store where needed in RC categorisation

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

Change #1077987 had a related patch set uploaded (by Máté Szabó; author: Máté Szabó):

[mediawiki/core@master] recentchanges: Make CategoryMembershipChange constructor args required

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

dom_walden subscribed.

I did not see an exception when importing an article which had an IP edit which added a category.

Test environment:

Change #1077987 merged by jenkins-bot:

[mediawiki/core@master] recentchanges: Make CategoryMembershipChange constructor args required

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