View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006507 | OXID eShop (all versions) | 4.12. Subshop handling | public | 2016-09-19 11:04 | 2016-09-20 08:33 |
| Reporter | kattenberg | Assigned To | |||
| Priority | high | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | duplicate | ||
| Platform | Linux | OS | Debian | OS Version | 3.2.73-2 |
| Product Version | 4.10.1 / 5.3.1 | ||||
| Summary | 0006507: MySQL Deadlock / aServersData is written on every page view | ||||
| Description | If you use subshops, Oxid is deleting and inserting the aServersData entry in the oxconfig table on every page view which sometimes leads to MySQL deadlocks on our server. | ||||
| Steps To Reproduce | 1. Call any page of shop 2. 2. Watch it renewing with this query: "SELECT * FROM oxconfig WHERE OXVARNAME = 'aServersData'" | ||||
| Additional Information | On line 216 the parameter gets written with shop ID 1, but it's always read shop-specific on line 46. I could simply fix it by replacing the method call "getConfigParam" with "getSystemConfigParameter" on line 46 of the "oxserversmanager.php". | ||||
| Tags | No tags attached. | ||||
| Attached Files | EXCEPTION_LOG.txt (2,876 bytes)
oxConnectionException-oxException (time: 2016-09-08 11:10:40): [1213]: mysql error: [1213: Deadlock found when trying to get lock; try restarting transaction] in EXECUTE (delete from oxconfig where oxshopid = '1' and oxvarname = 'aServersData' and oxmodule = '', Array) with user ---
Stack Trace: #0 /home/ape/---/releases/deploy_---1473157764032/core/adodblite/adodbSQL_drivers/mysql/mysql_driver.inc(369): adodb_throw('mysql', 'EXECUTE', 1213, 'Deadlock found ...', 'delete from oxc...', Array, Object(object_ADOConnection))
#1 /home/ape/prod_---/releases/deploy_---1473157764032/core/adodblite/adodb.inc.php(316): mysql_driver_ADOConnection->do_query('delete from oxc...', -1, -1, Array)
#2 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxlegacydb.php(228): ADOConnection->Execute('delete from oxc...', Array)
#3 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxconfig.php(2101): oxLegacyDb->execute('delete from oxc...')
#4 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxconfig.php(2739): oxConfig->saveShopConfVar('arr', 'aServersData', Array, '1')
#5 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxserversmanager.php(216): oxConfig->saveSystemConfigParameter('arr', 'aServersData', Array)
#6 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxserversmanager.php(80): oxServersManager->_save(Array)
#7 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxserverprocessor.php(106): oxServersManager->saveServer(Object(oxApplicationServer))
#8 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxsystemeventhandler.php(144): oxServerProcessor->process()
#9 /home/ape/prod_---/releases/deploy_---1473157764032/application/controllers/oxstart.php(35): oxSystemEventHandler->onShopStart()
#10 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxconfig.php(450): oxStart->appInit()
#11 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxconfig.php(337): oxConfig->init()
#12 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxmodulelist.php(151): oxConfig->getConfigParam('aModulePaths')
#13 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxmodulelist.php(73): oxModuleList->getModulePaths()
#14 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxfunctions.php(82): oxModuleList->getActiveModuleInfo()
#15 [internal function]: oxAutoload('d3log')
#16 [internal function]: spl_autoload_call('d3log')
#17 /home/ape/prod_---/releases/deploy_---1473157764032/modules/_d3modcfg/modules/controllers/d3_oxshopcontrol_modcfg_extension.php(38): class_exists('d3log')
#18 /home/ape/prod_---/releases/deploy_---1473157764032/core/oxid.php(32): d3_oxshopcontrol_modcfg_extension->start()
#19 /home/ape/prod_---/releases/deploy_---1473157764032/index.php(34): Oxid::run()
#20 /home/ape/prod_---/releases/deploy_---1473157764032/oxseo.php(36): require('/home/ape/prod_...')
#21
{main} | ||||
| Theme | Not defined | ||||
| Browser | All | ||||
| PHP Version | 5.6 | ||||
| Database Version | 5.5 | ||||
| duplicate of | 0006484 | resolved | vilma_liorensaityte | oxConfig entry aServersDatais is always deleted and selected by shop id 1, but written by the actual active shop id |
|
|
In enterprise demoshop it is not reproducable. The aServersData entry in the oxconfig table was only inserted once, not on every page view. Try to reproduce in new installation. |
|
|
I could reproduce it in an 5.3.1 EE demoshop. However you either have to configure the base url for a subshop or call the shop with a "shp" parameter in the URL and this also will only be reproducable when you delete the aServersData key within the oxconfig table for the subshop you are calling. Well, I think we don't have that aServersData key for shop id 2 because we were migrating from 5.0.11 to 5.3.1. So I think this was missing in the migration script. After the migration we created another subshop. And for this one we have that entry. |
|
|
Thnx for further information. I found the same bug, so this one will be closed as dublicate of https://bugs.oxid-esales.com/view.php?id=6484 |