Hi,
I've been running Greengrass v2 succesfully on my IoT Jetson Nano device without any problems. I wanted to install greengrass on my local computer - for easier code testing/debugging.
The problem I'm facing is that the StreamManager is unable to start.
Here are the logs:
2021-01-19T09:28:29.254Z [INFO] (pool-2-thread-20) aws.greengrass.StreamManager: shell-runner-start. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING, command=["java -cp /home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.Stream..."]}
2021-01-19T09:28:29.298Z [WARN] (Copier) aws.greengrass.StreamManager: stderr. Error: Could not find or load main class com.amazonaws.iot.greengrass.streammanager.StreamManagerService. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
2021-01-19T09:28:29.298Z [WARN] (Copier) aws.greengrass.StreamManager: stderr. Caused by: java.lang.ClassNotFoundException: com.amazonaws.iot.greengrass.streammanager.StreamManagerService. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
2021-01-19T09:28:29.302Z [INFO] (Copier) aws.greengrass.StreamManager: Startup script exited. {exitCode=1, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
I'm not going to paste the rest because this part occurs multiple time and nothing else.
I checked the config file and I can see that:
{"TS":1611048501769,"TP":["services","aws.greengrass.StreamManager","lifecycle","startup","script"],"W":"changed","V":"java -cp /home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/aws-iot-device-sdk-v2-1.0-SNAPSHOT.jar:/home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/AWSGreengrassGreenlake-1.0-super.jar com.amazonaws.iot.greengrass.streammanager.StreamManagerService"}
So I tried this part to run it manually:
java -cp /home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/aws-iot-device-sdk-v2-1.0-SNAPSHOT.jar:/home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/AWSGreengrassGreenlake-1.0-super.jar
It looks like it started but obviously with some errors but it's not important here.
root@dfgdfg:/home/szymon/dev/greengrass/config# java -cp /home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/aws-iot-device-sdk-v2-1.0-SNAPSHOT.jar:/home/szymon/dev/greengrass/packages/artifacts/aws.greengrass.StreamManager/2.0.7/AWSGreengrassGreenlake-1.0-super.jar com.amazonaws.iot.greengrass.streammanager.StreamManagerService
Jan 19, 2021 11:03:40 AM com.amazonaws.util.EC2MetadataUtils getItems
WARNING: Unable to retrieve the requested metadata (/latest/dynamic/instance-identity/document). Failed to connect to service endpoint:
com.amazonaws.SdkClientException: Failed to connect to service endpoint:
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:70)
at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:75)
at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:66)
at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:403)
at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:372)
at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:368)
at com.amazonaws.util.EC2MetadataUtils.getEC2InstanceRegion(EC2MetadataUtils.java:283)
at com.amazonaws.regions.InstanceMetadataRegionProvider.tryDetectRegion(InstanceMetadataRegionProvider.java:59)
at com.amazonaws.regions.InstanceMetadataRegionProvider.getRegion(InstanceMetadataRegionProvider.java:50)
at com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:46)
at com.amazonaws.client.builder.AwsClientBuilder.determineRegionFromRegionProvider(AwsClientBuilder.java:475)
at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:458)
at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.amazonaws.iot.greengrass.streammanager.export.AWSClientFactory.createIotAnalyticsClient(AWSClientFactory.java:56)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule.awsIoTAnalytics(ExportModule.java:80)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_AwsIoTAnalyticsFactory.get(ExportModule_AwsIoTAnalyticsFactory.java:29)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_AwsIoTAnalyticsFactory.get(ExportModule_AwsIoTAnalyticsFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_ExportStreamFactoryFactory.get(ExportModule_ExportStreamFactoryFactory.java:68)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_ExportStreamFactoryFactory.get(ExportModule_ExportStreamFactoryFactory.java:16)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_ExportManagerFactory.get(ExportModule_ExportManagerFactory.java:90)
at com.amazonaws.iot.greengrass.streammanager.dagger.ExportModule_ExportManagerFactory.get(ExportModule_ExportManagerFactory.java:20)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.amazonaws.iot.greengrass.streammanager.dagger.StreamServerModule_StreamServerFactory.get(StreamServerModule_StreamServerFactory.java:70)
at com.amazonaws.iot.greengrass.streammanager.dagger.StreamServerModule_StreamServerFactory.get(StreamServerModule_StreamServerFactory.java:16)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.amazonaws.iot.greengrass.streammanager.dagger.DaggerStreamManagerServiceComponent.streamServer(DaggerStreamManagerServiceComponent.java:281)
at com.amazonaws.iot.greengrass.streammanager.StreamManagerService.main(StreamManagerService.java:44)
Caused by: java.net.SocketTimeoutException: connect timed out
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1232)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015)
at com.amazonaws.internal.ConnectionUtils.connectToEndpoint(ConnectionUtils.java:52)
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:80)
... 30 more
The StreamManager code started as you can see.
FYI I tried on java 8 and java 11. Same problem on both versions.
Looks like the greengrass is not able to start StreamManager and I'm out of ideas why...
Please help.