self.f is the result from calling socket.make_file I just don't know why this is working only with one thread under flask and mod_wsgi. On flask-dev-server and on CherryPy standalone it also works. And CherryPy is also multithreaded.
Am Dienstag, 3. März 2015 12:36:34 UTC+1 schrieb Graham Dumpleton: > > 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] > <javascript:>> 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] <javascript:>. > To post to this group, send email to [email protected] <javascript:> > . > 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.
