Virtualbox shared folder, on the guest, is not a normal filesystem, that's why you get these problems.
if the guest OS is linux, then NFS should do the trick alvaro. On Tue, Aug 5, 2014 at 7:09 AM, Spencer Holleman <[email protected]> wrote: > Thank you for the response. > > The project is being shared via: config.vm.share_folder "vagrant-root", > "/var/src/infotron", "." > > It's not a problem to share some other way. Any recommendation as to what > would be best (simpliest/fastest/least error-prone)? > > Thanks, > Spencer > > > > On Sunday, August 3, 2014 6:43:00 PM UTC-4, Alvaro Miranda Aguilera wrote: >> >> if the files are on virtualbox shared folder, that is the component to >> blame >> >> can you use local files on the vm, nfs, rsync or anything else than >> virtualbox shared folder? >> >> >> >> >> On Thu, Jul 31, 2014 at 11:28 AM, Spencer Holleman <[email protected]> >> wrote: >> >>> This is happening to everyone at my company who is using Django and >>> Vagrant. I don't know why. I typically only workin the .py files and so >>> hadn't seen this issue before. We're buying VMWare workstation for Vagrant >>> and installing it to get around this issue. There has to be a better way. >>> I've Googled but to no avail. Anyone hear of anything like this before? >>> >>> Repro >>> >>> 1. in vagrant guest vm, 'python manage.py runserver 0.0.0.0:8000' >>> 2. open page in browser, it works >>> 3. modify and save any template (.html) file in the django project >>> 4. runserver doesn't say, "changes detected, restarting" >>> 5. try to open any page, observe 'waiting for...' forever. page >>> never loads. >>> 6. observe that the runserver console is not doing anything. no >>> exception, no activity. just sitting >>> >>> only fix is to ctrl-c the runserver and runserver again. very annoying. >>> >>> using Virtualbox. >>> >>> I tried "runserver --noreload" to no avail. >>> >>> stack trace observed when hitting ctrl-c after hang: >>> >>> 1; args=(1762032096,) >>> [30/Jul/2014 19:19:47] DEBUG [django.db.backends:79] (0.002) SELECT >>> `django_site`.`id`, `django_site`.`domain`, `django_site`.`name` FROM >>> `django_site` WHERE `django_site`.`id` = 1 ; args=(1,) >>> ---------------------------------------- >>> Exception happened during processing of request from ('10.0.2.2', 52048) >>> Traceback (most recent call last): >>> File "/usr/lib64/python2.6/SocketServer.py", line 283, in >>> _handle_request_noblock >>> self.process_request(request, client_address) >>> File "/usr/lib64/python2.6/SocketServer.py", line 309, in >>> process_request >>> self.finish_request(request, client_address) >>> File "/usr/lib64/python2.6/SocketServer.py", line 322, in >>> finish_request >>> self.RequestHandlerClass(request, client_address, self) >>> File "/usr/lib64/python2.6/SocketServer.py", line 617, in __init__ >>> self.handle() >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/serving.py", >>> line 200, in handle >>> rv = BaseHTTPRequestHandler.handle(self) >>> File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle >>> self.handle_one_request() >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/serving.py", >>> line 235, in handle_one_request >>> return self.run_wsgi() >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/serving.py", >>> line 177, in run_wsgi >>> execute(self.server.app) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/serving.py", >>> line 167, in execute >>> for data in application_iter: >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/debug/__init__.py", >>> line 89, in debug_application >>> for item in app_iter: >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/werkzeug/debug/__init__.py", >>> line 88, in debug_application >>> app_iter = self.app(environ, start_response) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/staticfiles/handlers.py", line 67, in __call__ >>> return self.application(environ, start_response) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/core/handlers/wsgi.py", >>> line 206, in __call__ >>> response = self.get_response(request) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/core/handlers/base.py", >>> line 196, in get_response >>> response = self.handle_uncaught_exception(request, resolver, >>> sys.exc_info()) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/core/handlers/base.py", >>> line 231, in handle_uncaught_exception >>> return debug.technical_500_response(request, *exc_info) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django_extensions/management/technical_response.py", line 5, in >>> null_technical_500_response >>> six.reraise(exc_type, exc_value, tb) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/core/handlers/base.py", >>> line 114, in get_response >>> response = wrapped_callback(request, *callback_args, >>> **callback_kwargs) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/auth/decorators.py", line 21, in _wrapped_view >>> if test_func(request.user): >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/auth/decorators.py", line 47, in <lambda> >>> lambda u: u.is_authenticated(), >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/utils/functional.py", >>> line 213, in inner >>> self._setup() >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/django/utils/functional.py", >>> line 298, in _setup >>> self._wrapped = self._setupfunc() >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/auth/middleware.py", line 18, in <lambda> >>> request.user = SimpleLazyObject(lambda: get_user(request)) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/auth/middleware.py", line 10, in get_user >>> request._cached_user = auth.get_user(request) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> django/contrib/auth/__init__.py", line 144, in get_user >>> user = backend.get_user(user_id) or AnonymousUser() >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/fool_auth_for_django/backends.py", >>> line 13, in get_user >>> api_user_info = users_api.user_info_for_username(user_id) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/fool_api_kit/users.py", >>> line 12, in user_info_for_username >>> return user_info_for_identifier(username) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/fool_api_kit/users.py", >>> line 18, in user_info_for_identifier >>> json_payload = __user_info_json(identifier) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/fool_api_kit/users.py", >>> line 27, in __user_info_json >>> r = __user_info_for_identifier_request(identifier) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/fool_api_kit/users.py", >>> line 38, in __user_info_for_identifier_request >>> return requests_session.get(url, verify=False) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/requests/sessions.py", >>> line 347, in get >>> return self.request('GET', url, **kwargs) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/requests/sessions.py", >>> line 335, in request >>> resp = self.send(prep, **send_kwargs) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/requests/sessions.py", >>> line 438, in send >>> r = adapter.send(request, **kwargs) >>> File >>> "/var/src/venv/infotron/lib/python2.6/site-packages/requests/adapters.py", >>> line 292, in send >>> timeout=timeout >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> requests/packages/urllib3/connectionpool.py", line 428, in urlopen >>> body=body, headers=headers) >>> File "/var/src/venv/infotron/lib/python2.6/site-packages/ >>> requests/packages/urllib3/connectionpool.py", line 290, in _make_request >>> httplib_response = conn.getresponse() >>> File "/usr/lib64/python2.6/httplib.py", line 990, in getresponse >>> response.begin() >>> File "/usr/lib64/python2.6/httplib.py", line 391, in begin >>> version, status, reason = self._read_status() >>> File "/usr/lib64/python2.6/httplib.py", line 349, in _read_status >>> line = self.fp.readline() >>> File "/usr/lib64/python2.6/socket.py", line 427, in readline >>> data = recv(1) >>> File "/usr/lib64/python2.6/ssl.py", line 215, in recv >>> return self.read(buflen) >>> File "/usr/lib64/python2.6/ssl.py", line 136, in read >>> return self._sslobj.read(len) >>> >>> is it getting stuck in ssl.py? >>> >>> >>> contents of vagrantfile: >>> # -*- mode: ruby -*- >>> # vi: set ft=ruby : >>> >>> Vagrant::Config.run do |config| >>> # All Vagrant configuration is done here. The most common configuration >>> # options are documented and commented below. For a complete reference, >>> # please see the online documentation at vagrantup.com. >>> >>> # Every Vagrant virtual environment requires a box to build off of. >>> config.vm.box = "squeeze" >>> >>> # The url from where the 'config.vm.box' box will be fetched if it >>> # doesn't already exist on the user's system. >>> config.vm.box_url = "squeeze32-4.1.4.box" >>> >>> # Boot with a GUI so you can see the screen. (Default is headless) >>> # config.vm.boot_mode = :gui >>> >>> # Assign this VM to a host-only network IP, allowing you to access it >>> # via the IP. Host-only networks can talk to the host machine as well >>> as >>> # any other machines on the same network, but cannot be accessed >>> (through this >>> # network interface) by any external networks. >>> # config.vm.network :hostonly, "192.168.33.10" >>> >>> # Assign this VM to a bridged netgwork, allowing you to connect >>> directly to a >>> # network using the host's network device. This makes the VM appear as >>> another >>> # physical device on your network. >>> # config.vm.network :bridged >>> >>> # Forward a port from the guest to the host, which allows for outside >>> # computers to access the VM, whereas host only networking does not. >>> config.vm.forward_port 8000, 8001 >>> # Share an additional folder to the guest VM. The first argument is >>> # an identifier, the second is the path on the guest to mount the >>> # folder, and the third is the path on the host to the actual folder. >>> # config.vm.share_folder "v-data", "/vagrant_data", "../data" >>> config.vm.share_folder "vagrant-root", "/var/src/infotron", "." >>> config.vm.customize ["setextradata", :id, "VBoxInternal2/ >>> SharedFoldersEnableSymlinksCreate/v-root", "1"] >>> packages_path = "../packages" >>> if File.exists?(packages_path) and File.directory?(packages_path) >>> config.vm.share_folder "v-packages", "/var/src/packages", >>> "../packages" >>> end >>> end >>> >>> any assistance is greatly appreciated. I can't believe this is happening >>> to everyone here but not anyone else on the internet. >>> >>> For a minute it appeared that this only occurs when I use >>> "runserver_plus" instead of "runserver". However, it's now happening in >>> both cases. :-/ >>> >>> Thanks, >>> spencer >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Vagrant" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Vagrant" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Vagrant" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
