Files @ 07f026cdf7ac
Branch filter:

Location: kallithea/docs/index.rst

07f026cdf7ac 1.2 KiB text/prs.fallenstein.rst Show Annotation Show as Raw Download as Raw
domruf
vcs: catch MemoryErrors when calling Git diff

Binary diffs can make the diffs VERY big and cause MemoryError exceptions.

Before giving MemoryError, the system might start swapping, any process might
fail when allocating memory, random processes might get killed, and our process
might fail in other places. The proper fix would be to avoid the problem by not
trying to process more data than we can handle - for example by not processing
more than a certain amount of Git output.

Before, memory errors were shown to the user as a 500 Internal Server Error
page.

Now, as long as we have no better/safer way get the diff, catch the MemoryError
and show the page with a flash error message and no diff.

The error handling is placed in the diffs module to avoid leaking flash
messages into the vcs lib.
.. _index:

#######################
Kallithea Documentation
#######################

**Readme**

.. toctree::
   :maxdepth: 1

   readme

**Installation**

.. toctree::
   :maxdepth: 1

   overview
   installation
   installation_win
   installation_win_old
   installation_iis
   setup
   installation_puppet
   upgrade

**Usage**

.. toctree::
   :maxdepth: 1

   usage/general
   usage/vcs_support
   usage/locking
   usage/statistics

**Administrator's guide**

.. toctree::
   :maxdepth: 1

   usage/email
   usage/performance
   usage/backup
   usage/debugging
   usage/troubleshooting
   usage/customization

**Development**

.. toctree::
   :maxdepth: 1

   contributing
   dev/translation
   dev/dbmigrations

**API**

.. toctree::
   :maxdepth: 1

   api/api


Other topics
************

* :ref:`genindex`
* :ref:`search`


.. _virtualenv: http://pypi.python.org/pypi/virtualenv
.. _python: http://www.python.org/
.. _django: http://www.djangoproject.com/
.. _mercurial: https://www.mercurial-scm.org/
.. _bitbucket: http://bitbucket.org/
.. _subversion: http://subversion.tigris.org/
.. _git: http://git-scm.com/
.. _celery: http://celeryproject.org/
.. _Sphinx: http://sphinx.pocoo.org/
.. _vcs: http://pypi.python.org/pypi/vcs