summaryrefslogtreecommitdiffstats
path: root/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk
diff options
context:
space:
mode:
Diffstat (limited to 'meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk')
-rw-r--r--meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch35
-rw-r--r--meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch24
2 files changed, 35 insertions, 24 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() {
diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch
deleted file mode 100644
index 0e4f14fd..00000000
--- a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Enable building with g++ 9.x
-
-Disable -Werror for new warning "deprecated-copy" to avoid build
-failure in the packaged copy of googletest with g++ 9.x. This is
-hopefully temporary until googletest is upgraded or it becomes
-straightforward to build against an externally provided copy.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake b/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake
-index 777b91e..7832f20 100644
---- a/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake
-+++ b/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake
-@@ -91,7 +91,7 @@ macro(config_compiler_and_linker)
- set(cxx_no_exception_flags "-D_HAS_EXCEPTIONS=0")
- set(cxx_no_rtti_flags "-GR-")
- elseif (CMAKE_COMPILER_IS_GNUCXX)
-- set(cxx_base_flags "-Wall -Wshadow")
-+ set(cxx_base_flags "-Wall -Wshadow -Wno-error=deprecated-copy")
- set(cxx_exception_flags "-fexceptions")
- set(cxx_no_exception_flags "-fno-exceptions")
- # Until version 4.3.2, GCC doesn't define a macro to indicate