|
From: | Nathan Brazil |
Subject: | [Fab-user] Parallelism & Windows |
Date: | Tue, 28 Aug 2012 07:09:50 -0700 |
Hi. Does the parallel execution feature work under Windows? Specifically, I am running Fabric 1.4.3 under Windows 2008 R2 and Python 2.7.2, 64-bit. When I try a simple task to fetch the hostname of each server in a given role, I get an error (see below). Once I comment out the @parallel decorator, it works fine, albeit serially. @task @parallel def hostnames(): run('hostname') -- C:\> fab -R app windows.misc.hostnames [192.168.1.1] Executing task 'windows.misc.hostnames' [192.168.1.2] Executing task 'windows.misc.hostnames' Traceback (most recent call last): File "C:\Python27\lib\site-packages\fabric\main.py", line 717, in main *args, **kwargs File "C:\Python27\lib\site-packages\fabric\tasks.py", line 320, in execute ran_jobs = jobs.run() File "C:\Python27\lib\site-packages\fabric\job_queue.py", line 133, in run _advance_the_queue() File "C:\Python27\lib\site-packages\fabric\job_queue.py", line 123, in _advance_the_queue job.start() File "C:\Python27\lib\multiprocessing\process.py", line 130, in start self._popen = Popen(self) File "C:\Python27\lib\multiprocessing\forking.py", line 271, in __init__ dump(process_obj, to_child, HIGHEST_PROTOCOL) File "C:\Python27\lib\multiprocessing\forking.py", line 193, in dump ForkingPickler(file, protocol).dump(obj) File "C:\Python27\lib\pickle.py", line 224, in dump self.save(obj) File "C:\Python27\lib\pickle.py", line 331, in save self.save_reduce(obj=obj, *rv) File "C:\Python27\lib\pickle.py", line 419, in save_reduce save(state) File "C:\Python27\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "C:\Python27\lib\pickle.py", line 649, in save_dict self._batch_setitems(obj.iteritems()) File "C:\Python27\lib\pickle.py", line 681, in _batch_setitems save(v) File "C:\Python27\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self File "C:\Python27\lib\pickle.py", line 748, in save_global (obj, module, name)) pickle.PicklingError: Can't pickle <function inner at 0x0000000003257A58>: it's not found as fabric.tasks.inner Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Python27\lib\multiprocessing\forking.py", line 374, in main self = load(from_parent) File "C:\Python27\lib\pickle.py", line 1378, in load return Unpickler(file).load() File "C:\Python27\lib\pickle.py", line 858, in load dispatch[key](self) File "C:\Python27\lib\pickle.py", line 880, in load_eof raise EOFError EOFError |
[Prev in Thread] | Current Thread | [Next in Thread] |