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