Page MenuHomePhabricator

Duplicate entry 'PHID-PHRF-n6jez7lb5eyyll77k7re-338' for key 'key_version'' in Phragment
Closed, WontfixPublic

Description

exception 'AphrontQueryDuplicateKeyException' with message '#1062: Duplicate entry 'PHID-PHRF-n6jez7lb5eyyll77k7re-338' for key 'key_version'' in /srv/phabricator/libphutil/src/aphront/storage/connection/mysql/AphrontMySQLDatabaseConnectionBase.php:296
2	Stack trace:
3	#0 /srv/phabricator/libphutil/src/aphront/storage/connection/mysql/AphrontMySQLDatabaseConnectionBase.php(275): AphrontMySQLDatabaseConnectionBase->throwQueryCodeException(1062, 'Duplicate entry...')
4	#1 /srv/phabricator/libphutil/src/aphront/storage/connection/mysql/AphrontMySQLDatabaseConnectionBase.php(181): AphrontMySQLDatabaseConnectionBase->throwQueryException(Object(mysqli))
5	#2 /srv/phabricator/libphutil/src/xsprintf/queryfx.php(6): AphrontMySQLDatabaseConnectionBase->executeRawQuery('INSERT INTO `ph...')
6	#3 [internal function]: queryfx(Object(AphrontMySQLiDatabaseConnection), '%Q INTO %T (%LC...', 'INSERT', 'phragment_fragm...', Array, ''338', 'PHID-PH...')
7	#4 /srv/phabricator/libphutil/src/aphront/storage/connection/AphrontDatabaseConnection.php(26): call_user_func_array('queryfx', Array)
8	#5 /srv/phabricator/phabricator/src/infrastructure/storage/lisk/LiskDAO.php(1280): AphrontDatabaseConnection->query('%Q INTO %T (%LC...', 'INSERT', 'phragment_fragm...', Array, ''338', 'PHID-PH...')
9	#6 /srv/phabricator/phabricator/src/infrastructure/storage/lisk/LiskDAO.php(1127): LiskDAO->insertRecordIntoDatabase('INSERT')
10	#7 /srv/phabricator/phabricator/src/infrastructure/storage/lisk/LiskDAO.php(1096): LiskDAO->insert()
11	#8 /srv/phabricator/phabricator/src/applications/phragment/storage/PhragmentFragment.php(149): LiskDAO->save()
12	#9 /srv/phabricator/phabricator/src/applications/phragment/storage/PhragmentFragment.php(256): PhragmentFragment->updateFromFile(Object(PhabricatorUser), Object(PhabricatorFile))
13	#10 /srv/phabricator/phabricator/src/applications/harbormaster/step/HarbormasterPublishFragmentBuildStepImplementation.php(103): PhragmentFragment->updateFromZIP(Object(PhabricatorUser), Object(PhabricatorFile))
14	#11 /srv/phabricator/phabricator/src/applications/harbormaster/worker/HarbormasterTargetWorker.php(46): HarbormasterPublishFragmentBuildStepImplementation->execute(Object(HarbormasterBuild), Object(HarbormasterBuildTarget))
15	#12 /srv/phabricator/phabricator/src/infrastructure/daemon/workers/PhabricatorWorker.php(87): HarbormasterTargetWorker->doWork()
16	#13 /srv/phabricator/phabricator/src/infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php(124): PhabricatorWorker->executeTask()
17	#14 /srv/phabricator/phabricator/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php(19): PhabricatorWorkerActiveTask->executeTask()
18	#15 /srv/phabricator/libphutil/src/daemon/PhutilDaemon.php(84): PhabricatorTaskmasterDaemon->run()
19	#16 /srv/phabricator/libphutil/scripts/daemon/exec/exec_daemon.php(112): PhutilDaemon->execute()
20	#17 {main}

This might be caused by it trying to create a version for a fragment from two builds at once. We should probably lock around the individual fragment updates to prevent this.

Related Objects

Event Timeline

hach-que raised the priority of this task from to Needs Triage.
hach-que updated the task description. (Show Details)
hach-que added a project: Phragment.
hach-que added subscribers: hach-que, epriestley.