Hi everyone, the second snapshot (maybe the last before -rc cycle) of upcoming uWSGI 1.1 is available.
It contains a massive amount of new features, so every report will be very wellcomed. * New options subsystem The whole options infrastructure has been rewritten. All of the config files can be stacked and can get templates via the --inherit option. A series of options have been added to allows logic in config files: http://projects.unbit.it/uwsgi/wiki/ConfigLogic * atexit hooks You can now specify handlers to be run on server exit via the uwsgi.atexit hook. The python plugin has been improved to support the standard "atexit" module * multiple spooler fixes the main feature for the first 1.1 snapshot was the multispooler support. This new snapshot contains a series of fixes for it. * segmentation fault manager (Linux/OSX) On supported platforms you will get a c backtrace whenever your server segfaults. When you make bug reports for crashes, try to always report this datas (if available) * --exec-pre-jail --exec-post-jail --exec-in-jail this new commandline hooks allows you to call scripts/commands during jailing * fastrouter improvements The fastrouter can now buffer the request body, simply add the --fastrouter-post-buffering specifying the minimal size of file that need to be buffered. The fastrouter will then pass the saved file path to uWSGI instances via the UWSGI_POSTFILE new variable. You can start the fastrouter in preforked mode with --fastrouter-processes <n> The subscription system will go in weighted round robin mode if you specify a weight (with the --weight <n> option) to your cluster nodes. * --pyshell-oneshot/--pyrun this two new options allows you to run python script/commands in the uwsgi environment (look at contrib/upython for an example usage) * plugin loading you can load plugins in a custom modifier using this syntax: --plugin [N:]plugin where N is the number of the modifier Plugins search path can now dinamically added with the --plugins-dir options * --never-swap mode Enabling this flag will prevent uWSGI processes to be swapped. This could be a life-saver for your servers. If a process of the stack cannot allocate memory, it will be killed (and obviously if a master is available it will be respawned ready to manage new requests) * exec:// facility you can now take datas for your options from the output of a command: uwsgi --ini exec://your_command will allows you to dinamically generate config files * Perl/PSGI improvements the long-awaited multiple interpreter support has been added. You can now host multiple psgi apps in the same process. * deadlock detector A new system has been implemented to avoid deadlocks in uWSGI processes. It cannot obviously be perfect, but will help you in 99.9% of the cases. * cheaper improvements Adaptive process spawning has been improved allowing fine-tuning. You can now define the number of workers to spawn at each overload (default 1) and how much time it is required to consider a stack "overloaded" WARNING: the cheaper area is currently a work in progress. The algorithm could be changed again before final release. * zeromq/mongrel2 fixes the zeromq protocol handler has been improved to avoid SCRIPT_NAME/PATH_INFO issues * internal routing subsystem uWSGI now includes an internal routing subsystem (based on pcre), you can use it to build complex serving rules: http://projects.unbit.it/uwsgi/wiki/InternalRouting * log rotation/reopen --touch-logreopen and --touch-logrotate have been added to allows you to trigger rotation (or reopen) of logfiles. * paste loggers You can now automatically enable paste logging with the --paste-logger flag or with the commodity (do all with one shot) ini-paste-logged <file> * zerg improvements zergpools and a new fallback mode have been added http://projects.unbit.it/uwsgi/wiki/ZergMode * ISSUES and NOTES * - multicast clustering options are currently almost-broken - The http server/router/loadbalancer has not completely ported to the new api. Main functionalities are available, but the more exotic will be fixed in the next few days. - using fastrouter in preforked mode will break its stats server - the xml <app> tag is now deprecated, use the more advanced --mount option - the basicauth router on non-Linux systems is not thread-safe - ldap support is completely broken - as previously specified the cheaper algorithm is under analysis and could be changed before final release. You can download it from http://projects.unbit.it/downloads/uwsgi-1.1-snapshot2.tar.gz Thanks for testing it -- Roberto De Ioris http://unbit.it _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
