What is the type of the 'self.f' object? You talk about having a 'socket file', but sockets don't have a proper file like object interface.
If you were somehow trying to wrap a file like object interface around a socket, that could cause issues. This is because a read on a socket can return partial results so the error may be the result of trying to decode incomplete data. What you would need to ensure you are doing is read the full message from the socket first, wrap that in a StringIO object and then feed that to pickle.load(). Graham On 03/03/2015, at 10:23 PM, Stefan Rink <[email protected]> wrote: > Hello Graham, > > i get this error and sometimes pickle.load gives an empty string. > The other process dumps data into the socket file that I load > result = pickle.load(self.f) > File "/usr/lib/python2.7/pickle.py", line 1378, in load > return Unpickler(file).load() > File "/usr/lib/python2.7/pickle.py", line 858, in load > dispatch[key](self) > File "/usr/lib/python2.7/pickle.py", line 1138, in load_pop > del self.stack[-1] > IndexError: list assignment index out of range > > Sorry I cannot provide more but have no clue why this is going wrong. Thank > you for your time. > > > Am Dienstag, 3. März 2015 12:01:48 UTC+1 schrieb Graham Dumpleton: > Can you go back and explain and provide the actual details of the error > message you are getting. If I can see the actual error messages then it might > be more obvious. > > Graham > > On 03/03/2015, at 8:49 PM, Stefan Rink <[email protected]> wrote: > >> Hello Graham, >> >> thank you very much for your answer. >> >> Only standard Python types are pickled: dicts, bytestrings. It works only >> when using a single thread in the WSGIDaemonProcess directive! Is that >> helping? >> >> Thank you >> >> >> Am Dienstag, 3. März 2015 09:58:11 UTC+1 schrieb Graham Dumpleton: >> >> On 03/03/2015, at 7:10 PM, Stefan Rink <[email protected]> wrote: >> >> > Hello Graham, >> > >> > under mod_wsgi I get pickle errors when pickling over a socket to another >> > process (no Apache child). Can this be caused by mod_wsgi? >> > mod_wsgi is in Daemon Mode. >> >> The only restriction I really know of which is specific to mod_wsgi is that >> you cannot pickle types which are defined in the WSGI script file itself. >> You should ensure that any types are defined in separately importable >> modules on the Python module search path. Those same modules with the types >> in them should also be importable in the application the data is being sent >> to so they are available when unpicking the data. >> >> For more information about the destruction I talk about see: >> >> http://code.google.com/p/modwsgi/wiki/IssuesWithPickleModule >> >> Graham >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/modwsgi. >> For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
