1567: The ReviewBoard stoped to work suddenly.

yunsh*****@gmai***** (Google Code) (Is this you? Claim this profile.)
March 24, 2010
What version are you running?
ReviewBoard1.5Beta1_Python2.6

What's the URL of the page containing the problem?
Unable to visit ReviewBoard site.

What steps will reproduce the problem?
The ReviewBoard stoped to work suddenly.

What is the expected output? What do you see instead?
MOD_PYTHON ERROR

ProcessId:      12138
Interpreter:    'reviewboard_reviewboard'

ServerName:     'cr.wsd.com'
DocumentRoot:   '/data/reviewboard/htdocs'

URI:            '/'
Location:       '/'
Directory:      None
Filename:       '/data/reviewboard/htdocs/'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'django.core.handlers.modpython'

Traceback (most recent call last):

  File "/usr/local/lib/python2.6/site-packages/mod_python/importer.py", 
line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/local/lib/python2.6/site-packages/mod_python/importer.py", 
line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/local/lib/python2.6/site-packages/mod_python/importer.py", 
line 1128, in _execute_target
    result = object(arg)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/handlers/modpython.py", line 228, in handler
    return ModPythonHandler()(req)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/handlers/modpython.py", line 191, in __call__
    self.load_middleware()

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/handlers/base.py", line 40, in load_middleware
    mod = import_module(mw_module)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/utils/importlib.py", line 35, in import_module
    __import__(name)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/middleware/gzip.py", line 4, in <module>
    from django.utils.cache import patch_vary_headers

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/utils/cache.py", line 28, in <module>
    from django.core.cache import cache

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/cache/__init__.py", line 68, in <module>
    cache = get_cache(settings.CACHE_BACKEND)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/cache/__init__.py", line 66, in get_cache
    return getattr(module, 'CacheClass')(host, params)

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/cache/backends/filebased.py", line 31, in __init__
    self._createdir()

  File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-
py2.6.egg/django/core/cache/backends/filebased.py", line 132, in _createdir
    raise EnvironmentError, "Cache directory '%s' does not exist and could 
not be created'" % self._dir

EnvironmentError: Cache directory '/tmp/reviewboard_cache' does not exist 
and could not be created'


What operating system are you using? What browser?
Linux,IE

Please provide any additional information below.
#1 yunsh*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Please help!

Thanks!
chipx86
#2 chipx86
Sounds like it's exactly what the error says. It's not able to create
/tmp/reviewboard_cache. You should make sure that Apache's user can create
directories in /tmp.

Really, though, you should be using memcached. It is much faster, more efficient,
more scalable, and better supported.
  • +SetupIssue
#4 yunsh*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Thanks!

This problem was solved by grant the directory permission the apache user.

Another problem rised when view diffs:
The patch to 'xxx/IMEngine.h' didn't apply cleanly. The temporary files have been 
left in '/var/tmp/reviewboard.u23uyk' for debugging purposes. `patch` returned: 
patch: **** mktemp : Permission denied 

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/views.py", line 153, in view_diff
    interdiffset, highlighting, True)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 887, in get_diff_files
    large_data=True)
  File "/usr/local/lib/python2.6/site-packages/Djblets-0.5.7-
py2.6.egg/djblets/util/misc.py", line 162, in cache_memoize
    data = lookup_callable()
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 886, in <lambda>
    enable_syntax_highlighting)),
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 537, in get_chunks
    new = get_patched_file(old, filediff)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 362, in get_patched_file
    return patch(filediff.diff, buffer, filediff.dest_file)
  File "/usr/local/lib/python2.6/site-packages/ReviewBoard-1.5beta1-
py2.6.egg/reviewboard/diffviewer/diffutils.py", line 224, in patch
    (filename, tempdir, patch_output))
Exception: The patch 
to 'xxx/IMEngine.h' didn't apply 
cleanly. The temporary files have been left in '/var/tmp/reviewboard.u23uyk' for 
debugging purposes.
`patch` returned: patch: **** mktemp : Permission denied
chipx86
#5 chipx86
This is the same issue. It can't write to your /var/tmp.

This sounds like a very messed up configuration. All users should be able to write to
/tmp without problems, and many other applications can mess up if they can't. /tmp
really should be world-writable.
#6 yunsh*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Thanks! ReviewBoard works now!

It was strange, the directory permission of apache user was been removed.
I was only installed another software package, maybe it caused the problem.

Thanks again!
yunshan
chipx86
#7 chipx86
Glad it's fixed!