com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. merge-config-service BROKEN

0

Hi there I tried to deploy a component to a new provisioned device, however i encounter this error com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. merge-config-service BROKEN

here is part of the logs

2022-03-20T23:26:34.797Z [INFO] (pool-2-thread-6) com.aws.greengrass.componentmanager.ComponentManager: Found running component which meets the requirement and use it.. {ComponentIdentifier=rtt.ancillary-v1.0.1}
2022-03-20T23:26:34.798Z [INFO] (pool-2-thread-6) com.aws.greengrass.componentmanager.ComponentManager: Found the best local candidate that satisfies the requirement.. {LocalCandidateId=rtt.ancillary-v1.0.1}
2022-03-20T23:26:35.377Z [INFO] (pool-2-thread-6) com.aws.greengrass.componentmanager.ComponentManager: resolve-component-version-end. Resolved component version.. {ResolvedComponent=rtt.ancillary-v1.0.1}
2022-03-20T23:26:35.409Z [INFO] (pool-2-thread-6) com.aws.greengrass.componentmanager.DependencyResolver: resolve-group-dependencies-finish. Finish resolving group dependencies. {resolvedComponents={rtt.ancillary=ComponentMetadata(componentIdentifier=rtt.ancillary-v1.0.1, dependencies={})}, componentToVersionRequirements={rtt.ancillary={thing/test123==1.0.1}}}
2022-03-20T23:26:35.439Z [INFO] (pool-2-thread-6) com.aws.greengrass.componentmanager.ComponentManager: prepare-package-start. {packageIdentifier=rtt.ancillary-v1.0.1}
2022-03-20T23:26:35.502Z [INFO] (pool-2-thread-5) com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService: register-service-update-action. {action=0-071b-439e-9e57-303d24e2748f, serviceName=UpdateSystemPolicyService, currentState=RUNNING}
2022-03-20T23:26:35.508Z [INFO] (pool-2-thread-6) com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService: service-update-start. {serviceName=UpdateSystemPolicyService, currentState=RUNNING}
2022-03-20T23:26:35.513Z [INFO] (pool-2-thread-6) com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. Applying deployment changes, deployment cannot be cancelled now. {deployment=07e027a5-071b-439e-9e57-303d24e2748f}
2022-03-20T23:26:35.514Z [INFO] (pool-2-thread-6) com.aws.greengrass.deployment.DeploymentDirectoryManager: Persist configuration snapshot. {file=/greengrass/v2/deployments/07e027a5-071b-439e-9e57-303d24e2748f/rollback_snapshot.tlog}
2022-03-20T23:26:35.574Z [INFO] (main-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=main, currentState=FINISHED, newState=INSTALLED}
2022-03-20T23:26:35.587Z [INFO] (Serialized listener processor) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-config-change. Requesting restart for component. {configNode=services.main.lifecycle, serviceName=main, currentState=INSTALLED}
2022-03-20T23:26:35.804Z [ERROR] (pool-2-thread-14) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-errored. {reason=Script errored in install, serviceName=rtt.ancillary, currentState=NEW}
2022-03-20T23:26:35.806Z [INFO] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=rtt.ancillary, currentState=NEW, newState=ERRORED}
2022-03-20T23:26:35.807Z [INFO] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=rtt.ancillary, currentState=ERRORED, newState=NEW}
2022-03-20T23:26:35.905Z [ERROR] (pool-2-thread-14) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-errored. {reason=Script errored in install, serviceName=rtt.ancillary, currentState=NEW}
2022-03-20T23:26:35.905Z [INFO] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=rtt.ancillary, currentState=NEW, newState=ERRORED}
2022-03-20T23:26:35.906Z [INFO] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=rtt.ancillary, currentState=ERRORED, newState=NEW}
2022-03-20T23:26:35.996Z [ERROR] (pool-2-thread-14) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-errored. {reason=Script errored in install, serviceName=rtt.ancillary, currentState=NEW}
2022-03-20T23:26:35.997Z [INFO] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=rtt.ancillary, currentState=NEW, newState=BROKEN}
2022-03-20T23:26:35.997Z [ERROR] (rtt.ancillary-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-broken. service is broken. Deployment is needed. {serviceName=rtt.ancillary, currentState=BROKEN}
2022-03-20T23:26:36.701Z [WARN] (pool-2-thread-6) com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. merge-config-service BROKEN. {serviceName=rtt.ancillary}
2022-03-20T23:26:36.702Z [ERROR] (pool-2-thread-6) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Deployment failed. {deploymentId=07e027a5-439e-9e57-303d24e}
com.aws.greengrass.deployment.exceptions.ServiceUpdateException: Service rtt.ancillary in broken state after deployment
        at com.aws.greengrass.deployment.DeploymentConfigMerger.waitForServicesToStart(DeploymentConfigMerger.java:194)
        at com.aws.greengrass.deployment.activator.DefaultActivator.activate(DefaultActivator.java:84)
        at com.aws.greengrass.deployment.DeploymentConfigMerger.updateActionForDeployment(DeploymentConfigMerger.java:150)
        at com.aws.greengrass.deployment.DeploymentConfigMerger.lambda$mergeInNewConfig$0(DeploymentConfigMerger.java:102)
        at com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService.runUpdateActions(UpdateSystemPolicyService.java:95)
        at com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService.lambda$startup$0(UpdateSystemPolicyService.java:165)
        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:834)

2022-03-20T23:26:36.708Z [INFO] (pool-2-thread-6) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Rolling back failed deployment. {deploymentId=07e027a5-071b-9e57-303d}
2022-03-20T23:26:36.769Z [INFO] (pool-2-thread-6) com.aws.greengrass.config.ConfigurationWriter: truncate-tlog. queued immediate truncation. {}
2022-03-20T23:26:36.882Z [INFO] (Serialized listener processor) com.aws.greengrass.config.ConfigurationWriter: truncate-tlog. completed successfully. {}
2022-03-20T23:26:36.889Z [INFO] (pool-2-thread-6) com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. Removing services. {service-to-remove=[rtt.ancillary]}
2022-03-20T23:26:36.889Z [INFO] (pool-2-thread-14) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-close. Service is now closing. {serviceName=rtt.ancillary, currentState=BROKEN}

here is my deployment config

{
    "targetArn": "arn:aws:iot::thing/test123",
    "revisionId": "2",
    "deploymentId": "07e027a5-9e57-303d2",
    "deploymentName": "update firmware",
    "deploymentStatus": "ACTIVE",
    "components": {
        "rtt.ancillary": {
            "componentVersion": "1.0.1",
            "configurationUpdate": {
                "merge": "{\"thing_name\":\"test_name\"}"
            }
        }
    },
    "deploymentPolicies": {
        "failureHandlingPolicy": "ROLLBACK",
        "componentUpdatePolicy": {
            "timeoutInSeconds": 30,
            "action": "NOTIFY_COMPONENTS"
        },
        "configurationValidationPolicy": {
            "timeoutInSeconds": 60
        }
    },
    "iotJobConfiguration": {
        "jobExecutionsRolloutConfig": {
            "exponentialRate": {
                "baseRatePerMinute": 5,
                "incrementFactor": 2.0,
                "rateIncreaseCriteria": {
                    "numberOfNotifiedThings": 10,
                    "numberOfSucceededThings": 5
                }
            },
            "maximumPerMinute": 50
        },
        "timeoutConfig": {
            "inProgressTimeoutInMinutes": 15
        }
    },
    "creationTimestamp": 1647818095.423,
    "isLatestForTarget": true,
    "tags": {
        "PRODUCT": "GGv2 Deployment"
    }
}
已提問 2 年前檢視次數 754 次
4 個答案
1
已接受的答案

I see two issues here. First, you need to use the actual thing name in the merge section of your deployment config. We don’t support interpolation for thing name yet. 

Additionally, from the component log, I see it’s trying to get the “thing_name” environment variable, which doesn’t exist. For guidance on setting environment variables, you can refer to the “Setenv” recipe section here: https://docs.aws.amazon.com/greengrass/v2/developerguide/component-recipe-reference.html#:~:text=the%20following%20information%3A-,Setenv,-(Optional)%20A%20dictionary

Cheers, Janice

已回答 2 年前
0

Have you looked in the logs for the component itself? That might have additional information for troubleshooting. You can post it here as well, if you still don't understand what is causing the problem.

已回答 2 年前
0
2022-03-22T04:19:55.988Z [WARN] (Copier) ancillary: stderr. File "/greengrass/v2/packages/artifacts-unarchived/ancillary/1.0.1/ancillary/main.py", line 2, in <module>. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.989Z [WARN] (Copier) ancillary: stderr. from src.gps import gps. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.990Z [WARN] (Copier) ancillary: stderr. File "/greengrass/v2/packages/artifacts-unarchived/ancillary/1.0.1/ancillary/src/gps.py", line 29, in <module>. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.991Z [WARN] (Copier) ancillary: stderr. thing_name = os.environ['thing_name']. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.991Z [WARN] (Copier) ancillary: stderr. File "/usr/lib/python3.7/os.py", line 678, in __getitem__. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.992Z [WARN] (Copier) ancillary: stderr. raise KeyError(key) from None. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:55.993Z [WARN] (Copier) ancillary: stderr. KeyError: 'thing_name'. {scriptName=services.ancillary.lifecycle.Run, serviceName=ancillary, currentState=RUNNING}
2022-03-22T04:19:56.048Z [INFO] (Copier) ancillary: Run script exited. {exitCode=1, serviceName=ancillary, currentState=RUNNING}
已回答 2 年前
0

I think i understand now, it failed because the component cant run unlike in version 1

已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南