[MDEV-20786] MariaDB server writes warnings into errorlog although 'log_warnings=0' Created: 2019-10-09  Updated: 2020-05-16  Resolved: 2019-12-09

Status: Closed
Project: MariaDB Server
Component/s: Documentation, Storage Engine - InnoDB
Affects Version/s: 10.3.18
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Michael Graf Assignee: Ian Gilfillan
Resolution: Fixed Votes: 0
Labels: None
Environment:

Windows 7


Attachments: Zip Archive R2224WFTZS.zip     File my.ini    
Issue Links:
Relates
relates to MDEV-16969 Fix error message as promised in upst... Open
relates to MDEV-19292 "Row size too large" error when creat... Closed
relates to MDEV-20194 Warnings inconsistently issued upon C... Closed
relates to MDEV-20400 Implement a way to query an InnoDB ta... Confirmed
relates to MDEV-20832 Don't print "row size too large" warn... Closed
relates to MDEV-20949 Stop performing unnecessary maximum r... Closed
relates to MDEV-22585 Incorrect note being written to the e... Open
relates to MDEV-23521 Implement an InnoDB row format that c... Open

 Description   

The global variable is set to log_warnings=0.

If the following SQL statement is executed a warning is still written into the errorlog:

CREATE TABLE `test_pending` (
  `UniqueEventUnitID` int(11) NOT NULL,
  `LMByHostName` varchar(255) DEFAULT '?',
  `LMByHandlerName` varchar(80) DEFAULT '?',
  `LMByZISUserID` varchar(80) DEFAULT '?',
  `LMByUniqueID` int(11) DEFAULT 0,
  `ModifyTime` datetime DEFAULT '2004-01-01 00:00:00',
  `ModifyCounter` int(11) DEFAULT 0,
  `CreateTime` datetime DEFAULT '2004-01-01 00:00:00',
  `EraseTime` datetime DEFAULT '2004-01-01 00:00:00',
  `EventUnitState` smallint(6) DEFAULT 0,
  `UserDefinedEventUnitID` varchar(80) DEFAULT '',
  `StateText` text DEFAULT NULL,
  `ZISSourceDescData` blob DEFAULT NULL,
  `ZISSourceOTypNr` int(11) DEFAULT 0,
  `ZISSourceRBNr` int(11) DEFAULT 0,
  `AcknowledgeFlag` tinyint(4) DEFAULT 0,
  `RevisionFlag` tinyint(4) DEFAULT 0,
  `RepeatCounter` int(11) DEFAULT 0,
  `HelpFileName` varchar(255) DEFAULT '',
  `HasEventUnitTMOAction` tinyint(4) DEFAULT 0,
  `TMOActionDateTime` datetime DEFAULT NULL,
  `TMOSetAcknowledgeFlag` tinyint(4) DEFAULT NULL,
  `TMONewAcknowledgeFlag` tinyint(4) DEFAULT NULL,
  `TMOSetRevisionFlag` tinyint(4) DEFAULT NULL,
  `TMONewRevisionFlag` tinyint(4) DEFAULT NULL,
  `TMOSetEventUnitState` tinyint(4) DEFAULT NULL,
  `TMONewEventUnitState` smallint(6) DEFAULT NULL,
  `TMOEventUnitTMOAction` tinyint(4) DEFAULT NULL,
  `TMOREXXLabelStartActive` smallint(6) DEFAULT NULL,
  `TMOREXXLabelName` varchar(80) DEFAULT NULL,
  `TMOREXXLabelParams` text DEFAULT NULL,
  `TMOREXXLabelStartBeforeEvtActn` smallint(6) DEFAULT NULL,
  `ProductInterfaceType` tinyint(4) DEFAULT NULL,
  `ProductInterfaceID` varchar(80) DEFAULT NULL,
  `UniqueProductInterfaceEventID` varchar(255) DEFAULT NULL,
  `CreatorZISSourceDescData` blob DEFAULT NULL,
  `CreatorZISSourceOTypNr` int(11) DEFAULT NULL,
  `CreatorZISSourceRBNr` int(11) DEFAULT NULL,
  `Description` text DEFAULT NULL,
  `EventAttributesDictionary` blob DEFAULT NULL,
  `EventAttributes` longblob DEFAULT NULL,
  `UserDefinedREXXLabelMenuName` varchar(80) DEFAULT NULL,
  `AcknowledgeTime` datetime DEFAULT NULL,
  `AcknowledgerZISSourceDescData` blob DEFAULT NULL,
  `AcknowledgerZISSourceOTypNr` int(11) DEFAULT NULL,
  `AcknowledgerZISSourceRBNr` int(11) DEFAULT NULL,
  `DeleteTime` datetime DEFAULT NULL,
  `DeleterZISSourceDescData` blob DEFAULT NULL,
  `DeleterZISSourceOTypNr` int(11) DEFAULT NULL,
  `DeleterZISSourceRBNr` int(11) DEFAULT NULL,
  `EventRawDataType` int(11) DEFAULT NULL,
  `EventRawData` longblob DEFAULT NULL,
  PRIMARY KEY (`UniqueEventUnitID`),
  KEY `NCI_test_P_UserDefID` (`UserDefinedEventUnitID`),
  KEY `NCI_test_P_ModifyTime` (`ModifyTime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

The MariaDB documentation says to log_warning = 0:

If set to 0, warnings are not logged.

https://mariadb.com/kb/en/library/error-log/#verbosity-level-0

https://mariadb.com/kb/en/library/server-system-variables/#log_warnings



 Comments   
Comment by Elena Stepanova [ 2019-10-12 ]

What warning are you getting? I'm not getting any, regardless log_warnings.
Please paste the warning and also provide your cnf file(s).

Comment by Michael Graf [ 2019-10-14 ]

>What warning are you getting?
2019-10-14 6:24:43 13 [Warning] InnoDB: Cannot add field `Token` in table `zissystem`.`webproviderprofiledef` because after adding it, the row size is 8345 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 46 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100005_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 65 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100020_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 67 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100006_pending` because after adding it, the row size is 8478 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 76 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100002_pending` because after adding it, the row size is 8478 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 70 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100040_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 79 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100035_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 69 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100031_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
2019-10-14 6:27:16 73 [Warning] InnoDB: Cannot add field `DeleterZISSourceDescData` in table `eventmonitor`.`eustatus00000100039_pending` because after adding it, the row size is 8477 which is greater than maximum allowed size (8126) for a record on index leaf page.
... my.ini R2224WFTZS.zip

In the attachment is errorlog of the last 20 minutes to show you how many warnings are written since 10.3.x into the errorlog.

Comment by Geoff Montee (Inactive) [ 2019-10-15 ]

migra,

If set to 0, warnings are not logged.*
https://mariadb.com/kb/en/library/server-system-variables/#log_warnings

This was an inaccuracy in the documentation that has already been fixed.

I've requested a way to suppress those warnings in the error log in MDEV-20832.

In the mean time, you can already suppress these warnings if you are willing to fix the tables involved. You may be able to do so by converting them to the DYNAMIC row format and by making sure that all varchar columns are at least as long as 256 bytes. See the following page for details:

https://mariadb.com/kb/en/library/troubleshooting-row-size-too-large-errors-with-innodb/

Comment by Geoff Montee (Inactive) [ 2019-10-15 ]

migra,

For the case of the test_pending table schema in the issue description, it is sufficient to convert the table to the DYNAMIC row format.

https://mariadb.com/kb/en/library/troubleshooting-row-size-too-large-errors-with-innodb/#converting-the-table-to-the-dynamic-row-format

For example:

ALTER TABLE `test_pending` ROW_FORMAT=DYNAMIC;

You may want to try the same fix for other affected tables as well. For example:

ALTER TABLE `zissystem`.`webproviderprofiledef`  ROW_FORMAT=DYNAMIC;
ALTER TABLE `eventmonitor`.`eustatus00000100005_pending` ROW_FORMAT=DYNAMIC;
...
ALTER TABLE `eventmonitor`.`eustatus00000100031_pending` ROW_FORMAT=DYNAMIC;
ALTER TABLE `eventmonitor`.`eustatus00000100039_pending` ROW_FORMAT=DYNAMIC;

Comment by Geoff Montee (Inactive) [ 2019-11-04 ]

These warnings can be inappropriately logged due to MDEV-20949.

Comment by Sergei Golubchik [ 2019-12-09 ]

It was a incorrect documentation that was fixed.

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