28 lines
1.4 KiB
Org Mode
28 lines
1.4 KiB
Org Mode
|
:PROPERTIES:
|
||
|
:ID: 091bce6d-e15b-434f-a7be-bc6627a71925
|
||
|
:END:
|
||
|
#+title: 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.
|