incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paul cannon <p...@datastax.com>
Subject Re: Debian package jna bug workaroung
Date Fri, 04 Nov 2011 19:05:12 GMT
The cassandra-cli tool will show you, if you're using at least cassandra
1.0.1, in a "describe" command.  If not, you can make a thrift
describe_keyspace() call some other way, and check the value of the
appropriate CfDef's row_cache_provider string.  If it's
SerializingCacheProvider, it's off-heap.  Note that I think you need to
create the columnfamily while JNA is present, not just have JNA present
when cassandra starts.  Might be wrong on that.

p


On Thu, Nov 3, 2011 at 4:10 PM, Peter Tillotson <slatemine@yahoo.co.uk>wrote:

> Cassandra 1.0.1 and only seemed to happen with
> * JAVA_HOME=/usr/lib/jvm/java-6-sun
> and jna.jar copied into /usr/share/cassandra(/lib)
>
> I then saw the detail in the init script and how it was being linked
>
> Is there a way I can verify which provider is being used? I want to make
> sure Off heap is being used in the default config.
>
> On 03/11/11 19:06, paul cannon wrote:
> > I can't reproduce this. What version of the cassandra deb are you using,
> > exactly, and why are you symlinking or copying jna.jar into
> > /usr/share/cassandra?  The initscript should be adding
> > /usr/sahre/java/jna.jar to the classpath, and that should be all you
> need.
> >
> > The failure you see with o.a.c.cache.FreeableMemory is not because the
> > jre can't find the class, it's just that it can't initialize the class
> > (because it needs JNA, and it can't find JNA).
> >
> > p
> >
> > On Wed, Nov 2, 2011 at 4:42 AM, Peter Tillotson <slatemine@yahoo.co.uk
> > <mailto:slatemine@yahoo.co.uk>> wrote:
> >
> >     see below
> >      * JAVA_HOME=/usr/lib/jvm/java-6-openjdk
> >     works
> >     --
> >     Reading the documentation over at Datastax
> >     “The Debian and RPM packages of Cassandra install JNA automatically”
> >
> http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-improved-memory-and-disk-space-management
> >
> >     And indeed the Debian package depends on jna, and the
> >     /etc/init.d/cassandra looks as though in adds
> >     /usr/share/java/jna.jar to the classpath, and here is the but.
> >
> >     If I copy or symlink jna.jar into:
> >      * /usr/share/cassandra
> >      * /usr/share/cassandra/lib
> >     Whenever a column family initialises I get:
> >     java.lang.NoClassDefFoundError: Could not initialize class
> >     org.apache.cassandra.cache.FreeableMemory
> >
> >     This suggests to me that:
> >      1) By default, for me at least, in Debian jna.jar is not on the
> >     classpath
> >      2) There is an additional classpath issue
> >          jar -tf apache-cassandra.jar | grep "FreeableMemory" succeeds
> >
> >     I'm running on:
> >      * Ubuntu 10.04 x64
> >      * JAVA_HOME=/usr/lib/jvm/java-6-sun
> >
> >     Full stack traces:
> >     java.lang.NoClassDefFoundError: Could not initialize class
> >     com.sun.jna.Native
> >             at com.sun.jna.Pointer.<clinit>(Pointer.java:42)
> >             at
> >
> org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92)
> >             at
> >
> org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154)
> >             at
> >
> org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1150)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1174)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1131)
> >             at org.apache.cassandra.db.Table.getRow(Table.java:378)
> >             at
> >
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:61)
> >             at
> >
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:797)
> >             at
> >
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1265)
> >             at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >             at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >             at java.lang.Thread.run(Thread.java:662)
> >      INFO [pool-1-thread-1] 2011-11-02 10:26:46,738 Memtable.java (line
> >     177) CFS(Keyspace='BigSet', ColumnFamily='theKeys') liveRatio is
> >     18.20062753783684 (just-counted was 16.960966424636872).
> >      calculation took 408ms for 8169 columns
> >     ERROR [ReadStage:33] 2011-11-02 10:26:56,599
> >     AbstractCassandraDaemon.java (line 133) Fatal exception in thread
> >     Thread[ReadStage:33,5,main]
> >     java.lang.NoClassDefFoundError: Could not initialize class
> >     org.apache.cassandra.cache.FreeableMemory
> >             at
> >
> org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92)
> >             at
> >
> org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154)
> >             at
> >
> org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1150)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1174)
> >             at
> >
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1131)
> >             at org.apache.cassandra.db.Table.getRow(Table.java:378)
> >             at
> >
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:61)
> >             at
> >
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:797)
> >             at
> >
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1265)
> >             at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >
> >
>
>

Mime
View raw message