Comment 6 for bug 1706992

Revision history for this message
Brian Leishman (b2ian) wrote :

Actually I think I found the bug possibly. I followed the stack trace for every one of the crashes (was almost up to 10 times a day, today included so far) and I noticed that nullif was being called followed by three "trim"s, and I had a generated column on my users table with that exact same function order.

As a potential workaround, I've removed the generated column expression and created triggers to do the updating instead to see if the crashes continue.

That table's creation is as follows:

CREATE TABLE `users` (
  `UserID` char(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `CompanyID` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `FirstName` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `LastName` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `CompanyName` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Password` blob,
  `CountryID` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `StateID` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `DateTimeAdded` datetime DEFAULT NULL,
  `DateTimeSynced` datetime DEFAULT NULL,
  `DateTimeOnline` datetime DEFAULT NULL,
  `IP` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `LastAccessed` datetime DEFAULT NULL,
  `Deleted` int(1) NOT NULL DEFAULT '0',
  `ListID` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Emails` int(1) NOT NULL DEFAULT '1',
  `Language` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `LinkID` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `FacebookAccessToken` varchar(4096) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `FacebookUserID` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `QuotesName` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `QuotesEmails` text COLLATE utf8mb4_unicode_ci,
  `QuotesCCs` text COLLATE utf8mb4_unicode_ci,
  `QuoteMessageID` binary(16) DEFAULT NULL,
  `QuotesMessage` mediumtext COLLATE utf8mb4_unicode_ci,
  `QuotesSubject` mediumtext COLLATE utf8mb4_unicode_ci,
  `Signature` mediumtext COLLATE utf8mb4_unicode_ci,
  `_LatestInvoiceDateTimeAdded` datetime DEFAULT NULL,
  `_InvoiceCount` int(11) NOT NULL DEFAULT '0',
  `_Customer` varchar(512) COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS (nullif(trim(both ' ' from trim(both '-' from trim(both ' ' from concat_ws('',`CompanyName`,' - ',`FirstName`,' ',`LastName`)))),'')) STORED,
  PRIMARY KEY (`UserID`),
  UNIQUE KEY `UserID_UNIQUE` (`UserID`),
  KEY `fk_users_1_idx` (`CompanyID`),
  KEY `fk_users_2_idx` (`CountryID`),
  KEY `fk_users_LinkID` (`LinkID`),
  KEY `users_getemail_INDEX` (`Email`(191),`_InvoiceCount`,`_LatestInvoiceDateTimeAdded`,`DateTimeAdded`),
  KEY `unify_email_INDEX` (`Email`(191),`UserID`),
  KEY `users_DateTimeOnline` (`DateTimeOnline`,`FirstName`(191),`LastName`(191)),
  KEY `users_StateID` (`StateID`),
  KEY `users_QuoteMessageID_idx` (`QuoteMessageID`),
  KEY `users_Customers` (`Deleted`,`DateTimeAdded`),
  CONSTRAINT `_mlat_fk_users_1` FOREIGN KEY (`CountryID`) REFERENCES `countries` (`CountryID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_users_LinkID` FOREIGN KEY (`LinkID`) REFERENCES `links` (`LinkID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `users_QuoteMessageID` FOREIGN KEY (`QuoteMessageID`) REFERENCES `quotemessages` (`QuoteMessageID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `users_StateID` FOREIGN KEY (`StateID`) REFERENCES `states` (`StateID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

And I'm not sure if it was just an update, or an update to one of the three columns being tested, but I believe it was when one of the rows in that table got updated that the error occurred.