Jeff, thank you for your answer!

I found eventlet.monkey_path call in utilities.py:
eventlet.monkey_patch()

Eventlet is actually used in the one of methods, but I really don't
understand, why we call monkey_patch.

I comment out this string and hope to get fine results.

--
Vladimir
Support engineer
Naumen


2015-12-17 22:10 GMT+05:00 Jeff Forcier <[email protected]>:

> It looks like something in your codebase has activated the eventlet
> library and is probably running its "patch the world" method? Notice
> how the traceback enters the eventlet lib after calling select(),
> which in regular Fabric is just the stdlib select.select function.
>
> We unfortunately don't support eventlet so there's not a lot of help
> we can provide, sorry!
>
> Best,
> Jeff
>
> On Thu, Dec 17, 2015 at 7:22 AM, Владимир Янченко <[email protected]>
> wrote:
> > Hi!
> >
> > I run fabric tasks throw other python tool, that works via gunicorn.
> >
> > Usually my tasks work fine, but sometimes I get the strange error
> "Operation
> > not permitted".
> > This error appears when fabric run the first "run" function.
> >
> > What could this error mean? Gunicorn restart helps me for a while, but
> then
> > the error returns.
> >
> > I found only one mention of such problem in internet:
> > https://github.com/StackStorm/st2/issues/1792
> >
> > Full stack:
> >   File "/home/administrator/webhandler/naupp_integration/utilities.py",
> line
> > 329, in create
> >     network = network)
> >   File "/home/administrator/webhandler/others/fabfile.py", line 600, in
> > create_stand
> >     run('rm -f /tmp/stands_ports_list.txt; echo $?',shell=True,pty=False)
> >   File "/usr/local/lib/python2.7/dist-packages/fabric/network.py", line
> 639,
> > in host_prompting_wrapper
> >     return func(*args, **kwargs)
> >   File "/usr/local/lib/python2.7/dist-packages/fabric/operations.py",
> line
> > 1042, in run
> >     shell_escape=shell_escape)
> >   File "/usr/local/lib/python2.7/dist-packages/fabric/operations.py",
> line
> > 911, in _run_command
> >     stderr=stderr, timeout=timeout)
> >   File "/usr/local/lib/python2.7/dist-packages/fabric/operations.py",
> line
> > 795, in _execute
> >     worker.raise_if_needed()
> >   File
> "/usr/local/lib/python2.7/dist-packages/fabric/thread_handling.py",
> > line 12, in wrapper
> >     callable(*args, **kwargs)
> >   File "/usr/local/lib/python2.7/dist-packages/fabric/io.py", line 231,
> in
> > input_loop
> >     r, w, x = select([sys.stdin], [], [], 0.0)
> >   File "/usr/local/lib/python2.7/dist-packages/eventlet/green/select.py",
> > line 79, in select
> >     listeners.append(hub.add(hub.READ, k, on_read, on_error, lambda x:
> > None))
> >   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/epolls.py",
> > line 53, in add
> >     self.register(fileno, new=True)
> >   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py",
> line
> > 45, in register
> >     self.poll.register(fileno, mask)
> > IOError: [Errno 1] Operation not permitted
> >
> > My code:
> >
> > utilities.py:
> >
> > foo = load_source('fabfile', '../others/fabfile.py')
> > ...
> > result = foo.create_stand(
> >     ...
> > )
> >
> > fabfile.py:
> >
> > from fabric.operations import run
> > from fabric.api import *
> >
> > env.parallel=False
> > @serial
> > def create_stand(.... stand_host = '', stand_user = '',  ....)
> >
> >
> >     with settings(
> >         hide('warnings'),
> >         host_string=stand_host,
> >         user=stand_user,
> >         warn_only=True
> >      ):
> >         disconnect_all()
> >         run('rm -f /tmp/stands_ports_list.txt; echo
> > $?',shell=True,pty=False)
> >         ...
> >
> > --
> >
> > Vladimir Yanchenko
> > Support engineer
> > Naumen
> >
> > _______________________________________________
> > Fab-user mailing list
> > [email protected]
> > https://lists.nongnu.org/mailman/listinfo/fab-user
> >
>
>
>
> --
> Jeff Forcier
> Unix sysadmin; Python/Ruby engineer
> http://bitprophet.org
>
_______________________________________________
Fab-user mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to