diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-09-08 13:23:42 -0400 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2021-02-05 14:56:52 +0000 |
commit | 8bf3c50ab7eb48f8db63ea41d6a12e32f3633dee (patch) | |
tree | acf5541f19ca2a40ef1361e0757485d91e0b05c6 /meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch | |
parent | d369fae7ef2e0bcbd934c838145b08a443b414ff (diff) |
meta-speech-framework: Update Alexa Auto SDK to v2.3koi_11.0.1koi_11.0.0koi_10.93.1koi/11.0.1koi/11.0.0koi/10.93.111.0.111.0.010.93.1
Changes:
- Mask out the duplicate libopus recipe, the same version is available
from a recipe in meta-oe.
- Update BBFILES addition for the audio module in the feature template
to work with yet another new audio output backend.
- Update the AlexaAutoCoreEngineConfig.json.in template based on the
new sample JSON in 2.3.
- Update alexa-voiceagent-config recipe to add new configuration
variables ALEXA_LOCALE, ALEXA_TIMEZONE, ALEXA_MFG_NAME, and
ALEXA_DESCRIPTION to match requirements of the updated configuration
JSON.
- Remove local alexa-voiceagent-service patches merged by Amazon, and
update 0001-remove-library-dependency-copying.patch for 2.3.
- Update SDK module DEPENDS for alexa-voiceagent-service recipe to match
what seems required now with 2.3.
- Remove avs-device-sdk patch for building with g++ 9.x, as it is no
longer required.
- Add avs-device-sdk patch to workaround hang seen on first connection.
- Add bbappends for aac-module-car-control and aac-module-messaging
recipes to fix their nlohmann-json DEPENDS to work with the recipe
that is available in meta-oe.
- Rework aac-module-system-audio.bbappend to enable the PipeWire support
that has been merged into the module.
Bug-AGL: SPEC-3783
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I18c910f9cbf874fef85d1d84508f6666d53629ed
(cherry picked from commit e0d5ad833e89f47c88601e15158015319e568af8)
Diffstat (limited to 'meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch')
-rw-r--r-- | meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch new file mode 100644 index 00000000..3bf79835 --- /dev/null +++ b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch @@ -0,0 +1,35 @@ +Workaround for connection deadlock + +Change the maximum (effectively infinite) delay in HTTP2Transport's +connecting state handling code to use the inactivity timeout value, +which is currently 5 minutes. This seems to avoid triggering a +deadlock between the condition variable checking in the +monitorSharedQueueWhileWaiting method and use of the object's m_mutex +member in sendPostConnectMessage and onActivity methods. +At present, my theory is this issue stems from some change or bug +in the newer g++/libstdc++ coming with dunfell versus the thud release +that Amazon supports. + +Upstream-Status: Inappropriate [other] + +Signed-off-by: Scott Murray <scott.murray@konsulko.com> + +diff --git a/ACL/src/Transport/HTTP2Transport.cpp b/ACL/src/Transport/HTTP2Transport.cpp +index f1b5c03..dec7424 100644 +--- a/ACL/src/Transport/HTTP2Transport.cpp ++++ b/ACL/src/Transport/HTTP2Transport.cpp +@@ -618,7 +618,13 @@ HTTP2Transport::State HTTP2Transport::handleConnecting() { + return m_state; + } + +- return monitorSharedQueueWhileWaiting(State::CONNECTING); ++ // Wait for connection for the same length of time as the post-connection ++ // inactivity monitor timeout (currently 5 minutes). ++ // This seems to avoid triggering an issue where connecting deadlocks when ++ // using the maximum timeout of std::chrono:steady_clock. ++ std::chrono::time_point<std::chrono::steady_clock> timeout = ++ std::chrono::steady_clock::now() + INACTIVITY_TIMEOUT; ++ return monitorSharedQueueWhileWaiting(State::CONNECTING, timeout); + } + + HTTP2Transport::State HTTP2Transport::handleWaitingToRetryConnecting() { |