That is caused by the "--reload" options, it is not available with gevent
as it requires forking a thread to minitor the file changes.


On Mon, Nov 4, 2013 at 1:10 AM, Juraj Variny <[email protected]> wrote:

> So I set out to create some test case, quickstarted example project in new
> virtualenv, set it to use gevent(no other modification at all), and got
> this. Still, it loads fine in the browser.
>
> % gearbox serve --reload -c development.ini
> 00:06:25,561 INFO  [gearbox] Starting subprocess with file monitor
> 00:06:26,260 INFO  [gearbox] Starting server in PID 32706.
> Starting Gevent HTTP server on http://127.0.0.1:2088
> Exception in thread Thread-1:
> Traceback (most recent call last):
>   File "/usr/lib64/python2.7/threading.py", line 808, in __bootstrap_inner
>     self.run()
>   File "/usr/lib64/python2.7/threading.py", line 761, in run
>     self.__target(*self.__args, **self.__kwargs)
>   File
> "/home/juro/work/testenv/lib/python2.7/site-packages/gearbox/commands/serve.py",
> line 762, in periodic_reload
>     time.sleep(self.poll_interval)
>   File
> "/home/juro/work/testenv/lib/python2.7/site-packages/gevent/hub.py", line
> 79, in sleep
>     switch_result = get_hub().switch()
>   File
> "/home/juro/work/testenv/lib/python2.7/site-packages/gevent/hub.py", line
> 135, in get_hub
>     raise NotImplementedError('gevent is only usable from a single thread')
> NotImplementedError: gevent is only usable from a single thread
>
>
>
> On Friday, October 18, 2013 11:25:53 AM UTC+2, Alessandro Molina wrote:
>
>> gearbox gevent calls patch_all when the server is started, so it might be
>> that it fails if somehow modules are imported before starting the server.
>> I'll double check this, in case it's confirmed it might be possible to
>> solve it with just a new gearbox release.
>>
>> What I can suggest is checking that you are not importing urllib or
>> thread anywhere in the "config" package of your application, it's the first
>> thing that gets loaded.
>>
>>
>> On Thu, Oct 17, 2013 at 12:00 AM, Juraj Variny <[email protected]> wrote:
>>
>>> When added monkey.patch_all() directly on the top of gearbox, the
>>> problem vanished. So it seems gearbox is monkey patching too late - urllib2
>>> is already imported somewhere and gevent then fails to patch it, as hinted
>>> by this: https://groups.google.com/forum/#!topic/gevent/JUWbFMcNYEM
>>>
>>> Should I create an issue for this?
>>>
>>> Juraj
>>>
>>>
>>> On Wednesday, October 16, 2013 11:37:18 PM UTC+2, Juraj Variny wrote:
>>>>
>>>> Hello, after upgrade to tg 2.3 and set up to use gevent, I am getting
>>>> exceptions like:
>>>>
>>>> AssertionError: The object popped (<tg.wsgiapp.RequestLocals object at
>>>> 0x4f12aa0>) is not the same as the object expected
>>>> (<tg.wsgiapp.RequestLocals object at 0x4cbc398>)
>>>>
>>>> It happens in controller methods that make inline remote JSONRPC calls
>>>> using jsonrpc-1.2 (which is based on standard urllib2) so I suspect it
>>>> isn't monkey patched properly . Trying gevent 1.0rc3 did not help. I don't
>>>> know how to tackle the problem, do you have any ideas please?
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "TurboGears" 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/turbogears.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" 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/turbogears.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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/turbogears.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to