training icon indicating copy to clipboard operation
training copied to clipboard

Can not *start* instance in vagrant, only fg

Open fulv opened this issue 9 years ago • 0 comments

If I try starting the instance installed in vagrant following http://training.plone.org/5/plone_training_config/instructions.html, I get the following error:

vagrant@training:/vagrant/buildout$ bin/instance start
. Traceback (most recent call last):
  File "/vagrant/buildout/parts/instance/bin/interpreter", line 286, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 745, in <module>
    main()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 742, in main
    d.main(args)
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 241, in main
    self.run()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 245, in run
    self.opensocket()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 267, in opensocket
    sock.bind(tempname)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 1] Operation not permitted
. . . . . . . . . .
daemon manager not running

In fg it works fine.

So I added the following two import and print lines in /usr/lib/python2.7/socket.py at line 224:

def meth(name,self,*args):
    import os
    print "%s: %s %s" % (os.getpid(), name, args)
    return getattr(self._sock,name)(*args)

Now notice the difference between start and fg:

vagrant@training:/vagrant/buildout$ bin/instance fg
24463: connect ('/vagrant/buildout/var/instance/zopectlsock',)
24463: connect ('/vagrant/buildout/var/instance/zopectlsock',)
24466: setblocking (0,)
24466: fileno ()
24466: fileno ()
24466: getsockopt (1, 2)
24466: setsockopt (1, 2, 1)
24466: bind (('0.0.0.0', 8080),)
24466: listen (1024,)
24466: getsockname ()
2015-10-03 14:31:05 INFO ZServer HTTP server started at Sat Oct  3 14:31:05 2015
    Hostname: 0.0.0.0
    Port: 8080
vagrant@training:/vagrant/buildout$ bin/instance start
24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24473: bind ('/vagrant/buildout/var/instance/zopectlsock.24473',)
Traceback (most recent call last):
  File "/vagrant/buildout/parts/instance/bin/interpreter", line 286, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 745, in <module>
    main()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 742, in main
    d.main(args)
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 241, in main
    self.run()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 245, in run
    self.opensocket()
  File "/home/vagrant/buildout-cache/eggs/zdaemon-2.0.7-py2.7.egg/zdaemon/zdrun.py", line 267, in opensocket
    sock.bind(tempname)
  File "/usr/lib/python2.7/socket.py", line 227, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 1] Operation not permitted
24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)
. 24470: connect ('/vagrant/buildout/var/instance/zopectlsock',)

daemon manager not running

One possible fix is to change the CLIENTHOME definition in parts/instance/etc/zope.conf:

%define CLIENTHOME /home/vagrant/var/instance

Doing this will allow bin/instance start to work.

fulv avatar Oct 03 '15 15:10 fulv