Scott Moore created STORM-4040:
----------------------------------
Summary: Nimbus fails to start up on older CPUs (RocksDB v7.x.x
onwards)
Key: STORM-4040
URL: https://issues.apache.org/jira/browse/STORM-4040
Project: Apache Storm
Issue Type: Documentation
Components: documentation
Affects Versions: 2.5.0
Environment: CPU is pre-Haswell
Reporter: Scott Moore
Assignee: Scott Moore
When Nimbus start-up and storm_rocks already contains data, the JVM will
encounter an illegal instruction exception if the CPU is pre-Haswell era.
This can be seen on such a CPU by deploying a running topology then restarting
Nimbus. It will fail to startup because the JVM will have crashed when RocksDB
reads the state from storm_rocks folder. (You can recover from this by deleting
the storm_rocks folder - Nimbus will then startup ok ... until the next time it
restarts!)
The issue is that RocksDB v7.x.x or higher (so, applies to Storm 2.5.0 onwards
from this commit
[https://github.com/apache/storm/commit/d7b4c084a89961a4060edb2e755491a21015c200])
is a C++ component built for modern CPUs. The fix for this is to downgrade
RocksDB to pre v7.x.x (or you can build your own version of v7+ from source
with certain compiler options set)
You can find other reports of this - e.g.
[https://github.com/facebook/rocksdb/issues/11096] or
[https://github.com/trezor/blockbook/issues/684]
This is not a bug in Storm, of course. Nor is it a bug - more a 'minimum
requirements'.
So I have a pull request to suggest workarounds for this in the Troubleshooting
guide.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)