diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-06-10 18:15:25 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-06-10 18:15:25 +0300 |
commit | cbac8f935182ecc5bb907de3ae48942467f0b8ba (patch) | |
tree | bc86faf51f701e151c235f85177cc3938dbf7db9 /extra | |
parent | 5d06edfb2616ab0b4b067580c281afbbef8fdc74 (diff) | |
download | mariadb-git-cbac8f935182ecc5bb907de3ae48942467f0b8ba.tar.gz |
MDEV-19725 Incorrect error handling in ALTER TABLE
Some I/O functions and macros that are declared in os0file.h used to
return a Boolean status code (nonzero on success). In MySQL 5.7, they
were changed to return dberr_t instead. Alas, in MariaDB Server 10.2,
some uses of functions were not adjusted to the changed return value.
Until MDEV-19231, the valid values of dberr_t were always nonzero.
This means that some code that was incorrectly checking for a zero
return value from the functions would never detect a failure.
After MDEV-19231, some tests for ALTER ONLINE TABLE would fail with
cmake -DPLUGIN_PERFSCHEMA=NO. It turned out that the wrappers
pfs_os_file_read_no_error_handling_int_fd_func() and
pfs_os_file_write_int_fd_func() were wrongly returning
bool instead of dberr_t. Also the callers of these functions were
wrongly expecting bool (nonzero on success) instead of dberr_t.
This mistake had been made when the addition of these functions was
merged from MySQL 5.6.36 and 5.7.18 into MariaDB Server 10.2.7.
This fix also reverts commit 40becbc3c7a6555d0a4bb186b4336a2899d5995c
which attempted to work around the problem.
Diffstat (limited to 'extra')
0 files changed, 0 insertions, 0 deletions