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)

Reply via email to