[Akonadi] [Bug 439733] Akonadi server triggers assert() in libmysql 5.7.34
bugzilla_noreply at kde.org
bugzilla_noreply at kde.org
Sun Jul 11 13:26:24 BST 2021
https://bugs.kde.org/show_bug.cgi?id=439733
--- Comment #2 from groot at kde.org ---
Relevant code change between 5.7.33 and 5.7.34 is in libmysql.c, line 4112:
=== 5.7.33
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_BIT:
DBUG_ASSERT(param->buffer_length != 0);
=== 5.7.34
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_BIT:
assert(param->buffer_length != 0);
As you can see the DBUG_ASSERT has turned into a "real" assert.
By modifying the Qt MySQL drivers, e.g. void QMYSQLResultPrivate::bindBlobs() I
can get the Qt layer to confirm that the value being passed in is 0. Apparently
max_length for the field that is causing problems here, is indeed 0. By nudging
that to 1, like so:
```
if (!bind->buffer_length) { bind->buffer_length=1;
qWarning("QMYSQLResultPrivate::bindBlobs: field max_length was 0");
}
```
Akonadi works again (because of the patch in Qt). I'm just not convinced that's
a good fix: why is there a BLOB field of length 0, anyway?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Kdepim-bugs
mailing list