-
-
Notifications
You must be signed in to change notification settings - Fork 817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CRM-21568 - Move emptiness judgments from SettingsBag::setDb to InnoDBIndexer #11423
Conversation
…BIndexer The `SettingsBag::setDb()` function calls any `on_change` listeners. It originally used "dumb on change" behavior (where it calls the listeners without comparing values). CRM-19610 had an issue where the `InnoDBIndexer` was running a bit too often, so they tried to resolve it by making the `SettingsBag::setDb()` more clever. Unfortunately, that's been a bit bouncy, and the cleverness depends on one's particular interpretation of 0 vs '0' vs '' vs NULL vs FALSE. Before ------ All on-change listeners may be skipped if there's particular mix of emptiness in the old/new values. After ----- The on-change listeners always fire. However, the specific listener involved with CRM-19610 will now ignore some insignificant changes. Related discussion: civicrm#11417 ---------------------------------------- * CRM-21568: https://issues.civicrm.org/jira/browse/CRM-21568 * CRM-19610: https://issues.civicrm.org/jira/browse/CRM-19610
9f0441b
to
38e5457
Compare
I like this approach better @totten - but the way you tested it isn't addressing CRM-21568 if you didn't intentionally reduce the permissions of your MySQL user. Might want to ask Mattermost user "ben" to test this. I can try and test this next week, but since it was something I did for a random chat user, I might not be able to prioritize it.
|
I'm a bit worried about having this un-merged if it's going out on Wed - I would be inclined to merge this & through to master asap so we are not going out in 2 days with something not merged until the day |
My feeling is that this will fix the issue for the fts stuff and i would be in favor of merging it as it seems to be a much more stable fix than previous |
Ok - merging - all blame on @seamuslee001 because he encouraged me - but I think we want at least a day of 'rc' |
FWIW I asked Ben ("ben" on Mattermost) to test this against his environment (which exhibits the bugged behavior) and he reports that this fixes his problems with no noticeable side effects. |
great - thanks for the feedback |
CRM-21568 - Move emptiness judgments from SettingsBag::setDb to InnoDBIndexer
Overview
The
SettingsBag::setDb()
function calls anyon_change
listeners. Itoriginally used "dumb on change" behavior (where it calls the listeners
without comparing values). CRM-19610 had an issue where the
InnoDBIndexer
was running a bit too often, so they tried to resolve it by
making the
SettingsBag::setDb()
more clever.Unfortunately, that's been a bit bouncy, and the cleverness depends on one's
particular interpretation of 0 vs '0' vs '' vs NULL vs FALSE.
Related discussion: #11417
Before
All on-change listeners may be skipped if there's particular mix of emptiness
in the old/new values.
After
The on-change listeners always fire. However, the specific listener
involved with CRM-19610 will now ignore some insignificant changes.
Comments
For
r-run
testing, I did the following:alternately updating values and reloading form.