XF 2.2 Deadlock while import with more than 2 processes (Vbulletin4.x => xenforo 2.2)

Eran

Member
Hi everyone and thanks for the ones who helped me with my last thread.
Now, I'm facing an issue that I've google a lot on, Getting this error while on stage of any kind of posts (PMs, Profile, etc)
The error I get is:
Code:
XF\Db\DeadlockException: MySQL query error [1213]: Deadlock found when trying to get lock; try restarting transaction src/XF/Db/AbstractStatement.php:230
Generated by: Unknown account Feb 21, 2023 at 6:30 PM
Stack trace
INSERT  INTO `import_log_vbulletin4_3` (`content_type`, `old_id`, `new_id`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE new_id = VALUES(new_id)
------------

#0 src/XF/Db/Mysqli/Statement.php(198): XF\Db\AbstractStatement->getException('MySQL query err...', 1213, '40001')
#1 src/XF/Db/Mysqli/Statement.php(79): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1213, '40001')
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(223): XF\Db\AbstractAdapter->query('INSERT  INTO `i...', Array)
#4 src/XF/Import/Log.php(119): XF\Db\AbstractAdapter->insert('import_log_vbul...', Array, false, 'new_id = VALUES...')
#5 src/XF/Import/DataManager.php(118): XF\Import\Log->log('conversation', '12309001', '745773')
#6 src/XF/Import/Data/AbstractData.php(135): XF\Import\DataManager->log('conversation', 12309001, 745773)
#7 src/addons/XFI/Import/Importer/vBulletin.php(1982): XF\Import\Data\AbstractData->save(12309001)
#8 src/XF/Import/Runner.php(244): XFI\Import\Importer\vBulletin->stepPrivateMessages(Object(XF\Import\StepState), Array, 8)
#9 src/XF/Import/ParallelRunner.php(213): XF\Import\Runner->runStep('privateMessages', Object(XF\Import\StepState), 8)
#10 src/XF/Cli/Command/ImportChildProcess.php(77): XF\Import\ParallelRunner->runChildProcess('privateMessages', 12309000, 12312000, Object(Closure))
#11 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\ImportChildProcess->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\ImportChildProcess), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 cmd.php(15): XF\Cli\Runner->run()
#17 {main}
Request state
array(1) {
  ["cli"] => string(120) "/home/fxpstage/domains/fxp-stage.fcdn.co.il/xen/upload/cmd.php xf:import-child-process privateMessages 12309000 12312000"
}

I tried:
-Change server / MySQL server configurations and resources limits
-Import once with Retain ID, and once without it - the same problem.

I saw solutions with the queries, but I assume that it's not the official importer's fault, Although there's might be handler to retry or something. (Or there is?)


How can I solve it? I found here topics with Deadlock exceptions, but I think my problem might be a different from the others, The deadlock is with writing to the importer log table.

Thanks in advance everyone,
Eran
 
It may be worth posting your server set up and config here so others can assist with tuning.

Hi!
Thank you for the reply it took me a little time to get those details.
The configurations attached. The server has 8 cores, 64gb RAM, SSD
 

Attachments

  • 27B7FFD2-878F-49BC-9602-1EF7671AAFF7.webp
    27B7FFD2-878F-49BC-9602-1EF7671AAFF7.webp
    27.4 KB · Views: 19
Back
Top Bottom