Skip to content

Commit 91d57de

Browse files
authored
chore(cubestore): Hygiene fix for query cache wait loop for in-progress queries (#9658)
1 parent 265580f commit 91d57de

File tree

1 file changed

+3
-1
lines changed
  • rust/cubestore/cubestore/src/sql

1 file changed

+3
-1
lines changed

rust/cubestore/cubestore/src/sql/cache.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,15 @@ impl SqlResultCache {
267267
) -> Result<Arc<DataFrame>, CubeError> {
268268
if let Some(receiver) = &mut receiver {
269269
loop {
270+
// Currently we should never loop -- we only send sender a `Some(_)` value.
270271
receiver.changed().await?;
271-
let x = receiver.borrow();
272+
let x = receiver.borrow_and_update();
272273
let value = x.as_ref();
273274
if let Some(value) = value {
274275
trace!("Using cache for '{}'", query);
275276
return value.clone();
276277
}
278+
log::warn!("Queue query cache is (impossibly) looping for '{}'", query);
277279
}
278280
}
279281
panic!("Unexpected state: wait receiver expected but cache was empty")

0 commit comments

Comments
 (0)