[MDEV-8453] Alter table not returning engine errors Created: 2015-07-13  Updated: 2017-08-01  Resolved: 2015-11-16

Status: Closed
Project: MariaDB Server
Component/s: Plugins
Affects Version/s: 10.1.6
Fix Version/s: 10.1.9

Type: Bug Priority: Major
Reporter: Michael Fitzmaurice Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None
Environment:

All


Sprint: 10.1.9-3

 Description   

If HA_ERR_GENERIC error is returned from the storage engine during an alter table, I would expect that mariadb call into the storage engines error handler to get the error message.

handler.cpp:3539
   temporary= get_error_message(error, &str);

However alter does not do that. When alter fails (in my case it is because i am running in a clustered environment with ScaleDB and the table is in use on another node) i am getting the following error

mysql> alter table lockwt1 add column c2_3 int;
ERROR 1015 (HY000): Can't lock file (errno: 168 "Unknown (generic) error from engine")

If mariadb called into the engine, a more accurate error would get returned "Table in use on another node"



 Comments   
Comment by Michael Fitzmaurice [ 2015-07-13 ]

The error message is getting returned from the external_lock function, and getting handled by print_lock_error(..) function.

if print_lock_error(..) supported generic/storage engine errors, then this would solve the problem.

Generated at Thu Feb 08 07:27:16 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.