Невозможно создать новый поток, используя многопроцессорный модуль Python - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь работать с двумя огромными списками, используя многопроцессорный модуль python. Для обмена данными между этими процессами объект manager.dict(). Вот фрагмент кода.

def my_function(item, list_two, return_dict):
    for val in list_two:
        # Do some I/O operation and DB connect operations and 
        # get modified values of variables item and val
        new_value = item + val
        return_dict[item] = new_value


if __name__ == "__main__":
    procs = []
    manager = multiprocessing.Manager()
    return_dict = manager.dict()
    list_one = [1, 2, 3, 5.....]  # len(list_one) = 120
    list_two = ['a', 'b', 'c', .......]  # len(list_two) = 800
    for item in list_one:
        proc = Process(target=my_function, args=(str(item), list_two, return_dict))
        procs.append(proc)
        proc.start()
    for proc in procs:
        proc.join()
    print(return_dict)

Теперь, поскольку я использую объект Process, он создает процессы, равные количеству элементов в моем list_one, и присоединяется к ним. Я выполняю эту программу и тем временем выполняю команду top, чтобы увидеть, что в ней зарегистрировано около 80 пользователей. Но как только число пользователей увеличивается, скажем, 125, та же самая программа ломается, говоря, что error: can't start new thread.

multiprocessing.cpu_count() = 16

Я даже пытался разбить list_one на партии по 10 и выполнить для этих партий. Но, к сожалению, он обрабатывает только первую партию. Это не работает на оставшиеся партии.

Итак, почему программа ломается, потому что она не может создать столько потоков, сколько пользователей, или потому что она не может выполнять эти многие операции ввода-вывода параллельно?

Использование версии Python - 2.6

РЕДАКТИРОВАТЬ: отправка трассировки

Process SyncManager-1:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 525, in _run_server
    server.serve_forever()
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 158, in serve_forever
    t.start()
  File "/usr/lib64/python2.6/threading.py", line 474, in start
    _start_new_thread(self.__bootstrap, ())
error: can't start new thread
Process Process-104:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-25:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 81, in my_function
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 81, in my_function
Process Process-101:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 81, in my_function
Process Process-8:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 81, in my_function
    output = subprocess.Popen(args_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1144, in _execute_child
    self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable
    output = subprocess.Popen(args_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1144, in _execute_child
    self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable
    output = subprocess.Popen(args_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1144, in _execute_child
    self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable
    output = subprocess.Popen(args_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1144, in _execute_child
    self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable
Process Process-53:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
Process Process-30:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-19:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self.run()
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
  File "./test_multiprocess.py", line 119, in my_function
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
    kind, result = conn.recv()
IOError: [Errno 104] Connection reset by peer
Process Process-13:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
Process Process-47:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-75:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    kind, result = conn.recv()
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
IOError: [Errno 104] Connection reset by peer
    proc_name, ret_version, ret_s_version]
    self._target(*self._args, **self._kwargs)
  File "<string>", line 2, in __setitem__
  File "./test_multiprocess.py", line 137, in my_function
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    kind, result = conn.recv()
IOError: [Errno 104] Connection reset by peer
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
    kind, result = conn.recv()
IOError: [Errno 104] Connection reset by peer
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
    kind, result = conn.recv()
IOError: [Errno 104] Connection reset by peer
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
    kind, result = conn.recv()
IOError: [Errno 104] Connection reset by peer
Process Process-35:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-114:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-84:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-98:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-102:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
Process Process-110:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-87:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-74:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-36:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-69:
    self.run()
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
  File "./test_multiprocess.py", line 119, in my_function
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    proc_name, ret_version, ret_s_version]
Process Process-77:
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
Traceback (most recent call last):
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-111:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-80:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-112:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
Process Process-52:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-83:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
Process Process-6:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-64:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
Process Process-3:
Traceback (most recent call last):
    proc_name, ret_version, ret_s_version]
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
Process Process-62:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-10:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-73:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
Process Process-61:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
Process Process-5:
Process Process-60:
Traceback (most recent call last):
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
Process Process-37:
Process Process-48:
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    proc_name, ret_version, ret_s_version]
Traceback (most recent call last):
Traceback (most recent call last):
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
  File "./test_multiprocess.py", line 119, in my_function
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 119, in my_function
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
    conn.send((self._id, methodname, args, kwds))
    proc_name, ret_version, ret_s_version]
IOError: [Errno 32] Broken pipe
    proc_name, ret_version, ret_s_version]
IOError: [Errno 32] Broken pipe
  File "<string>", line 2, in __setitem__
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    proc_name, ret_version, ret_s_version]
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
    conn.send((self._id, methodname, args, kwds))
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe
IOError: [Errno 32] Broken pipe
Process Process-108:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./test_multiprocess.py", line 137, in my_function
    proc_name, ret_version, 'Object Missing']
  File "<string>", line 2, in __setitem__
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 725, in _callmethod
    conn.send((self._id, methodname, args, kwds))
...