[ 
https://issues.apache.org/jira/browse/CASSANDRA-13072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16031109#comment-16031109
 ] 

Jeff Jirsa commented on CASSANDRA-13072:
----------------------------------------

The problem is that to enable a new platform you put at risk hundreds or 
thousands of existing users that may be running 2.2, if there's some unreported 
bug or hidden incompatibility  in jna. Even if there's no bug, you're causing 
users to re-validate their deployment which is nontrivial (our testing isn't 
good enough for users with thousands of nodes to be sure that they won't have 
issues we didn't catch, this is a real step for most production deployments).

The pragmatic approach is not changing a library in 2.2, since it's been this 
way (unsupported) for 2 years since its release



> Cassandra failed to run on Linux-aarch64
> ----------------------------------------
>
>                 Key: CASSANDRA-13072
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13072
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: Hardware: ARM aarch64
> OS: Ubuntu 16.04.1 LTS
>            Reporter: Jun He
>            Assignee: Benjamin Lerer
>              Labels: incompatible
>         Attachments: compat_report.html
>
>
> Steps to reproduce:
> 1. Download cassandra latest source
> 2. Build it with "ant"
> 3. Run with "./bin/cassandra". Daemon is crashed with following error message:
> {quote}
> INFO  05:30:21 Initializing system.schema_functions
> INFO  05:30:21 Initializing system.schema_aggregates
> ERROR 05:30:22 Exception in thread Thread[MemtableFlushWriter:1,5,main]
> java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native
>         at 
> org.apache.cassandra.utils.memory.MemoryUtil.allocate(MemoryUtil.java:97) 
> ~[main/:na]
>         at org.apache.cassandra.io.util.Memory.<init>(Memory.java:74) 
> ~[main/:na]
>         at org.apache.cassandra.io.util.SafeMemory.<init>(SafeMemory.java:32) 
> ~[main/:na]
>         at 
> org.apache.cassandra.io.compress.CompressionMetadata$Writer.<init>(CompressionMetadata.java:316)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.compress.CompressionMetadata$Writer.open(CompressionMetadata.java:330)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.compress.CompressedSequentialWriter.<init>(CompressedSequentialWriter.java:76)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:163) 
> ~[main/:na]
>         at 
> org.apache.cassandra.io.sstable.format.big.BigTableWriter.<init>(BigTableWriter.java:73)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.sstable.format.big.BigFormat$WriterFactory.open(BigFormat.java:93)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.sstable.format.SSTableWriter.create(SSTableWriter.java:96)
>  ~[main/:na]
>         at 
> org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.create(SimpleSSTableMultiWriter.java:114)
>  ~[main/:na]
>         at 
> org.apache.cassandra.db.compaction.AbstractCompactionStrategy.createSSTableMultiWriter(AbstractCompactionStrategy.java:519)
>  ~[main/:na]
>         at 
> org.apache.cassandra.db.compaction.CompactionStrategyManager.createSSTableMultiWriter(CompactionStrategyManager.java:497)
>  ~[main/:na]
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.createSSTableMultiWriter(ColumnFamilyStore.java:480)
>  ~[main/:na]
>         at 
> org.apache.cassandra.db.Memtable.createFlushWriter(Memtable.java:439) 
> ~[main/:na]
>         at 
> org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:371) 
> ~[main/:na]
>         at org.apache.cassandra.db.Memtable.flush(Memtable.java:332) 
> ~[main/:na]
>         at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1054)
>  ~[main/:na]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_111]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_111]
>         at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_111]
> {quote}
> Analyze:
> This issue is caused by bundled jna-4.0.0.jar which doesn't come with aarch64 
> native support. Replace lib/jna-4.0.0.jar with jna-4.2.0.jar from 
> http://central.maven.org/maven2/net/java/dev/jna/jna/4.2.0/ can fix this 
> problem.
> Attached is the binary compatibility report of jna.jar between 4.0 and 4.2. 
> The result is good (97.4%). So is there possibility to upgrade jna to 4.2.0 
> in upstream? Should there be any kind of tests to execute, please kindly 
> point me. Thanks a lot.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to