From 2f13452da9f366fe43bb4d281c578a9d76f32893 Mon Sep 17 00:00:00 2001 From: Alex Robinson Date: Thu, 29 Aug 2024 21:23:03 +0000 Subject: [PATCH] Log when deleteAll is called with an alarm still set on the object To get a better sense of the prevalence of this usage pattern. --- src/workerd/api/actor-state.c++ | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/workerd/api/actor-state.c++ b/src/workerd/api/actor-state.c++ index d1e293a0e27..20eaf074730 100644 --- a/src/workerd/api/actor-state.c++ +++ b/src/workerd/api/actor-state.c++ @@ -509,9 +509,24 @@ jsg::Promise DurableObjectStorage::deleteAll( jsg::Lock& js, jsg::Optional maybeOptions) { auto options = configureOptions(kj::mv(maybeOptions).orDefault(PutOptions{})); + auto& context = IoContext::current(); + { + // Log to get a sense of whether users are potentially depending on alarms being kept around + // after deleteAll is called. + auto getOptions = configureOptions(GetOptions{}); + context.addTask(context + .awaitJs(js, + transformCacheResult(js, cache->getAlarm(getOptions), getOptions, + [](jsg::Lock&, kj::Maybe alarmValue) { + if (alarmValue != kj::none) { + LOG_WARNING_PERIODICALLY("NOSENTRY deleteAll called with an alarm still set"); + } + return alarmValue; + })).ignoreResult()); + } + auto deleteAll = cache->deleteAll(options); - auto& context = IoContext::current(); context.addTask(updateStorageDeletes(context, currentActorMetrics(), kj::mv(deleteAll.count))); return transformMaybeBackpressure(js, options, kj::mv(deleteAll.backpressure));