[MDEV-26775] Error messages about unavailable compression libraries not returned in diagnostics Created: 2021-10-06  Updated: 2023-11-28

Status: Open
Project: MariaDB Server
Component/s: Plugins
Affects Version/s: N/A
Fix Version/s: 10.11

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-12933 sort out the compression library chaos Closed

 Description   

As we are knowingly introducing possible upgrade difficulty in 10.7 by disabling by default compression libraries which were previously enabled, it is important to at least simplify problem handling for users who encounter it.

It appears that the server/InnoDB is quite capable of discovering what exactly is missing. When a table compressed with an uninstalled algorithm is queried, a detailed error message is written to the error log:

2021-10-06 20:05:31 4 [ERROR] InnoDB: Table `test`.`t` is compressed with snappy, which is not currently loaded. Please load the snappy provider plugin to open the table

But in the response to SQL, a user can only see ER_NO_SUCH_TABLE_IN_ENGINE:

preview-10.7-MDEV-12933-provider-plugins 67a8fca9b7

MariaDB [test]> select * from t;
ERROR 1932 (42S02): Table 'test.t' doesn't exist in engine
MariaDB [test]> show warnings;
+-------+------+----------------------------------------+
| Level | Code | Message                                |
+-------+------+----------------------------------------+
| Error | 1932 | Table 'test.t' doesn't exist in engine |
+-------+------+----------------------------------------+
1 row in set (0.000 sec)

Consequently, the same non-informative diagnostics is produced by mysql_upgrade:

Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
performance_schema
sys
sys.sys_config                                     OK
test
test.t
Error    : Table 'test.t' doesn't exist in engine
status   : Operation failed
tmp
 
Repairing tables
test.t
Error    : Table 'test.t' doesn't exist in engine
status   : Operation failed
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK

It would be great if the missing algorithm was indicated in the error messages returned to clients.



 Comments   
Comment by Sergei Golubchik [ 2021-10-09 ]

This is exactly how the old code was. It was printing "Table ... is corrupted. Please drop the table and recreate." to the log only.

marko, shall I change that to be shown to the end user?

Generated at Thu Feb 08 09:47:51 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.