Details
-
Type:
Sub-task
-
Status: Done/Fixed
-
Priority:
Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.2.0
-
Fix Version/s: 4.2.0
-
Component/s: Core CiviCRM
-
Labels:None
Description
When upgrading the dataset from civicrm.org's CiviCRM instance, the upgrade process fails on step "[Error: Upgrade DB to 4.2.alpha1: Price Sets]" with this error:
----------
DB Error: already exists
#0 [internal function]: CRM_Core_Error::exceptionHandler(Object(DB_Error))
#1 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/PEAR.php(931): call_user_func(Array, Object(DB_Error))
#2 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB.php(968): PEAR_Error->PEAR_Error('DB Error: alrea...', -5, 16, Array, 'INSERT INTO civ...')
#3 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/PEAR.php(564): DB_Error->DB_Error(-5, 16, Array, 'INSERT INTO civ...')
#4 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/common.php(1903): PEAR->raiseError(NULL, -5, NULL, NULL, 'INSERT INTO civ...', 'DB_Error', true)
#5 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/mysql.php(898): DB_common->raiseError(-5, NULL, NULL, NULL, '1062 ** Duplica...')
#6 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/mysql.php(327): DB_mysql->mysqlRaiseError()
#7 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/common.php(1216): DB_mysql->simpleQuery('INSERT INTO civ...')
#8 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/DataObject.php(2427): DB_common->query('INSERT INTO civ...')
#9 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/packages/DB/DataObject.php(1055): DB_DataObject->_query('INSERT INTO civ...')
#10 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Core/DAO.php(291): DB_DataObject->insert()
#11 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Price/BAO/Set.php(65): CRM_Core_DAO->save()
#12 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Upgrade/Incremental/php/FourTwo.php(100): CRM_Price_BAO_Set::create(Array)
#13 [internal function]: CRM_Upgrade_Incremental_php_FourTwo::task_4_2_alpha1_createPriceSets(Object(CRM_Queue_TaskContext))
#14 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/Task.php(79): call_user_func_array(Array, Array)
#15 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/Runner.php(173): CRM_Queue_Task->run(Object(CRM_Queue_TaskContext))
#16 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/Page/AJAX.php(45): CRM_Queue_Runner->runNext(true)
#17 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/ErrorPolicy.php(80):
()
#18 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/Page/AJAX.php(52): CRM_Queue_ErrorPolicy->call(Object(Closure))
#19 [internal function]: CRM_Queue_Page_AJAX::runNext(Array)
#20 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Core/Invoke.php(186): call_user_func(Array, Array)
#21 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/drupal/civicrm.module(500): CRM_Core_Invoke::invoke(Array)
#22 [internal function]: civicrm_invoke('upgrade', 'queue', 'ajax', 'runNext')
#23 /var/www/civicrm.org/public/includes/menu.inc(517): call_user_func_array('civicrm_invoke', Array)
#24 /var/www/civicrm.org/public/index.php(21): menu_execute_active_handler()
#25
----------
Steps to reproduce:
1. Copy /var/www/civicrm.org from sushi to local system
2. Copy DBs (civicrm_main and drupal_main) from sushi to local system
3. Setup DBs and fix credentials in civicrm.settings.php and settings.php
4. Setup local Apache instance for civicrm.org
5. Update /etc/hosts to use the local system (instead of the real civicrm.org)
6. Enable debugging support in CiviCRM
7. Switch codebase from 4.1 to trunk; run GenCode
8. Execute web upgrade
Specifically, the error arose when preparing price-sets with these names:
- 'civicon_london'
- '_bristol_uk_user_and_administrator_training'
- '_location_developer_and_implementer_training'
- 'london_user_and_administrator_training'
I tried hacking the FourTwo upgrader to skip those specific price-sets – to see if the rest of the upgrade worked on this dataset. Unfortunately, there was also an error transitioning contribution #186 (participant #630, event #21).
----------
A fatal error was triggered
#0 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Utils/Type.php(295): CRM_Core_Error::fatal('One of paramete...')
#1 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Core/DAO.php(962): CRM_Utils_Type::validate(NULL, 'Integer')
#2 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Core/DAO.php(884): CRM_Core_DAO::composeQuery(' SELECT cpf.id,...', Array, true)
#3 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Upgrade/Incremental/php/FourTwo.php(223): CRM_Core_DAO::executeQuery(' SELECT cpf.id,...', Array)
#4 [internal function]: CRM_Upgrade_Incremental_php_FourTwo::task_4_2_alpha1_convertContributions(Object(CRM_Queue_TaskContext), 184, 186)
#5 /var/www/civicrm.org/public/sites/civicrm.org/modules/civicrm/CRM/Queue/Task.php(79): call_user_func_array(Array, Array)
....
----------