Export PRIMARY fields Fails on CiviCRM 5.40.2 and MariaDB 10.3 with row size issue
Steps to replicate:
- search for contacts
- Select any number of contacts
- Choose Export
- Select "Export PRIMARY fields"
- Continue
Expected:
- Export File
On MariaDB 10.3 Fails with the following:
MySQL Log:
2021-08-23 21:00:34 8570 [ERROR] InnoDB: Cannot add field `notes` in table `ranger_scv`.`civicrm_tmp_d_export_f618c8c589507fe9af1d10e46e3f9324` because after adding it, the row size is 8130 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.
ROW_FORMAT
is set to DYNAMIC
on all Tables
DEBug Info:
Type DB_Error
Code -1
Message DB Error: unknown error
Mode 16
UserInfo CREATE TABLE `civicrm_tmp_d_export_5ba9a5758022e6fb4cb2a0b24ce77361` ( id int unsigned NOT NULL AUTO_INCREMENT, `civicrm_primary_id` varchar(64), `contact_type` varchar(64), `contact_sub_type` varchar(255), `do_not_email` varchar(64), `do_not_phone` varchar(64), `do_not_mail` varchar(64), `do_not_sms` varchar(64), `do_not_trade` varchar(64), `is_opt_out` varchar(64), `legal_identifier` varchar(32), `external_identifier` varchar(64), `sort_name` varchar(128), `display_name` varchar(128), `nick_name` varchar(128), `legal_name` varchar(128), `image_url` longtext, `preferred_communication_method` varchar(255), `preferred_language` varchar(5), `preferred_mail_format` varchar(16), `hash` varchar(32), `contact_source` varchar(255), `first_name` varchar(64), `middle_name` varchar(64), `last_name` varchar(64), `prefix_id` varchar(255), `suffix_id` varchar(255), `formal_title` varchar(64), `communication_style_id` varchar(255), `email_greeting_id` varchar(64), `postal_greeting_id` varchar(64), `addressee_id` varchar(64), `job_title` varchar(255), `gender_id` varchar(255), `birth_date` varchar(32), `is_deceased` varchar(64), `deceased_date` varchar(32), `household_name` varchar(128), `organization_name` varchar(128), `sic_code` varchar(8), `user_unique_id` varchar(255), `current_employer_id` varchar(64), `contact_is_deleted` varchar(64), `created_date` varchar(32), `modified_date` varchar(32), `addressee` varchar(255), `email_greeting` varchar(255), `postal_greeting` varchar(255), `current_employer` varchar(255), `location_type` varchar(255), `address_id` varchar(64), `street_address` varchar(96), `street_number` varchar(64), `street_number_suffix` varchar(8), `street_name` varchar(64), `street_unit` varchar(16), `supplemental_address_1` varchar(96), `supplemental_address_2` varchar(96), `supplemental_address_3` varchar(96), `city` varchar(64), `postal_code_suffix` varchar(12), `postal_code` varchar(64), `geo_code_1` varchar(32), `geo_code_2` varchar(32), `manual_geo_code` varchar(64), `address_name` varchar(255), `master_id` varchar(128), `county` varchar(64), `state_province` varchar(64), `country` varchar(64), `phone` varchar(32), `phone_ext` varchar(16), `phone_type_id` varchar(64), `phone_type` varchar(255), `email` varchar(254), `on_hold` varchar(64), `is_bulkmail` varchar(64), `signature_text` longtext, `signature_html` longtext, `im_provider` varchar(255), `im` varchar(64), `openid` varchar(255), `world_region` varchar(128), `url` varchar(128), `groups` longtext, `tags` longtext, `notes` longtext, PRIMARY KEY ( id ), INDEX index_street_address( street_address ) , INDEX index_household_name( household_name ) , INDEX index_civicrm_primary_id( civicrm_primary_id ) ) ENGINE=InnoDB COLLATE utf8_unicode_ci ROW_FORMAT=DYNAMIC [nativecode=1118 ** Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.]
DebugInfo CREATE TABLE `civicrm_tmp_d_export_5ba9a5758022e6fb4cb2a0b24ce77361` ( id int unsigned NOT NULL AUTO_INCREMENT, `civicrm_primary_id` varchar(64), `contact_type` varchar(64), `contact_sub_type` varchar(255), `do_not_email` varchar(64), `do_not_phone` varchar(64), `do_not_mail` varchar(64), `do_not_sms` varchar(64), `do_not_trade` varchar(64), `is_opt_out` varchar(64), `legal_identifier` varchar(32), `external_identifier` varchar(64), `sort_name` varchar(128), `display_name` varchar(128), `nick_name` varchar(128), `legal_name` varchar(128), `image_url` longtext, `preferred_communication_method` varchar(255), `preferred_language` varchar(5), `preferred_mail_format` varchar(16), `hash` varchar(32), `contact_source` varchar(255), `first_name` varchar(64), `middle_name` varchar(64), `last_name` varchar(64), `prefix_id` varchar(255), `suffix_id` varchar(255), `formal_title` varchar(64), `communication_style_id` varchar(255), `email_greeting_id` varchar(64), `postal_greeting_id` varchar(64), `addressee_id` varchar(64), `job_title` varchar(255), `gender_id` varchar(255), `birth_date` varchar(32), `is_deceased` varchar(64), `deceased_date` varchar(32), `household_name` varchar(128), `organization_name` varchar(128), `sic_code` varchar(8), `user_unique_id` varchar(255), `current_employer_id` varchar(64), `contact_is_deleted` varchar(64), `created_date` varchar(32), `modified_date` varchar(32), `addressee` varchar(255), `email_greeting` varchar(255), `postal_greeting` varchar(255), `current_employer` varchar(255), `location_type` varchar(255), `address_id` varchar(64), `street_address` varchar(96), `street_number` varchar(64), `street_number_suffix` varchar(8), `street_name` varchar(64), `street_unit` varchar(16), `supplemental_address_1` varchar(96), `supplemental_address_2` varchar(96), `supplemental_address_3` varchar(96), `city` varchar(64), `postal_code_suffix` varchar(12), `postal_code` varchar(64), `geo_code_1` varchar(32), `geo_code_2` varchar(32), `manual_geo_code` varchar(64), `address_name` varchar(255), `master_id` varchar(128), `county` varchar(64), `state_province` varchar(64), `country` varchar(64), `phone` varchar(32), `phone_ext` varchar(16), `phone_type_id` varchar(64), `phone_type` varchar(255), `email` varchar(254), `on_hold` varchar(64), `is_bulkmail` varchar(64), `signature_text` longtext, `signature_html` longtext, `im_provider` varchar(255), `im` varchar(64), `openid` varchar(255), `world_region` varchar(128), `url` varchar(128), `groups` longtext, `tags` longtext, `notes` longtext, PRIMARY KEY ( id ), INDEX index_street_address( street_address ) , INDEX index_household_name( household_name ) , INDEX index_civicrm_primary_id( civicrm_primary_id ) ) ENGINE=InnoDB COLLATE utf8_unicode_ci ROW_FORMAT=DYNAMIC [nativecode=1118 ** Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.]
PEAR_Exception: DB Error: unknown error in /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php on line 922
- DB_Error: DB Error: unknown error in unknown on line unknown
| Exception trace | | |
|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
| # | Function | Location |
| 0 | CRM_Core_Error::exceptionHandler(Object(DB_Error)) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php:922 |
| 1 | PEAR_Error->__construct('DB Error: unknow…', -1, 16, Array, 'CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php:997 |
| 2 | DB_Error->__construct(-1, 16, Array, 'CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php:575 |
| 3 | PEAR::_raiseError(Object(DB_mysqli), null, -1, 16, Array, 'CREATE TABLE `ci…', 'DB_Error', true) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php:223 |
| 4 | PEAR->__call('raiseError', Array) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php:1928 |
| 5 | DB_common->raiseError(-1, null, null, 'CREATE TABLE `ci…', '1118 ** Row size…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php:936 |
| 6 | DB_mysqli->mysqliRaiseError() | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php:406 |
| 7 | DB_mysqli->simpleQuery('CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php:1234 |
| 8 | DB_common->query('CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php:2696 |
| 9 | DB_DataObject->_query('CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php:1829 |
| 10 | DB_DataObject->query('CREATE TABLE `ci…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php:468 |
| 11 | CRM_Core_DAO->query('CREATE TABLE `ci…', false) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php:1613 |
| 12 | CRM_Core_DAO::executeQuery('CREATE TABLE `ci…', Array, true, null, true, false) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/SQL/TempTable.php:172 |
| 13 | CRM_Utils_SQL_TempTable->createWithColumns(' id int unsigned…') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Export/BAO/ExportProcessor.php:2142 |
| 14 | CRM_Export_BAO_ExportProcessor->createTempTable() | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Export/BAO/Export.php:173 |
| 15 | CRM_Export_BAO_Export::exportComponents(false, Array, Array, '`sort_name` asc', null, null, 1, ' contact_a.id IN…', null, 0, 0, Array, 'AND') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Export/Form/Select.php:309 |
| 16 | CRM_Export_Form_Select->postProcess() | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php:526 |
| 17 | CRM_Core_Form->mainProcess() | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php:144 |
| 18 | CRM_Core_StateMachine->perform(Object(CRM_Contact_Export_Form_Select), 'next', 'Next') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php:43 |
| 19 | CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contact_Export_Form_Select), 'next') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php:203 |
| 20 | HTML_QuickForm_Controller->handle(Object(CRM_Contact_Export_Form_Select), 'next') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php:103 |
| 21 | HTML_QuickForm_Page->handle('next') | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php:352 |
| 22 | CRM_Core_Controller->run(Array, Array) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:313 |
| 23 | CRM_Core_Invoke::runItem(Array) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:69 |
| 24 | CRM_Core_Invoke::_invoke(Array) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:36 |
| 25 | CRM_Core_Invoke::invoke(Array) | /home/ranger/public_html/wp-content/plugins/civicrm/civicrm.php:1178 |
| 26 | CiviCRM_For_WordPress->invoke('') | /home/ranger/public_html/wp-includes/class-wp-hook.php:303 |
| 27 | WP_Hook->apply_filters('', Array) | /home/ranger/public_html/wp-includes/class-wp-hook.php:327 |
| 28 | WP_Hook->do_action(Array) | /home/ranger/public_html/wp-includes/plugin.php:470 |
| 29 | do_action('toplevel_page_Ci…') | /home/ranger/public_html/wp-admin/admin.php:259 |
| 30 | {main} | |
I encountered this on CentOS 7.7 with MariaDB 10.3, Reproduced with Debian 10 and MariaDB 10.3
CiviCRM 5.39.x does not have this issue.
@bgm Any ideas? This looks to be a regression