Problem/Motivation
If a big string is inserted into a MySQL / Maria DB BLOB field that exceeds 10% of the the innodb_log_file_size setting you get this error message:
The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size.
Like in #972528: dblog fails to log MAX_ALLOWED_PACKET errors because they're longer than MAX_ALLOWED_PACKET the complete error message contains the complete query itself that caused the error. Therefore it is impossible to succeed to log that exception in a MySQL dblog.
Proposed resolution
Like in #972528: dblog fails to log MAX_ALLOWED_PACKET errors because they're longer than MAX_ALLOWED_PACKET the error message needs to be truncated before written to dblog.
Remaining tasks
none
User interface changes
none
API changes
none
Data model changes
none
Comment | File | Size | Author |
---|---|---|---|
#17 | interdiff-15-17.txt | 2.65 KB | gease |
#17 | 2833100_50percent-17.patch | 6.17 KB | gease |
#15 | interdiff-13-15.txt | 758 bytes | gease |
#15 | 2833100_50percent-15.patch | 5.3 KB | gease |
Comments
Comment #2
mkalkbrennerComment #4
mkalkbrennerComment #6
mkalkbrennerI have no idea, why the test doesn't force the exception on CI. In my local test environment it works.
Is it acceptable to provide such a trivial patch without a test?
As you can see in https://www.drupal.org/node/1679344#comment-11838038 the patch would be helpful.
Comment #13
geaseRerolled patch from #4 against 8.9.x .
Comment #15
geaseFixed tests.
Comment #16
daffie CreditAttribution: daffie commented@gease: Could you move the added test to its own method. I would like to help to get this issue fixed.
Comment #17
geaseAs per #16, moved innodb_max_log_size test into separate method. Not that I would understand clearly why we need to close connection and get it again at certain point, but otherwise the test hangs.