aws-iot-device-client: greengrassv2 SecureTunnel component no longer compatible with Debian Stretch on armv7l
Describe the bug
The SecureTunnel component recently stopped working for us on Debian Stretch on armv7l. Upon investigation, we found that this was due to a C++ ABI mismatch. Debian Stretch provides ABI version <= 1.3.10 and the component now requires ABI version == 1.3.11.
To Reproduce
Steps to reproduce the behavior:
- (AWS console) Create a SecureTunnel deployment on a Debian Stretch
armv7ldevice. - (AWS console) “Create a tunnel” to the target device.
- (Device)
cat ${LOG_DIR}/aws.greengrass.SecureTunneling.log - See error: (formatted for clarity)
{
"thread": "Copier",
"level": "INFO",
"eventType": "stdout",
"message": "[INFO ] 2023-09-16 21:34:46.346 [pool-3-thread-4] SubscribeResponseHandler - Secure tunnel process completed with exit code: 1",
"contexts": {
"scriptName": "services.aws.greengrass.SecureTunneling.lifecycle.run.script",
"serviceName": "aws.greengrass.SecureTunneling",
"currentState": "RUNNING"
},
"loggerName": "aws.greengrass.SecureTunneling",
"timestamp": 1694900086355,
"cause": null
}
Expected behavior
No exit 1 message in logs; clients able to connect.
Actual behavior
set -ex
cd $(mktemp -d)
cp ${GG_ROOT}/v2/packages/artifacts/aws.greengrass.SecureTunneling/1.0.16/GreengrassV2SecureTunnelingComponent-1.0-all.jar ./
jar -xf GreengrassV2SecureTunnelingComponent-1.0-all.jar
cd aws.greengrass.SecureTunneling/linux/armv7l
chmod +x aws-iot-device-client
./aws-iot-device-client --help
gives
./aws-iot-device-client: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by ./aws-iot-device-client)
and
strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | fgrep CXXABI
gives
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_TM_1
CXXABI_ARM_1.3.3
Other context
CI should be updated to compile with backwards compatibility for older ABI versions. Should be a simple change to gcc flags.
About this issue
- Original URL
- State: closed
- Created 9 months ago
- Comments: 21 (9 by maintainers)
hi @HarshGandhi-AWS - Just wanted to add a perspective here. I understand the cost to support old operating systems is high, but it seems wild to me that support would be silently dropped for a previously working OS without either a) a major version change for the component or b) a release note.
We have been working with Greengrass for a while now and we continue to hit issues like these (missing/poor documentation, lack of complete support for basic use cases, lack of consideration of several pieces of the complete software development lifecycle build greengrass. These issues have been burning tons and tons of time for us and make it hard to believe that Greengrass should be our long term future.
Again, understand the limitations of supporting older systems, but would appreciate more documentation/thought into these types of deprecations or changes to supported platforms in the future.
@HarshGandhi-AWS please update the rePost.
We have tested down to v1.0.14 and they all suffer from the issue as described.