[ https://issues.apache.org/jira/browse/CASSANDRA-8808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14325072#comment-14325072 ]
Yuki Morishita commented on CASSANDRA-8808: ------------------------------------------- I think it is better to eliminate the path that we access Keyspace/ColumnFamilyStore from CQLSSTableWrtier. It seems we only use that for secondary index update which we don't need. > CQLSSTableWriter: close does not work + more than one table throws ex > --------------------------------------------------------------------- > > Key: CASSANDRA-8808 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8808 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Sebastian YEPES FERNANDEZ > Assignee: Benjamin Lerer > Labels: cql > Fix For: 2.1.0, 2.1.4 > > > I have encountered the following two issues: > - When closing the CQLSSTableWriter it just hangs the process and does > nothing. (https://issues.apache.org/jira/browse/CASSANDRA-8281) > - When writing more than one table throws ex. > (https://issues.apache.org/jira/browse/CASSANDRA-8251) > These issue can be reproduced with the following code: > {code:title=test.java|borderStyle=solid} > import org.apache.cassandra.config.Config; > import org.apache.cassandra.io.sstable.CQLSSTableWriter; > public static void main(String[] args) { > Config.setClientMode(true); > CQLSSTableWriter w1 = CQLSSTableWriter.builder() > .inDirectory("/tmp/kspc/t1") > .forTable("CREATE TABLE kspc.t1 ( id int, PRIMARY KEY (id));") > .using("INSERT INTO kspc.t1 (id) VALUES ( ? );") > .build(); > CQLSSTableWriter w2 = CQLSSTableWriter.builder() > .inDirectory("/tmp/kspc/t2") > .forTable("CREATE TABLE kspc.t2 ( id int, PRIMARY KEY (id));") > .using("INSERT INTO kspc.t2 (id) VALUES ( ? );") > .build(); > try { > w1.addRow(1); > w2.addRow(1); > w1.close(); > w2.close(); > } catch (Exception e) { > System.out.println(e); > } > } > {code} > {code:title=The error|borderStyle=solid} > Exception in thread "main" java.lang.ExceptionInInitializerError > at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:324) > at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:277) > at org.apache.cassandra.db.Keyspace.open(Keyspace.java:119) > at org.apache.cassandra.db.Keyspace.open(Keyspace.java:96) > at > org.apache.cassandra.cql3.statements.UpdateStatement.addUpdateForKey(UpdateStatement.java:101) > at > org.apache.cassandra.io.sstable.CQLSSTableWriter.rawAddRow(CQLSSTableWriter.java:226) > at > org.apache.cassandra.io.sstable.CQLSSTableWriter.addRow(CQLSSTableWriter.java:145) > at > org.apache.cassandra.io.sstable.CQLSSTableWriter.addRow(CQLSSTableWriter.java:120) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) > at > com.allthingsmonitoring.utils.BulkDataLoader.main(BulkDataLoader.groovy:415) > Caused by: java.lang.NullPointerException > at > org.apache.cassandra.config.DatabaseDescriptor.getFlushWriters(DatabaseDescriptor.java:1053) > at > org.apache.cassandra.db.ColumnFamilyStore.<clinit>(ColumnFamilyStore.java:85) > ... 18 more > {code} > I have just tested the in the cassandra-2.1 branch and the issue still > persists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)