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

Fix explicitly releasing FileSessions #1834

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

dj51d
Copy link

@dj51d dj51d commented Dec 15, 2019

What kind of change does this PR introduce?

  • bug fix
  • feature
  • docs update
  • tests/coverage improvement
  • refactoring
  • other

What is the related issue number (starting with #)
#1345

What is the current behavior? (You can also link to an open issue here)
#1345

What is the new behavior (if this is a feature change)?

Other information:

Checklist:

  • I think the code is well written
  • I wrote good commit messages
  • I have squashed related commits together after the changes have been approved
  • Unit tests for the changes exist
  • Integration tests for the changes exist (if applicable)
  • I used the same coding conventions as the rest of the project
  • The new code doesn't generate linter offenses
  • Documentation reflects the changes
  • The PR relates to only one subject with a clear title
    and description in grammatically correct, complete sentences

Added a test that captures the failure when explicit session locking is
used with file sessions.  The session tool adds a before_finalize hook
to save the session, the FileSession class asserts that the session is
locked before saving the session.  The end result is if you use
explicit locking with file sessions and release the lock yourself an
AssertionError is raised when before_finalize runs.
Fix the AssertionError that is raised when using explicit locking with
the FileSession storage class.  The before_finalize handler from the
SessionTool calls save() on the session, which asserts that the session
is locked, which may not be the case when using explicit locking.  If
explicit locking is being used FileSession's _save() will now acquire
the lock if the session is not already locked.

Fixes cherrypy#1345
@jaraco jaraco changed the base branch from master to main March 23, 2021 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant