Closed jjedd97 closed 1 year ago
Hi @jjedd97, taking a look, are you able to share the exact configuration that was used on the first attempt that failed?
And to confirm, did you do any deployments with configuration prior? May have been that you need to RESET some configuration values before deployment.
My configuration follows https://docs.aws.amazon.com/greengrass/v2/developerguide/client-device-auth-component.html - using a permissive policy) The workflow is that I deploy with that policy initially and it fails, I then deploy again with no config and it succeeds, once that is done I re-add that policy and it succeeds I have also noticed that if I restart my docker-container the error can happen again.
Thanks for the confirmation/report, will repro and get back to you, thanks!
@jjedd97 you mentioned in your initial description that you used a config similar to the permissive config. Just to be precise would you mind pasting the exact configuration document you're using?
I just deployed a fresh greengrass core device on docker using the following configuration successfully
{
"reset": [],
"merge": {
"deviceGroups": {
"formatVersion": "2021-03-05",
"definitions": {
"MyPermissiveDeviceGroup": {
"selectionRule": "thingName: *",
"policyName": "MyPermissivePolicy"
}
},
"policies": {
"MyPermissivePolicy": {
"AllowAll": {
"statementDescription": "Allow client devices to perform all actions.",
"operations": [
"*"
],
"resources": [
"*"
]
}
}
}
}
}
}
So knowing your exact config may help, and also try doing a RESET: [""] in your deployment and see if the error goes away
I want to avoid posting the exact policy but I did find an issue with the way my selectionRule was formatted. Fixing that does resolve the issue. It does beg the question on why the reconfigured deployment would report a success, but I'm fine to close this
Yeah, it's hard to say without configuration and logs--glad to hear the issue is resolved!
Describe the bug When deploying this component with my desired config it errors out with: "Cannot construct instance of "NAME "" at line 1, column 1."
if I redeploy with a blank config and then my actual config again it works.
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "To Reproduce I have greengrass v2 set up in a docker container and use a config similar to the permissive policy.
Expected behavior If the config is functional it should work on the first try.
Actual behavior I have to redeploy to use this component
Environment
Additional context
2023-08-11T14:28:13.041Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: Unable to parse group configuration. {node=services.aws.greengrass.clientdevices.Auth.configuration.deviceGroups, serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, event=initialized} java.lang.IllegalArgumentException: Cannot construct instance of "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4393) at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4324) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.updateDeviceGroups(ClientDevicesAuthService.java:264) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.configChangeHandler(ClientDevicesAuthService.java:204) at com.aws.greengrass.config.Topics.subscribe(Topics.java:478) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.subscribeToConfigChanges(ClientDevicesAuthService.java:162) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.install(ClientDevicesAuthService.java:107) at com.aws.greengrass.lifecyclemanager.Lifecycle.lambda$handleCurrentStateNew$5(Lifecycle.java:502) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47) at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2047) at com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1400) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapInstantiationProblem(BeanDeserializerBase.java:1866) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.finishBuild(BuilderBasedDeserializer.java:202) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:609) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:437) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32) at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:158) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4388) ... 12 more Caused by: com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.042Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-errored. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW} com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.043Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-set-state. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, newState=ERRORED} 2023-08-11T14:28:13.045Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.status.FleetStatusService: fss-status-update-published. Status update published to FSS. {trigger=ERRORED_COMPONENT, serviceName=FleetStatusService, currentState=RUNNING} 2023-08-11T14:28:13.045Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-set-state. {serviceName=aws.greengrass.clientdevices.Auth, currentState=ERRORED, newState=NEW} 2023-08-11T14:28:13.049Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: Unable to parse group configuration. {node=services.aws.greengrass.clientdevices.Auth.configuration.deviceGroups, serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, event=initialized} java.lang.IllegalArgumentException: Cannot construct instance of "NAME"" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4393) at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4324) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.updateDeviceGroups(ClientDevicesAuthService.java:264) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.configChangeHandler(ClientDevicesAuthService.java:204) at com.aws.greengrass.config.Topics.subscribe(Topics.java:478) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.subscribeToConfigChanges(ClientDevicesAuthService.java:162) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.install(ClientDevicesAuthService.java:107) at com.aws.greengrass.lifecyclemanager.Lifecycle.lambda$handleCurrentStateNew$5(Lifecycle.java:502) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47) at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2047) at com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1400) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapInstantiationProblem(BeanDeserializerBase.java:1866) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.finishBuild(BuilderBasedDeserializer.java:202) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:609) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:437) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32) at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:158) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4388) ... 12 more Caused by: com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME"" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.049Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-errored. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW} com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.049Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-set-state. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, newState=ERRORED} 2023-08-11T14:28:13.051Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.status.FleetStatusService: fss-status-update-published. Status update published to FSS. {trigger=ERRORED_COMPONENT, serviceName=FleetStatusService, currentState=RUNNING} 2023-08-11T14:28:13.051Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-set-state. {serviceName=aws.greengrass.clientdevices.Auth, currentState=ERRORED, newState=NEW} 2023-08-11T14:28:13.054Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: Unable to parse group configuration. {node=services.aws.greengrass.clientdevices.Auth.configuration.deviceGroups, serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, event=initialized} java.lang.IllegalArgumentException: Cannot construct instance of "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4393) at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4324) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.updateDeviceGroups(ClientDevicesAuthService.java:264) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.configChangeHandler(ClientDevicesAuthService.java:204) at com.aws.greengrass.config.Topics.subscribe(Topics.java:478) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.subscribeToConfigChanges(ClientDevicesAuthService.java:162) at com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService.install(ClientDevicesAuthService.java:107) at com.aws.greengrass.lifecyclemanager.Lifecycle.lambda$handleCurrentStateNew$5(Lifecycle.java:502) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition$GroupDefinitionBuilder
, problem: Encountered "at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration$GroupConfigurationBuilder["definitions"]->java.util.LinkedHashMap["MyPermissiveDeviceGroup"]) at com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47) at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2047) at com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1400) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapInstantiationProblem(BeanDeserializerBase.java:1866) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.finishBuild(BuilderBasedDeserializer.java:202) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:609) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:437) at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32) at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:158) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4388) ... 12 more Caused by: com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.054Z [ERROR] (pool-2-thread-29) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-errored. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW} com.aws.greengrass.clientdevices.auth.configuration.parser.ParseException: Encountered " "NAME "" at line 1, column 1.
Was expecting:
"thingName:" ...
2023-08-11T14:28:13.054Z [INFO] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-set-state. {serviceName=aws.greengrass.clientdevices.Auth, currentState=NEW, newState=BROKEN} 2023-08-11T14:28:13.055Z [ERROR] (aws.greengrass.clientdevices.Auth-lifecycle) com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService: service-broken. service is broken. Deployment is needed. {serviceName=aws.greengrass.clientdevices.Auth, currentState=BROKEN} 2023-08-11T14:28:13.446Z [WARN] (pool-2-thread-16) com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. merge-config-service BROKEN. {serviceName=aws.greengrass.clientdevices.Auth} 2023-08-11T14:28:13.447Z [ERROR] (pool-2-thread-16) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Deployment failed. {deploymentId=bcc6d0da-30cb-4db1-a622-c914bf26d0a0} com.aws.greengrass.deployment.exceptions.ServiceUpdateException: Service aws.greengrass.clientdevices.Auth in broken state after deployment at com.aws.greengrass.deployment.DeploymentConfigMerger.waitForServicesToStart(DeploymentConfigMerger.java:200) at com.aws.greengrass.deployment.activator.DefaultActivator.activate(DefaultActivator.java:83) at com.aws.greengrass.deployment.DeploymentConfigMerger.updateActionForDeployment(DeploymentConfigMerger.java:152) at com.aws.greengrass.deployment.DeploymentConfigMerger.lambda$mergeInNewConfig$0(DeploymentConfigMerger.java:104) at com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService.runUpdateActions(UpdateSystemPolicyService.java:95) at com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService.lambda$startup$0(UpdateSystemPolicyService.java:169) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)