From francis at aspl.es Wed Jan 4 11:59:40 2012 From: francis at aspl.es (Francis Brosnan Blazquez) Date: Wed, 04 Jan 2012 11:59:40 +0100 Subject: [Vortex] [ANN] Vortex Library 1.1.11 'Man of simple pleasures' is ready! Message-ID: <1325674780.27428.2.camel@vulcan.aspl> ################################################### ## Vortex Library 1.1.11 ## ## "Man of simple pleasures" ## ################################################### Release note ~~~~~~~~~~~~ Advanced Software Production Line is proud to announce Vortex Library 1.1.11 "Man of simple pleasures" release availability: an open source "BEEP Core" protocol implementation written in C, mapped onto TCP/IP. Vortex Library is a stable and robust application protocol development toolkit, with active support for Microsoft Windows and GNU/Linux platforms. Check out the following links to get ready with Vortex Library: - http://www.aspl.es/vortex [Vortex Library homepage] - http://www.aspl.es/vortex/py-vortex/html [PyVortex homepage] - http://www.aspl.es/turbulence [Turbulence BEEP server homepage] - http://code.google.com/p/vortexlibrary/downloads/list [Sources and Win32 binaries] - http://www.beepcore.org [BEEP Core community web site] - http://www.aspl.es/xml [Axl Library, XML 1.0 implementation] This release in short ~~~~~~~~~~~~~~~~~~~~~ PYVORTEX: Several updates to make the binding more stable in the long run (also controlling memory consumption). General PyVortex update to allow running a handler watcher that can warn the user that some particular handler is taking too long to finish and potentially may cause performance degradation. TLS: now it is possible to provide a handler that is called when a TLS handshake fails. ENGINE: Complete vortex sequencer rewrite to allow handling all outgoing sending jobs in a fair manner (handling all of them in rounds, giving all channels the possibility to send content without being starved by highly interactive transfers). Several fixings and updates to make the product more stable. Change notifications ~~~~~~~~~~~~~~~~~~~~ None Thanks to.. ~~~~~~~~~~~ - Phil Black-Knight (reported and fixed problem at vortex_connection_set_profile_mask where the function was returning a wrong value at the first call. Also reported an API clash between TLS versions used in debian/ubuntu and redhat). Changes since 1.1.10 ~~~~~~~~~~~~~~~~~~~~ * [fix] Several changes to vortex-regression-client.c to make it compilable in win64. * [fix] Added additional headers to fix xml-rpc-support.c under win64. * [fix] Several modifications to PyVortex to avoid reusing python references which do not reduce consumption significantly and makes the binding less maintainable. * [fix] Updated py channel frame received code to not store the PyVortexChannel reference as a parameter to the frame received handler to avoid a crash when the frame received is fired having the python channel collected (but not its C representation). * [fix] Updated vortex channel pool module to nullify its reference inside VortexChannel object to ensure the channel do not access the channel pool after the pool was uninstalled from the channel. Added regression test to reproduce the bug and check fix introduced (test-03-e). * [fix] Updated PyVortex regression test to include a check to create a channel with a frame received handler forcing the PyVortexChannel reference to be garbaged to check then to receive frames over that channel. Reg test (py test-10-e). * [fix] Version files updates.. * [fix] Updated TLS API to allow setting a failure handler that will be called when an error is found. Really useful at listener side to get error reporting that until now were passing silently. API added: - vortex_tls_set_failure_handler - VortexTlsFailureHandler Updated documentation to explain how to use this. * [fix] Updated PyVortexCtx internal register to use internal VortexCtx to avoid relying on having always available the python vortex.Ctx that was used. * [fix] Updated PyVortex listener side frame received, close channel and start channel handling to avoid passing as reference the python vortex.Ctx that was used to install those handlers. * [fix] Updated PyVortex ctx.new_event to return the handle id of the event installed. Also added ctx.remove_event to allow removing an event installed providing its unique id. Updated documentation to explain how to use it. * [fix] Updated vortex-file-transfer-server.c to also register a profile that echos all content received.. * [fix] Added new regression test (test-03f) that exposes a bug at channel pool close when all channels are available. * [fix] Updated vortex sequencer internal reference checking to use connection reference from channel instead of the connection reference directly (channel reference is owned by the sequencer and connection is not). Updated internal queue priority to acquire a reference to the channel to avoid wrong dealloc when a connection failure is found in the middle of a transfer. * [fix] Fixed wrong header for vortex_thread_pool_stats. * [fix] Reorganized vortex internal debug log to use a single shot to write the log (to avoid missing log lines under heavy logging). Also updated to print a time stamp for each log. * [fix] Removed flag not required to get access to vsnprintf * [fix] Making automatic thread pool resize to be also checked on thread pool wait timeout. * [fix] Fixed reg test 00-c2 which wasn't removing all threads created causing test 00-c1 to fail. * [fix] Added additional check to channels internal reference inside vortex_connection_channels_count. * [fix] Updated PyVortexChannel set_frame_received to allow removing handler installed when no parameter is received. Updated documentation and checked regression tests.. * [fix] Updated vortex sequencer module to avoid doing a priority queue for resequence operations (when a SEQ frame was received) to avoid giving priority to large send operations that are served fast and also acked fast by the receiving side (causing starvation for the rest of pending operations). Also updated resequence signal code to check first if there are already other previous notification (to avoid filling the queue with notifications). * [fix] Updated vortex thread API to include a new function that allows doing search operations over a queue looking it during the search. API added: - vortex_async_queue_lookup * [fix] Fixed pop_channel_error example inside connection documentation. * [fix] Fixed vortex.Connection documentation about getting channel creation error. * [fix] Complete vortex sequencer rewrite to allow handling all outgoing sending jobs in a fair manner (treating them in rounds, giving all channels the possibility to send content without being starved by highly interactive transfers). This rewrite will also open the possibility to implement channel sending priorities. All reg tests working! * [fix] Removed old code used to drop messages for broken connections (inside vortex sequencer) which is no longer needed. * [fix] Several fixings to make new vortex sequencer design to work with microsoft windows. * [fix] Fixed automatic thread pool removal which wasn't checking for running threads causing to remove threads from the pool under heavy load situations. * [fix] Making vortex channel send msg and send rpy operations to acquire a reference to the channel object during the operation to avoid races with new vortex sequencer implementation. * [fix] Applied several fixings according to valgrind's hellgrind information (awesome tool!)... * [fix] Code cleanups at vortex channel module (removed internal variables last_reply_delivered, last_msg_delivered, last_ans_delivered, last_ans_seqno_delivered). * [fix] Updated vortex_set_conf API to include a new key to allow controlling if context finalization should wait for threads inside the thread pool to finish. API added: - VORTEX_SKIP_THREAD_POOL_WAIT Added regression test (test_00-e) to reproduce a situation where threads from the pool are blocked and to check that even in those situations vortex_exit_ctx finishes right. Also updated documentation... * [fix] Version updates.. * [fix] Fixed PyVortex start channel start data reference (it was passed in properly). * [fix] General PyVortex update to allow running a handler watcher that can warn the user that some particular handler is taking too long to finish and potentially may cause performance degradation. * [fix] Updated PyVortex internal exception handling to report and report exceptions to better cancel/close current operations rather just ignoring it. * [fix] Updated PyVortex to allow registering a handler that is called when it is detected a python handler is taking too long to finish. API added: - PyVortexTooLongNotifier * [fix] Removed unnecessary lock/unlock pair from vortex channel module. Moved log debug which may cause wrong memory access under certain conditions. * [fix] Making vortex.Ctx.new_event to flag event period with "l" instead of "i" to avoid OverflowError: signed integer is greater than maximum. * [fix] Updated internal channel add handler to report a boolean value with the operation result so channel resources can be released after a failure. * [fix] Making vortex pull cleanup to also clear event masks. * [fix] Making vortex thread pool to acquire the VortexCtx reference before starting the pool thread (to avoid races where thread isn't still started and VortexCtx was finished when having skip thread pool wait flag enabled). * [fix] Moved debug log before connection registering at vortex_listener module to avoid wrong mem. access under some cases.. * [fix] Making vortex ALIVE implementation to check vortex_channel_ref result before continuing. Also making the implementation to grab the reference before setting the channel used by the check loop (fixed race exposed by PyVortex). * [fix] Fixed memory leak at PyVortex caused by a circular reference built by vortex connection reference counting and python reference counting. Added initial file.sup to better track all memory consumed by PyVortex. * [fix] Included file.sup into make dist result. * [fix] Fixed memory leak inside PyVortex handler tracker: it was removing handler tracking object without calling destroy func: oops! ;-) * [fix] Phil Black-Knight reported and fixed a problem at vortex_connection_set_profile_mask where the function was always returning an error code for the first handler installed (although it was indeed properly installed). * [fix] Removed code that checks for reference counting at internal channel termination when detected pending messages to be sent (new design doesn't requires this). * [fix] Fixed API clash between debian/ubuntu and RHEL where SSL_CTX_new and method created returns and receives const SSL_METHOD *. Updated the code to avoid declaring variables with that type passing directly the value returned from method creation into SSL_CTX_new. Bug reported by Philip Black-Knight.. About Us ~~~~~~~~ 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 Enjoy Vortex Library! -- Francis Brosnan Bl?zquez - francis at aspl.es Advanced Software Production Line - http://www.aspl.es 4th jan 2012, Madrid (Spain) From francis at aspl.es Wed Jan 4 14:22:32 2012 From: francis at aspl.es (Francis Brosnan Blazquez) Date: Wed, 04 Jan 2012 14:22:32 +0100 Subject: [Vortex] [ANN] Turbulence 0.5.5 'You shook me all night long LIVE!' is ready! Message-ID: <1325683352.27428.6.camel@vulcan.aspl> -= Turbulence 0.5.5 =- "You shook me all night long LIVE!" Release note ~~~~~~~~~~~~ Advanced Software Production Line is proud to announce Turbulence 0.5.5 "You shook me all night long LIVE!" 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: - http://www.aspl.es/turbulence [Turbulence homepage] - http://www.aspl.es/vortex [Vortex Library homepage] - http://code.google.com/p/vortexlibrary [Sources and binaries] - http://www.beepcore.org [BEEP Core community web site] - http://www.aspl.es/xml [Axl Library, XML 1.0 implementation] The release in short ~~~~~~~~~~~~~~~~~~~~ MOD-PYTHON: improved integration by using new support from vortex to provide a handler that is called regularly when a Python handler is taking to long to finish. This allows developers and administrators to better track down problems with python applications. MOD-TLS: improved error reporting by using new support from vortex to register a handler that is called when a TLS handshake fails. Now it is easier to get information about connecting BEEP peers that are failing to enable TLS profile. ENGINE: Fixed some bugs at the core library (libturbulence). Change notifications ~~~~~~~~~~~~~~~~~~~~ None. Changes since the 0.5.4 ~~~~~~~~~~~~~~~~~~~~~~~ * [fix] Updated mod-tls to use failure handler support from vortex tls module to better report TLS failure errors. * [fix] Fixed compilation warnings at py_turbulence_ctx.c due to Vortex updates.. * [fix] Releasing and reacquiring lock before calling to broadcast msg inside turbulence conn mgr. This is to avoid dead locks caused by filter function that may call again turbulence conn mgr API (which is already locked). * [new] Updated engine to not wait for threads to finish on exit using new vortex support to do so. Added new command line option to obtain old behavior (--wait-thread-pool). * [new] Updated mod-python to register a handler for too long execution notifications. This will ease finding problems caused by python handlers that are taking too long to finish (or never finish). * [fix] Moving ahead turbulence version.. * [fix] Making mod-python turbulence.Ctx.broadcast_msg to not acquire python GIL when called filter user function because it already owns the GIL.. * [fix] Making turbulence_conn_mgr_broadcast_msg to release internal mutex when called user defined filter function. This will allow turbulence conn mgr API reentrancy. Added reg test to check feature introduced (test_10-d). * [fix] Committing initial file.sup (valgrind suppression file). * [fix] Updated file.sup to include more python suppressions. * [fix] Fixed wrong buffer size indication inside turbulence_process_receive_socket. * [fix] Removed several unused variables and fixed some Makefile.am missing references to VORTEX_LIBS. About Us ~~~~~~~~ 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 Enjoy Turbulence! -- Francis Brosnan Bl?zquez - francis at aspl.es Advanced Software Production Line - http://www.aspl.es 04th Jan 2012, Madrid (Spain) From francis at aspl.es Wed Jan 4 19:07:01 2012 From: francis at aspl.es (Francis Brosnan Blazquez) Date: Wed, 04 Jan 2012 19:07:01 +0100 Subject: [Vortex] [ANN] jsVortex 0.5.2 'Why not?' release is ready! Message-ID: <1325700421.27428.9.camel@vulcan.aspl> >>>> jsVortex 0.5.2 <<<< 'Why not?' >>>> Release note ---------------------------------------------------------------------- Advanced Software Production Line is proud to announce jsVortex 0.5.2 "why not?" release: an Open Source Javascript BEEP implementation. jsVortex is a Javascript BEEP implementation that is specially designed to run in the context of a web browser, turning it into an effective BEEP peer without too much effort. Check out the following links to get ready with jsVortex: - http://www.aspl.es/jsVortex [jsVortex homepage] - http://www.aspl.es/jsVortex/docs [jsVortex API documentation] - http://www.aspl.es/vortex [Vortex Library homepage, used to validate jsVortex] - http://www.sf.net/projects/vortexlibrary [Source download] - http://www.beepcore.org [BEEP Core community web site] >>>> This release in short ---------------------------------------------------------------------- New stable release that includes some fixings and a new building process that allows delivering a release version (without any debug statement) and a debug version (that includes them). >>>> Changes from last release ---------------------------------------------------------------------- * [fix] Adding documentation explaining how to solve "error calling method on npobject".. * [fix] Added an additional common error explaining how to fix the problem on MAC OS/X when the java applet is not loaded. * [fix] Fixed bug while splitting frames that uses utf-8 codes which expands into 2 or 3 bytes when translated to byte representation, causing not observing max allowed bytes accepted by remote BEEP peer. Now the situation is detected and the difference is removed so splitted piece fits into the accepted window size. Added regression test to reproduce the bug and check fix introduced. * [fix] Moved onFrameReceivedHandler configuration inside channel.sendCommon out of the isComplete condition to avoid races. * [fix] General update to produce a jsVortex bundle that includes an unified Vortex.js without any debug statement (Vortex.{log, error, warn}) and to also produce the same version with all those statements called Vortex.debug.js. Updated source code to standardize all calls to Vortex.log so they are done in a single line. >>>> About Us ---------------------------------------------------------------------- ASPL (Advanced Software Production Line) is a Spanish company that provides services and support to introduce open source products, especially GNU/Linux, into organization's processes. Contact us, 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 4th Jan 2012, Madrid (Spain)