roam/daily/2022-04-06.org
2022-04-23 00:39:06 -04:00

1.4 KiB

2022-04-06

Fixing normalized tag search

https://jira.aweber.io/browse/ASE-8617

What was broken?
Searches and segments with a "tag is not" constraint failed to match subscribers with no tags.
When was it broken?
April 5th at 16:00, following the release of CCPANEL-12034.
What did you do to fix the problem?
The change was rolled back by updating search terms in the analytics search database to their previous values at 19:12 on April 5th.
How many customers did it likely impact?
Likely all customers using the "tag not in" filter in their searches and segments.
Is the issue automatically fixed for all customers now?
Yes.
Does the customer or CS need to manually do something to fix their account?
No.
Should a new monitoring check, metric, or test be created to prevent this from happening again?
Additional tests will be added to ensure future releases of this feature do not break search and segment behavior.

What happened?

ARRAY_AGG returns NULL when given an empty set. This breaks the tag comparison, as NOT(NULL @> ARRAY['tag']) is equal to NULL, not TRUE. Updating the logic to COALESCE null values with an empty array allows the comparison to function as intended. normalize_tags must also omit invalid tags (tags that normalize to the empty string) from its results.