Skip to content
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

Don't clear sessions when clearing cache #29610

Merged
merged 1 commit into from
Mar 6, 2024

Conversation

MegaphoneJon
Copy link
Contributor

Overview

Clearing cache shouldn't break donations in progress, but it does.

Before

See above.

After

Nope

Comments

Original patch from @mlutfy with modifications to clear most, but not all, of civicrm_cache.

Copy link

civibot bot commented Mar 3, 2024

🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷

Introduction for new contributors...
  • If this is your first PR, an admin will greenlight automated testing with the command ok to test or add to whitelist.
  • A series of tests will automatically run. You can see the results at the bottom of this page (if there are any problems, it will include a link to see what went wrong).
  • A demo site will be built where anyone can try out a version of CiviCRM that includes your changes.
  • If this process needs to be repeated, an admin will issue the command test this please to rerun tests and build a new demo site.
  • Before this PR can be merged, it needs to be reviewed. Please keep in mind that reviewers are volunteers, and their response time can vary from a few hours to a few weeks depending on their availability and their knowledge of this particular part of CiviCRM.
  • A great way to speed up this process is to "trade reviews" with someone - find an open PR that you feel able to review, and leave a comment like "I'm reviewing this now, could you please review mine?" (include a link to yours). You don't have to wait for a response to get started (and you don't have to stop at one!) the more you review, the faster this process goes for everyone 😄
  • To ensure that you are credited properly in the final release notes, please add yourself to contributor-key.yml
  • For more information about contributing, see CONTRIBUTING.md.
Quick links for reviewers...

➡️ Online demo of this PR 🔗

@civibot civibot bot added the master label Mar 3, 2024
Civi::cache('session')->clear();
// [ML] SYMBIOTIC This causes problems if people are filling-in quickform
// forms during a system.flush
// Civi::cache('session')->clear();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this context, it receives the param $sessionReset. Notwithstanding the method-signature here, the actual/typical default should FALSE. (For purposes of cv flush, System.flush, civicrm/menu/rebuild, etc -- they all call via rebuildMenuAndCaches(...$sessionReset=FALSE)). It seems better to abide that flag, no?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we change the param $sessionReset = FALSE by default, then add an "if" around Civi::cache('session')->clear(), then yes, it works as intended I think.

Tested with:

  • cv flush
  • "flush cache" from the admin UI
  • cv api system.flush session=1 => will flush the QF cache (sessionReset=true)

@agileware-justin
Copy link
Contributor

Thanks @MegaphoneJon 👏🏻

@mattwire
Copy link
Contributor

mattwire commented Mar 5, 2024

At the Montreal sprint @MegaphoneJon and I agreed that we should get this into core. Quite a few of us have been running versions of this on client sites for quite a long time.

@mlutfy
Copy link
Member

mlutfy commented Mar 5, 2024

This would be great. Thank you for pushing this forward.

I did a bit more testing based on Tim's comment, and I think it would be sensible to:

  • default sessionReset = FALSE in the function params
  • add an "if" around the session flush line, instead of removing it

We can also strip most the comments out of the patch (ex: "ML SYMBIOTIC").

@mlutfy
Copy link
Member

mlutfy commented Mar 5, 2024

I took the liberty of applying the changes to the patch.

@mattwire
Copy link
Contributor

mattwire commented Mar 5, 2024

Thanks @bgm. @MegaphoneJon what do you think of the updates?

@MegaphoneJon
Copy link
Contributor Author

LGTM

@mattwire mattwire merged commit 7e54f71 into civicrm:master Mar 6, 2024
3 checks passed
@MegaphoneJon MegaphoneJon deleted the cache-clear-not-sessions branch April 4, 2024 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants