[ 
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)

Reply via email to