[Vortex] [ANN] Turbulence 0.5.4 'Binary Star' release is ready!
Francis Brosnan Blazquez
francis at aspl.es
Wed Oct 26 16:12:35 CEST 2011
-= Turbulence 0.5.4 =-
Advanced Software Production Line is proud to announce Turbulence
0.5.4 "Binary stars" release: an open source BEEP application
server, written on top of Vortex Library 1.1.
Turbulence is a BEEP server extensible through modules which allows
to implement server side profiles that are used and combined later
with other profiles through run time configuration.
Turbulence is written to make it easy to develop and deploy BEEP
profiles, allowing developers to provide a convenient configuration
interface to site administrators and end users.
Check out the following links to get ready with Turbulence:
[Vortex Library homepage]
[Sources and binaries]
[BEEP Core community web site]
[Axl Library, XML 1.0 implementation]
The release in short
CODE MORE ROBUST: rewritten child process creation to use fork/exec
pair instead of plain fork. Fixed several bugs inside child process
creation making Turbulence more stable and robust on high loads.
NEW RUN TIME OPTIONS: now it is possible to configure several
options like thread pool automatic resize, max child limit for the
master or for a particular profile path, default max frame size
limit among others...
BUG FIXES AND DOC UPDATES: several bugs were fixed (including some
leaks). Documentation was also updated to include examples on how to
use new features.
Changes since the 0.5.3
* [fix] Fixed conceptual bug which was storing child process using
profile path id instead the child pid causing to not have all
children tracked when a profile path was declared with
separate="yes" and reuse="no".
* [new] Added support to control child process that can be created
globally by the master process. Also added support to limit child
process at profile path configuration. Added regression test
test_10-c to check feature introduced.
* [new] Updated turbulence config module to include some functions to
allow getting or setting values into run time configuration easily.
* [fix] Making child idle auto close period to be longer than now (9
* [new] Added support to turbulence configuration file to support
having it splitted across several files, to ease
administration. Added reg test 06-a to check support added.
* [new] Added support to load configuration files pieces from a
directory placing the content found directly into the
turbulence.conf file. Updated test06-a reg test to check this
* [fix] Fixed memory leak in turbulence_conn_mgr_added_handler when
the turbulence process is in process of finishing...
* [fix] Fixed memory leak inside mod-python when loading site
* [fix] Updated documentation to explain how to use <include src="" />
and <include dir="" />
* [fix] General rewrite of turbulence child creation to use fork/exec
instead of plain fork. General code reorganization to fit into new
* [fix] Unregistering master<->child link on child from conn mgr
module. Now test_10prev passes.
* [fix] Making turbulence_ctx_free to be the last instruction in main.c
(test_10c showed some races..).
* [new] Added support for <search> path nodes inside profile path
which allows to configure additional search path for config files
used by modules (mod-sasl, mod-python...). Working on test 13..
* [fix] Making turbulence_process_receive_socket to report a particular
error when it is detected file descriptor limit reached when
CMSG_FIRSTHDR call fails.
* [fix] Several cleanups in turbulence process module (removed old
child creation code).
* [fix] Added some debug info for connections accepted on child
* [new] Added new option that allows signaling turbulence module to
not unmap module code (useful for debugging). Option added:
* [fix] Making child process to release all resources on connection
* [fix] Added detached flag for the thread that is created by
turbulence process to check process finish (thread releases all its
resources when done).
* [new] Added support to allow controlling what to do with a
connection when channel start failures happens. Global option added:
* [fix] Fixed wrong access to connection reference when connection was
not accepted on child process.
* [fix] Completed log handling at child process (was pending due to
last fork/exec change).
* [fix] Updated child process creation and associated query child
functions to block/unblock SIGCHLD signal handling during axlHash
access to avoid dead-lock produced by a signal fired during the
lock. Added new support functions to block and unblock signals:
* [fix] Updated child socket path constructor to use output of
gettimeofday to randomize even more.
* [fix] Updated turbulence_signal_received to also check ppath
structure before accessing it.
* [new] Added --child-cmd-prefix option to support configuring child
* [fix] Fixed turbulence_process_child_by_id (it was returning NULL ?)
* [fix] Fixed mod_radmin_run_command_on_child. Now the function
acquires a reference to the function to avoid loosing it during kill
* [fix] Updated mod-radmin kill child to report a failure if a child
pid to kill is not found.
* [fix] Removed call to Py_Finalize from mod_python (is causing lot of
problems on termination..).
* [fix] Updated turbulence process module to stop handling new
connections on children when turbulence is in process of finishing..
* [fix] Several updates to mod-python to remove Py_Finalize calls.
* [fix] Making child process to inherit command lines to activate
vortex debug when provided to parent.
* [new] Updated server to allow configuring TCP stack's backlog using
turbulence global setting:
* [new] Updated server allow configuring vortex thread pool associated
through: /turbulence/global-settings/thread-pool. Set default
configuration to max thread limit 40, thread step period 5 seconds
and thread step to 1.
* [new] Updated channel handling to set default max complete frame
size limit to 32k if nothing is configured.
* [fix] Fixed test_12b.sql file used by reg tests.
* [fix] Making child process finalization code to be not started until
the child completes its start up.
Advanced Software Production Line provides GNU/Linux support and
consulting services to help organizations to introduce GNU/Linux
inside its process.
Contact us, using English or Spanish, to get commercial support
and/or BEEP based development services.
You can reach us:
http://www.aspl.es - info at aspl.es
Francis Brosnan Blázquez - francis at aspl.es
Advanced Software Production Line - http://www.aspl.es
26th oct 2011, Madrid (Spain)
More information about the Vortex