Skip to content
This repository was archived by the owner on Dec 20, 2025. It is now read-only.

Conversation

@christosarvanitis
Copy link
Member

An edge case involves an ASG created via CloudFormation or via a Crossplane custom resource which the launchTemplate.version not defined. According to the AWS docs this defaults to $Latest as it is not a mandatory field.

When Clouddriver caches it and if it matches an Application name it will be present in the Cluster view tab. This causes an NPE on the ServerGroupController as:

2025-05-15 09:55:00.341 ERROR 1 — [0.0-7002-exec-8] c.n.s.k.w.e.GenericExceptionHandlers     : Internal Server Error
java.lang.NullPointerException: Cannot invoke method toInteger() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:98) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.invokeGroovyObjectInvoker(IndyGuardsFiltersAndSignatures.java:151) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) ~[groovy-4.0.15.jar:4.0.15]
at com.netflix.spinnaker.clouddriver.aws.provider.view.AmazonClusterProvider$_getLaunchTemplateForVersion_closure27.doCall(AmazonClusterProvider.groovy:549) ~[clouddriver-aws-2025.04.10.18.48.11.release-1.36.x.jar:2025.04.10.18.48.11.release-1.36.x]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) ~[groovy-4.0.15.jar:4.0.15]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) ~[groovy-4.0.15.jar:4.0.15]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.callsite.BooleanReturningMethodInvoker.invoke(BooleanReturningMethodInvoker.java:49) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.callsite.BooleanClosureWrapper.call(BooleanClosureWrapper.java:52) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.DefaultGroovyMethods.find(DefaultGroovyMethods.java:4357) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.dgm$242.doMethodInvoke(Unknown Source) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) ~[groovy-4.0.15.jar:4.0.15]
at com.netflix.spinnaker.clouddriver.aws.provider.view.AmazonClusterProvider.getLaunchTemplateForVersion(AmazonClusterProvider.groovy:548) ~[clouddriver-aws-2025.04.10.18.48.11.release-1.36.x.jar:2025.04.10.18.48.11.release-1.36.x]
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) ~[groovy-4.0.15.jar:4.0.15]
at com.netflix.spinnaker.clouddriver.aws.provider.view.AmazonClusterProvider.populateServerGroupWithLtOrMip(AmazonClusterProvider.groovy:582) ~[clouddriver-aws-2025.04.10.18.48.11.release-1.36.x.jar:2025.04.10.18.48.11.release-1.36.x]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) ~[groovy-4.0.15.jar:4.0.15]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:342) ~[groovy-4.0.15.jar:4.0.15]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) ~[groovy-4.0.15.jar:4.0.15]
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) ~[groovy-4.0.15.jar:4.0.15]
at com.netflix.spinnaker.clouddriver.aws.provider.view.AmazonClusterProvider$_updateServerGroupLaunchSettings_closure28.doCall(AmazonClusterProvider.groovy:564) ~[clouddriver-aws-2025.04.10.18.48.11.release-1.36.x.jar:2025.04.10.18.48.11.release-1.36.x]
...

@jasonmcintosh
Copy link
Member

Question: Given that it's try to do a toInt... won't we hit a conversion error?

@jasonmcintosh
Copy link
Member

OK does string comparison first :) We're good

@jasonmcintosh jasonmcintosh added the ready to merge Approved and ready for a merge label May 15, 2025
@mergify mergify bot added the auto merged Merged automatically by a bot label May 15, 2025
@mergify mergify bot merged commit 2f5e98f into spinnaker:master May 15, 2025
23 checks passed
@jasonmcintosh
Copy link
Member

@Mergifyio backport release-1.36.x release-1.37.x release-1.38.x

@mergify
Copy link
Contributor

mergify bot commented May 15, 2025

backport release-1.36.x release-1.37.x release-1.38.x

✅ Backports have been created

Details

@dbyron-sf
Copy link
Contributor

@christosarvanitis can you link to the relevant AWS docs please?

mergify bot added a commit that referenced this pull request May 15, 2025
mergify bot added a commit that referenced this pull request May 15, 2025
mergify bot added a commit that referenced this pull request May 15, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

auto merged Merged automatically by a bot ready to merge Approved and ready for a merge target-release/1.39

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants