Fix hangs when loading issues

Before we merged the code which upgraded the instance to Python 3 we had
hangs when loading issues because the instance would be teared down due
to reaching the memory limit. After this upgrade, we saw these hangs
more consistently (the app wouldn't list issues in the first request but
it would in the second one) and we saw 500 errors very rarely.

We tried to fix the memory limit error by decreasing the limit of
objects which can be cached in memory. However, that did not fix the
issue.

As tested locally, I saw that when configuring 1 worker, the app
wouldn't load issues, but by configuring 2 workers, it would (maybe when
it is servicing one request it cannot service another the internal one
made to the search endpoints?). Thus, this is a temptative fix for this
issue.

GitOrigin-RevId: 16cccd88263ba494f9f3093b83fbcac2bfe8ed58
1 file changed
tree: 8a02743be6369af38ebca0b0c6c57117c5e2150a
  1. api/
  2. businesslogic/
  3. doc/
  4. features/
  5. framework/
  6. google/
  7. mrproto/
  8. project/
  9. redirect/
  10. schema/
  11. search/
  12. services/
  13. sitewide/
  14. static/
  15. static_src/
  16. templates/
  17. testing/
  18. third_party/
  19. tools/
  20. tracker/
  21. .babelrc
  22. .eslintrc.json
  23. .gcloudignore
  24. .gitignore
  25. .npmrc
  26. .prettierrc.json
  27. .style.yapf
  28. .vpython3
  29. app.yaml
  30. codereview.settings
  31. cron.yaml
  32. dev-services.yml
  33. import_utils.py
  34. jsconfig.json
  35. karma.conf.js
  36. main.py
  37. Makefile
  38. OWNERS
  39. package-lock.json
  40. package.json
  41. PRESUBMIT.py
  42. queue.yaml
  43. README.md
  44. registerpages.py
  45. requirements.txt
  46. settings.py
  47. test.py
  48. tsconfig.json
  49. webpack.config.js
README.md

Monorail Issue Tracker - bugs.avm99963.com

This repo is a fork of the open-source Monorail issue tracker designed to run at bugs.avm99963.com. I've made the code public so it can inspire other developers to host relatively cheap Monorail instances.

Monorail development should generally be contributed upstream, this repo will only accept changes specific to small and relatively cheap instances.

The original README.md file is here below (slightly modified where applicable):


Monorail Issue Tracker

Monorail is the Issue Tracker used by the Chromium project and other related projects. It is hosted at bugs.chromium.org.

If you wish to file a bug against Monorail itself, please do so in our self-hosting tracker. We also discuss development of Monorail at infra-dev@chromium.org.

Getting started with Monorail development

For Googlers: Monorail's codebase is open source and can be installed locally on your workstation of choice.

For local development on Linux, see Linux development instructions For local development on MacOS and Debian, see MacOs development instructions

Instructions for deploying Monorail to an existing instance or setting up a new instance are here.

See also: Common Development Problems

Testing

Python backend testing

make pytest

To run a single test:

vpython3 test.py services/test/issue_svc_test.py::IssueServiceTest::testUpdateIssues_Normal

JavaScript frontend testing

make jstest

If you want to skip the coverage for karma, run:

make karma_debug

To run only one test or a subset of tests, you can add .only to the test function you want to isolate:

// Run one test.
it.only(() => {
  ...
});

// Run a subset of tests.
describe.only(() => {
  ...
});

Just remember to remove them before you upload your CL.

Development resources

Supported browsers

Monorail supports all browsers defined in the Chrome Ops guidelines.

File a browser compatability bug here.

Frontend code practices

See: Monorail Frontend Code Practices

Monorail's design

Triage process

See: Monorail Triage Guide.

Release process

See: Monorail Deployment

User guide

For information on how to use Monorail, see the Monorail User Guide.

Setting up a new instance of Monorail

See: Creating a new Monorail instance