Yes it is shared between multiple requests. Could you give me a hint how 
that can be accomplished?

Many thanks again!!!


Am Dienstag, 3. März 2015 12:59:06 UTC+1 schrieb Graham Dumpleton:
>
> To use socket.makefile, the socket must be in blocking mode (it can not 
> have a timeout). Is this the case?
>
> To what extent is the socket visible/usable from multiple request threads? 
> If it is shared, how are you protecting it from concurrent use?
>
> Although CherryPy WSGI server may also use multithreading, the dynamics of 
> how threads are used in mod_wsgi daemon mode could well be quite different. 
> So if is a multithreading issue, you may simply have been lucky and not 
> encountered it yet on CherryPy WSGI server.
>
> So just to rule it out, explain whether this one socket can be used from 
> different request threads and different times and if so how that usage is 
> protected.
>
> Graham
>
> On 03/03/2015, at 10:52 PM, Stefan Rink <[email protected] 
> <javascript:>> wrote:
>
> 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]> 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] <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.

Reply via email to