From 90a1a08081e542ad2d3e0227b07230d1f37495b2 Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:18:43 -0800 Subject: [PATCH 1/6] Fix race condition in rpc invocation --- livekit-ffi/src/server/participant.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/livekit-ffi/src/server/participant.rs b/livekit-ffi/src/server/participant.rs index afa4bade2..e6d789876 100644 --- a/livekit-ffi/src/server/participant.rs +++ b/livekit-ffi/src/server/participant.rs @@ -140,6 +140,8 @@ async fn forward_rpc_method_invocation( let (tx, rx) = oneshot::channel(); let invocation_id = server.next_id(); + room.store_rpc_method_invocation_waiter(invocation_id, tx); + let _ = server.send_event(proto::ffi_event::Message::RpcMethodInvocation( proto::RpcMethodInvocationEvent { local_participant_handle: local_participant_handle as u64, @@ -152,8 +154,6 @@ async fn forward_rpc_method_invocation( }, )); - room.store_rpc_method_invocation_waiter(invocation_id, tx); - rx.await.unwrap_or_else(|_| { Err(RpcError { code: RpcErrorCode::ApplicationError as u32, From ba4e8d4025ad60536ab2b3ef4568bf622083ef70 Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:41:16 -0800 Subject: [PATCH 2/6] nanpa --- livekit-ffi/.nanpa/rpc-race.kdl | 1 + 1 file changed, 1 insertion(+) create mode 100644 livekit-ffi/.nanpa/rpc-race.kdl diff --git a/livekit-ffi/.nanpa/rpc-race.kdl b/livekit-ffi/.nanpa/rpc-race.kdl new file mode 100644 index 000000000..b31b49d2b --- /dev/null +++ b/livekit-ffi/.nanpa/rpc-race.kdl @@ -0,0 +1 @@ +patch type="fixed" "Fix RPC invocation race bug" \ No newline at end of file From a334958af21adf08f95aca0db22dccef77da25b6 Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:46:44 -0800 Subject: [PATCH 3/6] fix --- Cargo.lock | 6 +++--- livekit-ffi/.nanpa/rpc-race.kdl | 1 - livekit-protocol/protocol | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 livekit-ffi/.nanpa/rpc-race.kdl diff --git a/Cargo.lock b/Cargo.lock index 37b881351..7f7d05a25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1605,7 +1605,7 @@ checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "livekit" -version = "0.7.3" +version = "0.7.4" dependencies = [ "chrono", "futures-util", @@ -1626,7 +1626,7 @@ dependencies = [ [[package]] name = "livekit-api" -version = "0.4.1" +version = "0.4.2" dependencies = [ "async-tungstenite", "base64", @@ -1654,7 +1654,7 @@ dependencies = [ [[package]] name = "livekit-ffi" -version = "0.12.8" +version = "0.12.9" dependencies = [ "console-subscriber", "dashmap", diff --git a/livekit-ffi/.nanpa/rpc-race.kdl b/livekit-ffi/.nanpa/rpc-race.kdl deleted file mode 100644 index b31b49d2b..000000000 --- a/livekit-ffi/.nanpa/rpc-race.kdl +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "Fix RPC invocation race bug" \ No newline at end of file diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 2e0a35efa..553f87b84 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 2e0a35efa9382b8b3eabaaf6c867c3f487431dd5 +Subproject commit 553f87b849effe55777f80cb93766509868fe4f5 From b8484ec1fa6a72d7d0ca70848d651eba61ba0361 Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:46:53 -0800 Subject: [PATCH 4/6] nanpa --- .nanpa/rpc-race.kdl | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nanpa/rpc-race.kdl diff --git a/.nanpa/rpc-race.kdl b/.nanpa/rpc-race.kdl new file mode 100644 index 000000000..6a9e3fe50 --- /dev/null +++ b/.nanpa/rpc-race.kdl @@ -0,0 +1 @@ +patch package="livekit-ffi" type="fixed" "Fix RPC invocation race bug" \ No newline at end of file From 69eb81d6b5454bbddbf0042d78c599c479610bdb Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:47:21 -0800 Subject: [PATCH 5/6] cgo --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7f7d05a25..37b881351 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1605,7 +1605,7 @@ checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "livekit" -version = "0.7.4" +version = "0.7.3" dependencies = [ "chrono", "futures-util", @@ -1626,7 +1626,7 @@ dependencies = [ [[package]] name = "livekit-api" -version = "0.4.2" +version = "0.4.1" dependencies = [ "async-tungstenite", "base64", @@ -1654,7 +1654,7 @@ dependencies = [ [[package]] name = "livekit-ffi" -version = "0.12.9" +version = "0.12.8" dependencies = [ "console-subscriber", "dashmap", From 8e8706f4b688ba7fcc71980048b8eaa7b093beb9 Mon Sep 17 00:00:00 2001 From: Ben Cherry Date: Tue, 4 Feb 2025 13:47:40 -0800 Subject: [PATCH 6/6] sm --- livekit-protocol/protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 553f87b84..2e0a35efa 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 553f87b849effe55777f80cb93766509868fe4f5 +Subproject commit 2e0a35efa9382b8b3eabaaf6c867c3f487431dd5