Was this threading problem resolved?


On Saturday, August 18, 2012 7:15:37 AM UTC+2, Massimo Di Pierro wrote:
>
> I am pretty sure web2py does not put those variables in global namespace 
> but there is some extra logic for GAE that was written with some stronger 
> assumptions. Will take a look.
>
>
> On Tuesday, 21 February 2012 14:54:31 UTC-6, howesc wrote:
>>
>> Hello all,
>>
>> a question about web2py and concurrent requests on GAE - I'm seeing some 
>> odd behavior and i would like to know if my theory is at all reasonable, 
>> and suggestions for testing my theory.  an RTFM (read the friggen manual) 
>> response is just fine - can you point me to the manual?
>>
>> my assertion:  on GAE web2py puts per-request items into the shared 
>> global namespace, such as db and auth.  this causes problems on GAE with 
>> concurrency enabled because data gets clobbered.
>>
>> why do i believe this?  well, i turned on concurrency (threadsafe: true) 
>> in app.yaml and after some time as the site gets loaded with real users (i 
>> have not run into this when testing probably because i don't generate 
>> enough test traffic) i see errors like:
>>
>>   File 
>> "/base/data/home/apps/s~myapp/default-30a0bc01f698.356965928401701861/applications/myapp/controllers/admin_stores.py",
>>  line 10, in <module>
>>     auth.settings.actions_disabled=['profile', 'change_password']
>> NameError: name 'auth' is not defined
>>
>> AttributeError: 'auth_user' object has no attribute 'preferred_store'
>>
>>   File 
>> "/base/data/home/apps/s~myapp/default-30a0bc01f698.356965928401701861/applications/myapp/controllers/order.py",
>>  line 12, in <module>
>>     db.store.virtualfields.append(StoreVirtualFields())
>> NameError: name 'db' is not defined
>>
>>
>>   File 
>> "/base/data/home/apps/s~myapp/default-30a0bc01f698.356965928401701861/applications/myapp/controllers/food.py",
>>  line 22, in menu
>>     response.title = response.title + " - Our Menu"
>> TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
>>
>> i'd love to prove or disprove my theory that what is happening is that 
>> while the request that errors is being processed, db.py (and menu.py) is 
>> being evaluated for a second request, essentially clearing variables like 
>> db, auth, and perhaps even response  (the None response.title when 
>> response.title is set in menu.py is most concerning).
>>
>> i admit to not fully understanding how the run_X_in_environment(), and 
>> build_environment() and python variable scoping works well enough to know 
>> if my theory is valid and how best to test my theory?  i've thought about 
>> putting a sleep in db.py just to see if i can reliably re-create this type 
>> of behaviour.
>>
>> any thoughts?
>>
>> thanks,
>>
>> christian
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to