From: Mike Brady Date: Tue, 11 Dec 2018 16:42:55 +0000 (+0000) Subject: Update RELEASENOTES.md X-Git-Tag: 3.3RC0~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9211ef2394cb9fae424fd5d461b88518c6b378e;p=thirdparty%2Fshairport-sync.git Update RELEASENOTES.md --- diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5599a8b0..0fc5e040 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,3 +1,31 @@ +Version 3.3d36 to Version 3.3d22 +==== + +**Enhancements and Bug Fixes** + +These updates are about stability. + +With great help from [gibman](https://github.com/gibman) — see [#772](https://github.com/mikebrady/shairport-sync/issues/772) for the gory details — myriad issues have been identified and fixed. In particular, [gibman](https://github.com/gibman) shared an automated way of stress-testing Shairport Sync, and this has resulted in the detection of many bugs. + +With due apologies to Shakespeare, we have taken up arms against a sea of troubles, and by opposing we have ended them. It is hoped that the result is considerably more stable and can better withstand the, uh, slings and arrows of outrageous fortune and other hard-to-reproduce scenarios. + +Here is a flavour of some of the issues addressed: +* Replace the existing watchdog, which only offered partial coverage, with a much more robust thread-based watchdog. +* Allow a reported remote processing time of zero. +* Fix a logical error that could cause an endless loop during a flush. +* Ensure a player thread is correctly initialised before allowing it to be cancelled cleanly. +* Ensure the player thread always has a cancellation point so that it should always be possible to ask it to terminate. +* If a play session is interrupted, wait for it to terminate for up to three seconds. +* If a play session is interrupted, ensure the new session uses a different set of UDP ports. This is to ensure that data from the interrupted session – which might be still in transit – doesn't enter the new session. +* Make all ALSA command sequences un-cancellable. This is to ensure that ALSA subsystem will not be left in a partially-initialised state if Shairport Sync terminates abruptly. +* When a connection is terminated abruptly, ensure that all the UDP ports is use are closed properly. +* Impose timeouts on both reading and writing to the supervisory RTSP connection governing a session. +* When closing the RTSP connection due to an error, close it immediately, without waiting for a full TCP handshake, because, if the other end has erred, the handshake may never come. +* Fix a parameter initialisation error in a situation where there is no hardware mixer. + +**New Feature** +* A new `run_this_if_an_unfixable_error_is_detected` (in the `sessioncontrol` group of settings) program hook is provided. At the moment, two conditions can cause this to be activated. The first is if the watchdog is unable to terminate a play session. The second is if the output device stalls for a long period. Both conditions can be caused by malfunctioning DACs. The external program could, for example, reboot the device. + Version 3.3d21 ==== **Enhancements**