devel/uwsgi

Michael Gmelin freebsd at grem.de
Sat Feb 23 18:36:47 UTC 2013


On Sat, 23 Feb 2013 17:45:48 +0200
Daniel Braniss <danny at cs.huji.ac.il> wrote:


> > On Sat, 23 Feb 2013 15:38:36 +0200
> ===>  Building for uwsgi-1.4.5
> /usr/local/bin/python2.7 uwsgiconfig.py --build
> Exception in thread Thread-1:
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/threading.py", line 551, in
> __bootstrap_inner self.run()
>   File "/usr/local/lib/python2.7/threading.py", line 504, in run
>     self.__target(*self.__args, **self.__kwargs)
>   File "uwsgiconfig.py", line 92, in thread_compiler
>     (objfile, cmdline) = compile_queue.get()
>   File "/usr/local/lib/python2.7/site-packages/gevent/queue.py", line
> 190, in get
>     return waiter.get()
>   File "/usr/local/lib/python2.7/site-packages/gevent/hub.py", line
> 321, in get return get_hub().switch()
>   File "/usr/local/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
> 

I just noticed that you're building 1.4.5, I just updated an older
server 9.0/gcc and tried building it there. I also updated to 1.4.5 on
a 9.1 machine with clang and tried compiling there without any issues.
The compile runs multithreaded just fine, using eight threads in
parallel (the machine has eight cores)., e.g.

*** uWSGI compiling server core ***
[thread 1][clang] core/utils.o
[thread 2][clang] core/protocol.o
[thread 3][clang] core/socket.o
[thread 4][clang] core/logging.o
[thread 5][clang] core/master.o
[thread 6][clang] core/master_utils.o
[thread 7][clang] core/emperor.o
[thread 0][clang] core/notify.o
[thread 0][clang] core/mule.o
[thread 4][clang] core/subscription.o
[thread 6][clang] core/stats.o

So I assume there are two possible reasons:
a) The build doesn't scale up to 16 cores (I don't have a
   non-production machine I could test this on right now)
b) There is something wrong with your setup

Could you try setting the limiting the number of cpu cores to 8 and see
if that works. If that still breaks there's definitely a problem with
your setup. In that case I would suggest cleaning your installation
(all python related ports), remove all stored configuration options and
start from scratch, since this might hit you again at a later
point outside of the build process.

(I'm using python27-2.7.3_3 by the way, just in case that makes a
difference for gevent).

Michael

-- 
Michael Gmelin


More information about the freebsd-ports mailing list