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

When running under the Kolibri process bus, use a logging queue to prevent reentrant logging errors and file contention #12785

Merged
merged 2 commits into from
Nov 8, 2024

Conversation

rtibbles
Copy link
Member

@rtibbles rtibbles commented Nov 4, 2024

Summary

  • Patches all logger handlers at process bus startup to use a logging queue handler instead of their regular handlers
  • Create a queue listener defer all logging to a single thread
  • Conditionalize the queue to be either single or multi process depending on whether we are using multiprocessing for our task runner or not

References

Fixes #8376

May also help with our persistent logging errors seen on Windows platforms (but not tested, and not guaranteed).

Reviewer guidance


Testing checklist

  • Contributor has fully tested the PR manually
  • If there are any front-end changes, before/after screenshots are included
  • Critical user journeys are covered by Gherkin stories
  • Critical and brittle code paths are covered by unit tests

PR process

  • PR has the correct target branch and milestone
  • PR has 'needs review' or 'work-in-progress' label
  • If PR is ready for review, a reviewer has been added. (Don't use 'Assignees')
  • If this is an important user-facing change, PR or related issue has a 'changelog' label
  • If this includes an internal dependency change, a link to the diff is provided

Reviewer checklist

  • PR is fully functional
  • PR has been tested for accessibility regressions
  • External dependency files were updated if necessary (yarn and pip)
  • Documentation is updated
  • Contributor is in AUTHORS.md

@github-actions github-actions bot added the DEV: backend Python, databases, networking, filesystem... label Nov 4, 2024
Copy link
Member

@marcellamaki marcellamaki left a comment

Choose a reason for hiding this comment

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

I added a line to print an extra message in the terminal to indicate that the queue condition was being hit, and it was

Also, when running kolibri start i was able to do a clean shut down

@marcellamaki marcellamaki merged commit a26a75b into learningequality:develop Nov 8, 2024
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DEV: backend Python, databases, networking, filesystem...
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RuntimeError: reentrant call logging errors during shutdown of devserver on mac
2 participants