You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2016/03/08 10:47:40 UTC

[jira] [Resolved] (CASSANDRA-11293) NPE when using CQLSSTableWriter

     [ https://issues.apache.org/jira/browse/CASSANDRA-11293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne resolved CASSANDRA-11293.
------------------------------------------
    Resolution: Not A Problem

bq. No assertions are made anywhere I can find in the docs about CQLSSTableWriter's thread safety or lack thereof

I agree and I just added documentation regarding it to the javadoc.

bq. Is it really possible to use multiple CQLSSTableWriters writing to the same directory at the same time? I'd be astonished if that were so.

Then be astonished. You can indeed use multiple instances on the same table/same directory, as long as you don't use a given instance from multiple threads.

Anyway, sorry for the lack of documentation, which is now fixed, but closing since there isn't an actual bug here (outside of the lack of clear documentation I guess).

> NPE when using CQLSSTableWriter
> -------------------------------
>
>                 Key: CASSANDRA-11293
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11293
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>         Environment: C* 3.3, C* trunk
>            Reporter: Will Hayworth
>
> Hi all!
> I'm trying to using CQLSSTableWriter to load a bunch of historical data into my cluster and I'm getting NullPointerExceptions consistently after having written a few million rows (anywhere from 0.5 to 1.5 GB of data).
> {code}
> java.lang.NullPointerException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:598) at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735) at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583)
>  at com.atlassian.engagementengine.segmentation.helenus.Daemon.main(Daemon.java:24)
> Caused by: java.lang.NullPointerException at org.apache.cassandra.db.ClusteringComparator.compare(ClusteringComparator.java:126) at org.apache.cassandra.db.ClusteringComparator.compare(ClusteringComparator.java:44) at
> java.util.TimSort.binarySort(TimSort.java:296) at
> java.util.TimSort.sort(TimSort.java:239) at
> java.util.Arrays.sort(Arrays.java:1512) at
> org.apache.cassandra.utils.btree.BTree$Builder.sort(BTree.java:1027) at org.apache.cassandra.utils.btree.BTree$Builder.autoEnforce(BTree.java:1036) at org.apache.cassandra.utils.btree.BTree$Builder.build(BTree.java:1075) at org.apache.cassandra.db.partitions.PartitionUpdate.build(PartitionUpdate.java:572) at org.apache.cassandra.db.partitions.PartitionUpdate.maybeBuild(PartitionUpdate.java:562) at org.apache.cassandra.db.partitions.PartitionUpdate.holder(PartitionUpdate.java:370) at org.apache.cassandra.db.partitions.AbstractBTreePartition.unfilteredIterator(AbstractBTreePartition.java:177) at org.apache.cassandra.db.partitions.AbstractBTreePartition.unfilteredIterator(AbstractBTreePartition.java:172) at org.apache.cassandra.io.sstable.SSTableSimpleUnsortedWriter$DiskWriter.run(SSTableSimpleUnsortedWriter.java:209)
> {code}
> This may be a red herring, but I started encountering this when I parallelized writes. (I wasn't aware that doing so was safe until I saw CASSANDRA-7463; I Googled in vain for a while before that.) I'm also definitely not passing any nulls in my {{addRow}} calls.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)