From daec96f465ecc7f7ad851adb6e6cec75f31790b2 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 6 Apr 2020 17:33:50 +0200 Subject: [PATCH 1/3] openvidu-server: change getStats strategy --- .../openvidu/server/kurento/core/KurentoParticipant.java | 8 ++------ .../server/kurento/core/KurentoSessionManager.java | 4 +--- .../openvidu/server/kurento/endpoint/MediaEndpoint.java | 4 ++-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java index ababc03a..c8e66519 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java @@ -402,9 +402,7 @@ public class KurentoParticipant extends Participant { } publisher.unregisterErrorListeners(); - if (publisher.kmsWebrtcStatsThread != null) { - publisher.kmsWebrtcStatsThread.cancel(true); - } + publisher.cancelStatsLoop.set(true); for (MediaElement el : publisher.getMediaElements()) { releaseElement(getParticipantPublicId(), el); @@ -427,9 +425,7 @@ public class KurentoParticipant extends Participant { if (subscriber != null) { subscriber.unregisterErrorListeners(); - if (subscriber.kmsWebrtcStatsThread != null) { - subscriber.kmsWebrtcStatsThread.cancel(true); - } + subscriber.cancelStatsLoop.set(true); releaseElement(senderName, subscriber.getEndpoint()); diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java index aeea47bb..288bc496 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java @@ -972,9 +972,7 @@ public class KurentoSessionManager extends SessionManager { final PassThrough passThru = publisher.disconnectFromPassThrough(); // 2) Destroy the broken PublisherEndpoint and nothing else - if (publisher.kmsWebrtcStatsThread != null) { - publisher.kmsWebrtcStatsThread.cancel(true); - } + publisher.cancelStatsLoop.set(true); kParticipant.releaseElement(participant.getParticipantPublicId(), publisher.getEndpoint()); // 3) Create a new PublisherEndpoint connecting it to the previous PassThrough diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java index 7954ab7a..7ccceb2e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.kurento.client.BaseRtpEndpoint; @@ -94,9 +94,9 @@ public abstract class MediaEndpoint { public String selectedRemoteIceCandidate; public Queue kmsEvents = new ConcurrentLinkedQueue<>(); - public Future kmsWebrtcStatsThread; public Runnable kmsWebrtcStatsRunnable; public AtomicInteger statsNotFoundErrors = new AtomicInteger(0); + public AtomicBoolean cancelStatsLoop = new AtomicBoolean(false); /** * Constructor to set the owner, the endpoint's name and the media pipeline. From 86cd0fe62f8142af8822bb5f644b8af6316d5cf2 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 6 Apr 2020 18:29:52 +0200 Subject: [PATCH 2/3] E2e Jenkinsfile fetch git origin --- openvidu-test-e2e/jenkins/Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openvidu-test-e2e/jenkins/Jenkinsfile b/openvidu-test-e2e/jenkins/Jenkinsfile index 4a199690..55770940 100644 --- a/openvidu-test-e2e/jenkins/Jenkinsfile +++ b/openvidu-test-e2e/jenkins/Jenkinsfile @@ -15,7 +15,7 @@ node('container') { sh 'rm -rf kurento-java || true' sh 'rm -rf /opt/openvidu/recordings/* || true' sh 'git clone https://github.com/OpenVidu/openvidu.git' - sh 'cd openvidu && git checkout $OPENVIDU_COMMIT' + sh 'cd openvidu && git fetch origin && git checkout $OPENVIDU_COMMIT' sh(script: '''#!/bin/bash if $KURENTO_JAVA_SNAPSHOT ; then git clone https://github.com/Kurento/kurento-java.git From e36772476e7b95ad4e85d7857293dc67e1ae5e48 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 6 Apr 2020 20:39:13 +0200 Subject: [PATCH 3/3] openvidu-test-e2e: move recording duration check --- .../java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java index 99ea2c7f..91450340 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java @@ -2283,16 +2283,16 @@ public class OpenViduTestAppE2eTest { Assert.assertFalse("Wrong recording hasAudio", recording2.hasAudio()); Assert.assertTrue("Wrong recording hasVideo", recording2.hasVideo()); - Thread.sleep(5000); + Thread.sleep(7000); recording2 = OV.stopRecording(recording2.getId()); user.getEventManager().waitUntilEventReaches("recordingStopped", 3); - Assert.assertTrue("Wrong recording duration", recording2.getDuration() > 0); Assert.assertTrue("Wrong recording size", recording2.getSize() > 0); Assert.assertNotNull("Wrong recording url", recording2.getUrl()); Assert.assertEquals("Wrong recording status", Recording.Status.ready, recording2.getStatus()); + Assert.assertTrue("Wrong recording duration", recording2.getDuration() > 0); Assert.assertFalse("Session shouldn't be being recorded", session.isBeingRecorded()); Assert.assertFalse("Session.fetch() should return false", session.fetch());