﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
9400	flock causes problems when writing to an NFS share	mikeh	nobody	"Hi,

This seems to be the same behaviour as reported in #8403, but as that ticket has been closed as there was a request not to reopen it, here's a new ticket.

We have a media directory mounted over NFS. Our system is RHEL5.2, Python 2.4, Django-1.0. Saving a file through the standard FileField mechanisms (we're not using any custom storage backends, just out of the box django setup stuff) results in the following :

{{{

File ""/usr/lib64/python2.4/site-packages/mod_python/apache.py"", line 299, in HandlerDispatch?

result = object(req)

File ""/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py"", line 222, in handler

return ModPythonHandler?()(req)

File ""/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py"", line 195, in call

response = self.get_response(request)

File ""/usr/lib/python2.4/site-packages/django/core/handlers/base.py"", line 128, in get_response

return self.handle_uncaught_exception(request, resolver, exc_info)

File ""./../apps/dave_common/init.py"", line 20, in new 
File ""/usr/lib/python2.4/site-packages/django/core/handlers/base.py"", line 86, in get_response

response = callback(request, *callback_args, **callback_kwargs)

File ""/usr/lib/python2.4/site-packages/django/contrib/admin/sites.py"", line 158, in root

return self.model_page(request, *url.split('/', 2))

File ""/usr/lib/python2.4/site-packages/django/views/decorators/cache.py"", line 44, in _wrapped_view_func

response = view_func(request, *args, **kwargs)

File ""/usr/lib/python2.4/site-packages/django/contrib/admin/sites.py"", line 177, in model_page

return admin_obj(request, rest_of_url)

File ""/usr/lib/python2.4/site-packages/django/contrib/admin/options.py"", line 191, in call

return self.add_view(request)

File ""/usr/lib/python2.4/site-packages/django/db/transaction.py"", line 238, in _commit_on_success

res = func(*args, **kw)

File ""/usr/lib/python2.4/site-packages/django/contrib/admin/options.py"", line 492, in add_view

new_object = self.save_form(request, form, change=False)

File ""/usr/lib/python2.4/site-packages/django/contrib/admin/options.py"", line 370, in save_form

return form.save(commit=False)

File ""/usr/lib/python2.4/site-packages/django/forms/models.py"", line 302, in save

return save_instance(self, self.instance, self._meta.fields, fail_message, commit)

File ""/usr/lib/python2.4/site-packages/django/forms/models.py"", line 47, in save_instance

f.save_form_data(instance, cleaned_data[f.name])

File ""/usr/lib/python2.4/site-packages/django/db/models/fields/files.py"", line 192, in save_form_data

getattr(instance, self.name).save(data.name, data, save=False)

File ""/usr/lib/python2.4/site-packages/django/db/models/fields/files.py"", line 217, in save

super(ImageFieldFile?, self).save(name, content, save)

File ""/usr/lib/python2.4/site-packages/django/db/models/fields/files.py"", line 74, in save

self._name = self.storage.save(name, content)

File ""/usr/lib/python2.4/site-packages/django/core/files/storage.py"", line 45, in save

name = self._save(name, content)

File ""/usr/lib/python2.4/site-packages/django/core/files/storage.py"", line 159, in _save

locks.lock(fd, locks.LOCK_EX)

File ""/usr/lib/python2.4/site-packages/django/core/files/locks.py"", line 57, in lock

fcntl.lockf(fd(file), flags)

IOError: [Errno 37] No locks available
}}}

The default with RHEL5.2 is NFSv3, and that's what we're using.

Cheers,

Mike"	Bug	closed	File uploads/storage	1.0	Normal	worksforme			Design decision needed	0	0	0	0	0	0
