Issue 30829: 'Cannot serialize socket object' after ssl.wrap_socket (original) (raw)
Traceback (most recent call last): File "/usr/local/lib/python3.6/socketserver.py", line 317, in _handle_request_noblock self.process_request(request, client_address) File "/opt/storage_server/server_tcp.py", line 121, in process_request self.pipes[self.proc_turn][1].send((request, client_address)) File "/usr/local/lib/python3.6/multiprocessing/connection.py", line 206, in send self._send_bytes(_ForkingPickler.dumps(obj)) File "/usr/local/lib/python3.6/multiprocessing/reduction.py", line 51, in dumps cls(buf, protocol).dump(obj) File "/usr/local/lib/python3.6/socket.py", line 185, in getstate raise TypeError("Cannot serialize socket object") TypeError: Cannot serialize socket object
I am trying to send a ssl wrapped socket object (server side) into a pipe to another process using multiprocessing.
Btw, without ssl_wrap it works.
Basically this:
newsocket, fromaddr = self.socket.accept()
connstream = ssl.wrap_socket(newsocket, server_side=True, certfile=self.certfile, keyfile=self.keyfile)
pipe = multiprocessing.Pipe() proc = multiprocessing.Process(target=proc_run, args=(pipe[0],), daemon=False) proc.start()
#Error here pipe[1].send((connstream, fromaddr))
I am sorry if this is intentional.