When trying to upgrade Spring Cloud Gateway (SCG) to v1.0.7 and the upgrade-all-instances errand is turned on, Apply Changes fails at upgrade-all-instances. This is a known issue in SCG 1.0.7. Despite this error, it is possible that the instances will still be upgraded successfully. This article shows you how to check if the SCG instances are actually upgraded.
When the Apply Changes fails, the error message looks similar to the following:
2020-05-26 20:40:58.662 DEBUG 7 --- [ry-client-nio-1] cloudfoundry-client.request : PUT /v2/service_instances/<Service GUID> 2020-05-26 20:40:58.693 DEBUG 7 --- [ry-client-nio-1] cloudfoundry-client.response : 409 /v2/service_instances/<Service GUID> (30 ms) 2020-05-26 20:40:58.705 ERROR 7 --- [ main] i.p.s.c.s.errand.BrokerErrandCli : Errand failed org.cloudfoundry.client.v2.ClientV2Exception: CF-AsyncServiceInstanceOperationInProgress(60016): An operation for service instance <Service Instance Name> is in progress. at org.cloudfoundry.reactor.util.ErrorPayloadMappers.lambda$null$0(ErrorPayloadMappers.java:47) ~[cloudfoundry-client-reactor-4.5.0.RELEASE.jar!/:na] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Assembly trace from producer [reactor.core.publisher.MonoFlatMap] : reactor.core.publisher.Mono.checkpoint(Mono.java:1865)
This error message can also be found in upgrade-all-instances.stdout.log:
2020-05-26 20:31:59.467 INFO 7 --- [ry-client-nio-4] i.p.s.c.s.errand.CloudFoundryService : Current state is in progress 2020-05-26 20:31:59.472 ERROR 7 --- [ main] i.p.s.c.s.errand.BrokerErrandCli : Errand failedorg.cloudfoundry.util.DelayTimeoutException: null at org.cloudfoundry.util.DelayUtils.lambda$getDelay$8(DelayUtils.java:103) ~[cloudfoundry-util-4.5.0.RELEASE.jar!/:na] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:378) ~[reactor-core-3.3.4.RELEASE.jar!/:3.3.4.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.3.4.RELEASE.jar!/:3.3.4.RELEASE] at reactor.core.publisher.Fl
The issue is caused by a timeout which has been fixed in SCG 1.0.8.
This issue has been fixed in Spring Cloud Gateway v1.0.8. Please upgrade to SCG 1.0.8.
You may confirm that the upgrade was successful by the following steps:
1. Please log into cf CLI and make sure that the credential has the space developer permission.
cf t -o <myorg> -s <my space> cf service <Gateway Service>
Note: Grab the dashboard URL.
2. Paste the URL to the browser and log into with your credential that has space developer permission.
Once logged in, you should be able to see the current version of the instance. You should be able to see the version is now v1.0.8. If it is v1.0.8, then the upgrade was successful. Here is a sample screenshot showing the version: