From f4be6d16753010329b8924fb8aec97a55c38b981 Mon Sep 17 00:00:00 2001 From: plebhash Date: Thu, 18 Jan 2024 20:12:47 -0300 Subject: [PATCH] fix JDC stack overflow --- roles/jd-client/src/job_declarator/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/roles/jd-client/src/job_declarator/mod.rs b/roles/jd-client/src/job_declarator/mod.rs index 6cdcc7def3..65a70ba5a9 100644 --- a/roles/jd-client/src/job_declarator/mod.rs +++ b/roles/jd-client/src/job_declarator/mod.rs @@ -166,7 +166,14 @@ impl JobDeclarator { }) .unwrap(); } - tokio::task::yield_now().await; + + // we block on the receiver to avoid infinite recursion + let receiver = self_mutex.safe_lock(|s| s.receiver.clone()).unwrap(); + while receiver.is_empty() { + tokio::time::sleep(tokio::time::Duration::from_millis(1)).await; + tokio::task::yield_now().await; + } + Self::get_last_token(self_mutex).await } 1 => {