Skip to content

Commit 82393f2

Browse files
committed
Fix locking timeout issues
1 parent c86c98d commit 82393f2

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

apps/labrinth/src/database/redis.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,12 @@ impl RedisPool {
295295

296296
fetch_ids.iter().for_each(|key| {
297297
pipe.atomic().set_options(
298-
format!("{}_{namespace}:{}/lock", self.meta_namespace, key),
298+
// We store locks in lowercase because they are case insensitive
299+
format!(
300+
"{}_{namespace}:{}/lock",
301+
self.meta_namespace,
302+
key.to_lowercase()
303+
),
299304
100,
300305
SetOptions::default()
301306
.get(true)
@@ -395,7 +400,9 @@ impl RedisPool {
395400

396401
pipe.atomic().del(format!(
397402
"{}_{namespace}:{}/lock",
398-
self.meta_namespace, actual_slug
403+
// Locks are stored in lowercase
404+
self.meta_namespace,
405+
actual_slug.to_lowercase()
399406
));
400407
}
401408
}
@@ -408,8 +415,10 @@ impl RedisPool {
408415
ids.remove(&base62);
409416

410417
pipe.atomic().del(format!(
411-
"{}_{namespace}:{base62}/lock",
412-
self.meta_namespace
418+
"{}_{namespace}:{}/lock",
419+
self.meta_namespace,
420+
// Locks are stored in lowercase
421+
base62.to_lowercase()
413422
));
414423
}
415424

@@ -451,7 +460,8 @@ impl RedisPool {
451460
format!(
452461
"{}_{namespace}:{}/lock",
453462
self.meta_namespace,
454-
x.key()
463+
// We lowercase key because locks are stored in lowercase
464+
x.key().to_lowercase()
455465
)
456466
})
457467
.collect::<Vec<_>>(),

0 commit comments

Comments
 (0)