From 5dbb9ef5f5cd7431868d7e80f3c72973bff176a0 Mon Sep 17 00:00:00 2001 From: Erik Schultink Date: Thu, 3 Apr 2025 08:18:33 -0700 Subject: [PATCH 1/4] remove unused method --- .../mapreduce/impl/shardedjob/ShardedJobRunner.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/java/src/main/java/com/google/appengine/tools/mapreduce/impl/shardedjob/ShardedJobRunner.java b/java/src/main/java/com/google/appengine/tools/mapreduce/impl/shardedjob/ShardedJobRunner.java index 072679ae..2d4bea25 100644 --- a/java/src/main/java/com/google/appengine/tools/mapreduce/impl/shardedjob/ShardedJobRunner.java +++ b/java/src/main/java/com/google/appengine/tools/mapreduce/impl/shardedjob/ShardedJobRunner.java @@ -871,13 +871,4 @@ public boolean cleanupJob(ShardedJobRunId jobId) { return true; } - - private String getWorkerServiceHostName(ShardedJobSettings settings) { - String version = Optional.ofNullable(settings.getVersion()).orElseGet(() -> - appEngineServicesService.getDefaultVersion(settings.getModule()) - ); - - return appEngineServicesService.getWorkerServiceHostName(settings.getModule(), version); - } - } From 3ebc8279d6a432bab1e61ff06eed8bb006a4b95a Mon Sep 17 00:00:00 2001 From: Erik Schultink Date: Thu, 3 Apr 2025 08:21:41 -0700 Subject: [PATCH 2/4] add cache TTL to versions, in case stale --- .../impl/backend/AppEngineServicesServiceImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java index bfad22bf..6bb23fc8 100644 --- a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java +++ b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java @@ -12,6 +12,7 @@ import javax.inject.Provider; import javax.inject.Singleton; import java.io.IOException; +import java.time.Duration; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -110,17 +111,19 @@ static VersionsClient getVersionsClientProvider() { } Cache defaultVersionCache = CacheBuilder.newBuilder() - .maximumSize(10) - .build(); + .maximumSize(10) // avoid unbounded growth leading to OOM + .duration(Duration.ofMinutes(10)) + .build(); + @Deprecated // shouldn't really be needed in prod deployments using CloudTasks rather than GAE Tasks API Cache hostnameCache = CacheBuilder.newBuilder() - .maximumSize(10) + .maximumSize(10) // avoid unbounded growth leading to OOM + .duration(Duration.ofMinutes(10)) .build(); // would only change on re-deployment volatile String location; - @Override public String getDefaultService() { return ConfigProperty.DEFAULT_PIPELINES_SERVICE.getValue() @@ -134,6 +137,7 @@ public String getDefaultVersion(String service) { return defaultVersionCache.get(nonNullService, () -> getDefaultVersionInternal(nonNullService)); } + @Deprecated // only for AppEngineTaskQueue, used in testing / local dev emulation @SneakyThrows @Override public String getWorkerServiceHostName(@NonNull String service, @NonNull String version) { @@ -171,7 +175,6 @@ private synchronized void fillLocation() { } } - private String getDefaultVersionInternal(@NonNull String service) { if (Objects.equals(service, appEngineEnvironment.getService())) { return appEngineEnvironment.getVersion(); From f36bf4f859e3e2c78bf67e8b5d1561c1c7974cdf Mon Sep 17 00:00:00 2001 From: Erik Schultink Date: Thu, 3 Apr 2025 08:27:06 -0700 Subject: [PATCH 3/4] intellij asleep? --- .../pipeline/impl/backend/AppEngineServicesServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java index 6bb23fc8..d06606ab 100644 --- a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java +++ b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/AppEngineServicesServiceImpl.java @@ -112,13 +112,13 @@ static VersionsClient getVersionsClientProvider() { Cache defaultVersionCache = CacheBuilder.newBuilder() .maximumSize(10) // avoid unbounded growth leading to OOM - .duration(Duration.ofMinutes(10)) + .expireAfterWrite(Duration.ofMinutes(10)) .build(); @Deprecated // shouldn't really be needed in prod deployments using CloudTasks rather than GAE Tasks API Cache hostnameCache = CacheBuilder.newBuilder() .maximumSize(10) // avoid unbounded growth leading to OOM - .duration(Duration.ofMinutes(10)) + .expireAfterWrite(Duration.ofMinutes(10)) .build(); // would only change on re-deployment From 7c234e7c014a1959067cca468b1a9e16a414e41f Mon Sep 17 00:00:00 2001 From: Erik Schultink Date: Thu, 3 Apr 2025 11:25:56 -0700 Subject: [PATCH 4/4] fix stale version ref --- .../pipeline/impl/backend/CloudTasksTaskQueue.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/CloudTasksTaskQueue.java b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/CloudTasksTaskQueue.java index 3312acc7..e81f452e 100644 --- a/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/CloudTasksTaskQueue.java +++ b/java/src/main/java/com/google/appengine/tools/pipeline/impl/backend/CloudTasksTaskQueue.java @@ -226,12 +226,12 @@ Task toCloudTask(QueueName queue, TaskSpec taskSpec) { AppEngineHttpRequest.Builder callbackRequest = AppEngineHttpRequest.newBuilder() .putAllHeaders(taskSpec.getHeaders()); - callbackRequest.setAppEngineRouting(AppEngineRouting.newBuilder() - .setService("jobs") - .setVersion("v871a")); - - - // .ifPresent(callbackRequest::setAppEngineRouting); + AppEngineRouting.Builder routing = AppEngineRouting.newBuilder(); + Optional.ofNullable(taskSpec.getService()) + .ifPresent(routing::setService); + Optional.ofNullable(taskSpec.getVersion()) + .ifPresent(routing::setVersion); + callbackRequest.setAppEngineRouting(routing.build()); if (taskSpec.getMethod() == TaskSpec.Method.POST) { callbackRequest.setHttpMethod(HttpMethod.POST);