[Twisted-Python] is twisted compatible with pickle?

succer110 at tiscali.it succer110 at tiscali.it
Thu Mar 28 21:24:00 EDT 2013


I have made 2 application: The client extract data from a sql server (10k lines), and send every line pickled to a "collector" server via socket.The server uses twisted and receive every line, unpikle it and store the data in another sql server.
Everytime i start sending data from client to server, in the first 200 line (everytime a different line) **the server** throws an exception:SOMETIMES it something like:
    Traceback (most recent call last):      File "collector2.py", line 81, in dataReceived        self.count,account	= pickle.loads(data)      File "/usr/lib/python2.6/pickle.py", line 1374, in loads        return Unpickler(file).load()      File "/usr/lib/python2.6/pickle.py", line 858, in load        dispatch[key](self)      File "/usr/lib/python2.6/pickle.py", line 1138, in load_pop        del self.stack[-1]    IndexError: list assignment index out of range
But it's NOT every time the same. Printing my exception i red: Exception: pop from empty listException: list index out of rangeException: "'"Exception: list assignment index out of range
Another strange errors is:File "/usr/lib/python2.6/pickle.py", line 1124, in find_class    __import__(module)exceptions.ImportError: No module named ond'
    for i in listaSAI:    	crm={}        try:    		crm['uid']=i[0]    	except:    		crm['uid']=None    	try:    		crm['type_cond']=i[01]    	except:    		crm['type_cond']=None    	try:    		crm['population_id']=i[2]    	except:    		crm['population_id']=None    	try:    		crm['product_id']=i[3]    	except:    		crm['product_id']=None    	try:    		crm['a_id']=i[4]    	except:    		crm['a_id']=None    	try:    		crm['status']=i[5]    	except:    		crm['status']=None    	#time.sleep(0.001)    	serialized = pickle.dumps((count,crm))    	#print "sent num", count, crm    	s.sendall(serialized)    	count += 1

And my server:
    def dataReceived(self, data):    	try:    		self.count,account	= pickle.loads(data)            	except Exception as e:    		print "Eccezione:", e    		print self.count+1    		print  data    		print traceback.print_exc()


Printing the data in my client tells me that everything it's ok.*If i try to slow down the process of sending using time.sleep(0.01) in my client, EVERYTHING IS FINE, and no exception are raised.*
What can i do to debug my code?
p.s. I suspect that exceptions.ImportError: No module named ond' refers to "type_cond" key in crm.

Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/ 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20130329/ede7ddbf/attachment-0001.htm 


More information about the Twisted-Python mailing list