Kallithea issues archive

Issue #317: Operation not supported.

Reported by: Wise Kaa
State: closed
Created on: 2018-05-08 08:37
Updated on: 2018-05-13 20:43

Description

FreeBSD 10.4-STABLE Kallithea 0.3.4

Error - <type 'exceptions.IOError'>: [Errno 45] Operation not supported
URL: http://git.kngk.org/
File '/usr/local/lib/python2.7/site-packages/weberror/errormiddleware.py', line 171 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/local/lib/python2.7/site-packages/kallithea/lib/middleware/sessionmiddleware.py', line 62 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/local/lib/python2.7/site-packages/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File '/usr/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 103 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 313 in dispatch
  return controller(environ, start_response)
File '/usr/local/lib/python2.7/site-packages/kallithea/lib/base.py', line 439 in __call__
  session.get('authuser'),
File '/usr/local/lib/python2.7/site-packages/paste/registry.py', line 137 in __getattr__
  return getattr(self._current_obj(), attr)
File '/usr/local/lib/python2.7/site-packages/beaker/session.py', line 659 in __getattr__
  return getattr(self._session(), attr)
File '/usr/local/lib/python2.7/site-packages/beaker/session.py', line 655 in _session
  **params)
File '/usr/local/lib/python2.7/site-packages/beaker/session.py', line 169 in __init__
  self.invalidate()
File '/usr/local/lib/python2.7/site-packages/beaker/session.py', line 317 in invalidate
  self.load()
File '/usr/local/lib/python2.7/site-packages/beaker/session.py', line 329 in load
  self.namespace.acquire_read_lock()
File '/usr/local/lib/python2.7/site-packages/beaker/container.py', line 211 in acquire_read_lock
  self.access_lock.acquire_read_lock()
File '/usr/local/lib/python2.7/site-packages/beaker/synchronization.py', line 154 in acquire_read_lock
  x = self.do_acquire_read_lock(wait)
File '/usr/local/lib/python2.7/site-packages/beaker/synchronization.py', line 251 in do_acquire_read_lock
  fcntl.flock(filedescriptor, fcntl.LOCK_SH)
IOError: [Errno 45] Operation not supported

Attachments

Comments

Comment by Wise Kaa, on 2018-05-08 08:38

Comment by Eivind Tagseth, on 2018-05-08 11:29

You have kallithea/your repositories on a filesystem not supporting flock?

Comment by Wise Kaa, on 2018-05-08 11:48

Yes, it is on NFS volume.

Comment by Wise Kaa, on 2018-05-08 11:50

I have bypassed this with beaker.session.type = ext:database

Comment by Wise Kaa, on 2018-05-08 11:50

I have bypassed this with beaker.session.type = ext:database

Comment by Thomas De Schampheleire, on 2018-05-13 19:29

I think you could have stayed at 'file' for beaker session type, but changing the beaker.cache.data_dir and/or beaker.cache.lock_dir to a local filessytem path. I actually think it would be a good idea to do that anyway, because NFS is generally much slower than local files, and these files would normally not need to be available remotely.

data_dir (optional, string)
    Used with any back-end that stores its data in physical files, such as the dbm or file-based back-ends.
    This path should be an absolute path to the directory that stores the files.
lock_dir (required, string)
    Used with every back-end, to coordinate locking. With caching, this lock file is used to ensure that
    multiple processes/threads aren’t attempting to re-create the same value at the same time (The Dog-Pile Effect)

http://beaker.readthedocs.io/en/latest/configuration.html

Comment by Mads Kiilerich, on 2018-05-13 20:43

I guess the idea with using NFS would be to run server instances on different machines. In that case, I think it would need data and lock dir on shared storage too.