Unable to deal with hg error output and throws exception swallowing original message

Issue #817 new
Adan Scotney created an issue

I'm running RhodeCode 1.5.4, and somehow my repository got in a funny state so couldn't be pushed to. In the RhodeCode logs, this appeared as an exception which looks like it simply couldn't parse an unexpected output from hg...

ERROR [waitress] Exception when serving /totem-common
Traceback (most recent call last):
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/waitress-0.8.1-py2.6.egg/waitress/channel.py", line 329, in service
    task.service()
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/waitress-0.8.1-py2.6.egg/waitress/task.py", line 173, in service
    self.execute()
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/waitress-0.8.1-py2.6.egg/waitress/task.py", line 380, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/gzipper.py", line 35, in __call__
    return self.application(environ, start_response)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/cascade.py", line 130, in __call__
    return self.apps[-1](environ, start_response)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/registry.py", line 379, in __call__
    app_iter = self.application(environ, start_response)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/RhodeCode-1.5.4-py2.6.egg/rhodecode/lib/middleware/https_fixup.py", line 37, in _
_call__
    return self.application(environ, start_response)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/pylons/middleware.py", line 150, in __call__
    self.app, environ, catch_exc_info=True)
  File "/var/www/rhodecode-parent/rhodecode-venv/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/pylons/util.py", line 51, in call_wsgi_application
    output.extend(app_iter)
TypeError: 'NoneType' object is not iterable

It turned out (when pushing directly to the repository not via RhodeCode), that hg was in fact returning "abort: abandoned transaction found - run hg recover!" but RhodeCode wasn't able to deal with this and just returned a 500 page, and the exception in the logs.

It might be good if it could at least log what came back in this instance, even if it does still have the 500 error? That way it'd be a bit easier to diagnose problems like this.

Comments (1)

  1. Marcin Kuzminski repo owner

    thanks for posting this, it should be easy to reproduce i will try to write a test scenario and fix this.

  2. Log in to comment