Server issue Mysqli statement execute error : Row size too large

giorgino

Well-known member
Received two of these, just minutes ago...

Code:
Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. - library/Zend/Db/Statement/Mysqli.php:214
Generato Da: Account Sconosciuto, 26 minuti fa

Code:
#0 /home/immobili/public_html/library/Zend/Db/Statement.php(297): Zend_Db_Statement_Mysqli->_execute(Array)
#1 /home/immobili/public_html/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /home/immobili/public_html/library/Zend/Db/Adapter/Abstract.php(574): Zend_Db_Adapter_Abstract->query('INSERT INTO `xf...', Array)
#3 /home/immobili/public_html/library/XenForo/Model/EmailBounce.php(116): Zend_Db_Adapter_Abstract->insert('xf_email_bounce...', Array)
#4 /home/immobili/public_html/library/XenForo/Model/EmailBounce.php(47): XenForo_Model_EmailBounce->_logBounceMessage(NULL, '', Object(XenForo_BounceParser), 'Return-path: <i...')
#5 /home/immobili/public_html/library/XenForo/Deferred/EmailBounce.php(52): XenForo_Model_EmailBounce->processBounceEmail('Return-path: <i...')
#6 /home/immobili/public_html/library/XenForo/Model/Deferred.php(256): XenForo_Deferred_EmailBounce->execute(Array, Array, 8, '')
#7 /home/immobili/public_html/library/XenForo/Model/Deferred.php(390): XenForo_Model_Deferred->runDeferred(Array, 8, '', false)
#8 /home/immobili/public_html/library/XenForo/Model/Deferred.php(335): XenForo_Model_Deferred->_runInternal(Array, NULL, '', false)
#9 /home/immobili/public_html/deferred.php(23): XenForo_Model_Deferred->run(false)
#10 {main}

Code:
array(3) {
  ["url"] => string(36) "http://www.immobilio.it/deferred.php"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(3) {
    ["_xfRequestUri"] => string(38) "/threads/ristrutturazione-bagno.28566/"
    ["_xfNoRedirect"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
I'm certainly not clear on why this would happen. The schema doesn't look like it should trigger anything like this, but I'll need to look into it further.
 
It will be primarily that issue then. 5.6.22 relaxes the limit a bit but you can workaround it by increasing innodb_log_file_size.
 
This is my my.cnf

Code:
[mysqld]

init_connect=‘SET collation_connection = utf8_unicode_ci’
skip-character-set-client-handshake
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
character-set-server=utf8

slow-query-log=1
long_query_time=1
slow_query_log_file="/var/lib/mysql/mysql-slow.log"
default-storage-engine=MyISAM
innodb_file_per_table=1
max_allowed_packet=268435456
open_files_limit=12602

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M
max-connect-errors             = 1000000

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query_cache_limit = 16M
query_cache_size = 2048M
query_cache_type = 1
max-connections                = 300
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10240

# INNODB #
innodb-flush-method            = O_DIRECT
#innodb-log-files-in-group      = 2
#innodb-log-file-size           = 256M
#innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 12G

# LOGGING #
log-error                      = "/var/lib/mysql/mysql-error.log"
log-queries-not-using-indexes  = 1
 
Well you have a commented out log file size setting there. You can look at changing it but beware the steps you have to take: http://www.percona.com/blog/2011/07/09/how-to-change-innodb_log_file_size-safely/

The default should be 50M which would work out to 5M max size. It's certainly possible the email is this big and we haven't generally handled that; I'm not sure why a huge email would end up there unless it was specifically sent. The message should still be deleted though (as it's deleted before processing).

Can you confirm the log file size?
Code:
show variables like 'innodb_log_file_size';
 
Thank you Mike for support, but I don't understand what you mean about this line of code

Code:
show variables like 'innodb_log_file_size';

Where I have to insert this?
 
It's a query to run in MySQL. (Given this, I probably wouldn't recommend directly changing the log file size, given the steps that need to be taken to change it.)
 
@SoeHoe once you change the log file size you need to remove/rename the log. I faced your issue on elementry OS build. So in your case you should probably shutdown mysql, remove/rename the log file and start again.
 
Top Bottom