Search isn't working (e.g. on /platform/platform/search/search_results.html url). Instead of search results the following SQL error is shown:
RuntimeException: Unknown column 'custom_data.l1_cust_' in 'field list' (1054) SQL: INSERT INTO 53x_ses_841665155_53x_Search (Relevance, ItemId, ResourceId, ItemType, EdPick) SELECT (IF(53x_Link.l1_Name LIKE "%forum%", 4, 0) + IF(53x_Link.l1_Name LIKE "%forum%", 1, 0) + IF(53x_Link.l1_Description LIKE "%forum%", 4, 0) + IF(53x_Link.l1_Description LIKE "%forum%", 1, 0) + IF(53x_Link.Url LIKE "%forum%", 4, 0) + IF(53x_Link.Url LIKE "%forum%", 2, 0) + IF(custom_data.l1_cust_ LIKE "%forum%", 4, 0) + IF(custom_data.l1_cust_ LIKE "%forum%", 0, 0)) / 4 * 0.9 + (Hits + 1) / (MAX(Hits) + 1) * 0.05 + (CachedRating + 1) / (MAX(CachedRating) + 1) * 0.05 AS Relevance, 53x_Link.LinkId AS ItemId, 53x_Link.ResourceId, 4 AS ItemType, 53x_Link.EditorsPick AS EdPick FROM 53x_Link WHERE (((1) AND (`53x_Link`.`l1_Name` LIKE '%forum%')) OR ((1) AND (`53x_Link`.`l1_Description` LIKE '%forum%')) OR ((1) AND (`53x_Link`.`Url` LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.`l1_Name` LIKE '%forum%')) OR ((1) AND (`53x_Link`.`l1_Description` LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%')) OR ((1) AND (`53x_Link`.custom_data.l1_cust_ LIKE '%forum%'))) AND (53x_Link.Status = 1) GROUP BY 53x_Link.LinkId ORDER BY Relevance DESC in ...\core\kernel\utility\logger.php on line 887
From the error message it can be detected that it has something to do with custom fields. Digging deeper revealed that this is a bug introduced by another bugfix in - INP-1301Getting issue details... STATUS task.
Here is what happens:
- on search result page both categories and category items (e.g. links) are displayed and both have custom fields
- attempt to read category custom fields loads the "cdata" unit config
- thanks to
kUnitConfigCloner
class (introduced in - INP-1301Getting issue details... STATUS ) list of clones is already available when this unit config is loaded - each clone is processed, but they have hooks to same "cdata" unit config
- this is considered as recursion and is blocked
- custom fields of all but categories are not discovered
Solution
Don't use cached unit config clones, when application initialization has completed.