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

Ryan McGuire commented on CASSANDRA-6575:
-----------------------------------------

This got broken.

I have deleted the JNA jar file from my lib directory, and the error message 
telling me that cassandra refuses to start is still working. However, if I use 
the boot_without_jna option it suggests, I get this traceback:

{code}
ERROR 23:28:22 Exception in thread Thread[MemtableFlushWriter:1,5,main]
java.lang.NoClassDefFoundError: com/sun/jna/Native
        at org.apache.cassandra.io.util.Memory.asByteBuffers(Memory.java:305) 
~[main/:na]
        at 
org.apache.cassandra.io.util.AbstractDataOutput.write(AbstractDataOutput.java:326)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer.serialize(IndexSummary.java:221)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.SSTableReader.saveSummary(SSTableReader.java:709)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.SSTableReader.saveSummary(SSTableReader.java:696)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:356)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:331)
 ~[main/:na]
        at 
org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:326)
 ~[main/:na]
        at 
org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:363)
 ~[main/:na]
        at 
org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:321) 
~[main/:na]
        at 
org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
 ~[main/:na]
        at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
~[main/:na]
        at 
com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
 ~[guava-16.0.jar:na]
        at 
org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1029)
 ~[main/:na]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
~[na:1.7.0_51]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
~[na:1.7.0_51]
        at java.lang.Thread.run(Thread.java:744) ~[na:1.7.0_51]
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Native
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_51]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_51]
        at java.security.AccessController.doPrivileged(Native Method) 
~[na:1.7.0_51]
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
~[na:1.7.0_51]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_51]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
~[na:1.7.0_51]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_51]
        ... 17 common frames omitted
{code}

This was working at the time this ticket was closed before, but it's now broken 
on cassandra-2.1 HEAD.

> By default, Cassandra should refuse to start if JNA can't be initialized 
> properly
> ---------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6575
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6575
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Tupshin Harper
>            Assignee: Clément Lardeur
>            Priority: Minor
>              Labels: lhf
>             Fix For: 2.1 beta1
>
>         Attachments: trunk-6575-v2.patch, trunk-6575-v3.patch, 
> trunk-6575-v4.patch, trunk-6575.patch
>
>
> Failure to have JNA working properly is such a common undetected problem that 
> it would be far preferable to have Cassandra refuse to startup unless JNA is 
> initialized. In theory, this should be much less of a problem with Cassandra 
> 2.1 due to CASSANDRA-5872, but even there, it might fail due to native lib 
> problems, or might otherwise be misconfigured. A yaml override, such as 
> boot_without_jna would allow the deliberate overriding of this policy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to