[ 
https://issues.apache.org/jira/browse/CASSANDRA-7608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14073442#comment-14073442
 ] 

Russell Alexander Spitzer commented on CASSANDRA-7608:
------------------------------------------------------

Looks like there are actually a bunch of uses of columns.names, so i'll switch 
it to a byte array.

> StressD can't create keyspaces with Write Command
> -------------------------------------------------
>
>                 Key: CASSANDRA-7608
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7608
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>            Reporter: Russell Alexander Spitzer
>            Assignee: Russell Alexander Spitzer
>            Priority: Minor
>             Fix For: 2.1.1
>
>
> It is impossible to run the default stress command via the dameon ./stress 
> write
> Because the column names are HeapByteBuffers so they get ignored during 
> serilization (no error is thrown) and then when the object is deserialized on 
> the server the settings.columns.names is null. This leads to a null pointer 
> on the dameon for what would have worked had it run locally.
> Settings object on the Local machine
> {code}
> columns = {org.apache.cassandra.stress.settings.SettingsColumn@1465}
> maxColumnsPerKey = 5
> names = {java.util.Arrays$ArrayList@1471} size = 5
> [0] = {java.nio.HeapByteBuffer@1478}"java.nio.HeapByteBuffer[pos=0 lim=2 
> cap=2]"
> [1] = {java.nio.HeapByteBuffer@1483}"java.nio.HeapByteBuffer[pos=0 lim=2 
> cap=2]"
> [2] = {java.nio.HeapByteBuffer@1484}"java.nio.HeapByteBuffer[pos=0 lim=2 
> cap=2]"
> [3] = {java.nio.HeapByteBuffer@1485}"java.nio.HeapByteBuffer[pos=0 lim=2 
> cap=2]"
> [4] = {java.nio.HeapByteBuffer@1486}"java.nio.HeapByteBuffer[pos=0 lim=2 
> cap=2]"
> {code}
> Setings object on the StressD Machine
> {code}
> columns = {org.apache.cassandra.stress.settings.SettingsColumn@810}
> maxColumnsPerKey = 5
> names = null
> {code}
> This leads to the null pointer in 
> {code}
> Exception in thread "Thread-1" java.lang.NullPointerException
>     at 
> org.apache.cassandra.stress.settings.SettingsSchema.createKeySpacesThrift(SettingsSchema.java:94)
>     at 
> org.apache.cassandra.stress.settings.SettingsSchema.createKeySpaces(SettingsSchema.java:67)
>     at 
> org.apache.cassandra.stress.settings.StressSettings.maybeCreateKeyspaces(StressSettings.java:193)
>     at org.apache.cassandra.stress.StressAction.run(StressAction.java:59)
>     at java.lang.Thread.run(Thread.java:745)
> {code}
> Which refers to
> {code}
>        for (int i = 0; i < settings.columns.names.size(); i++)
>             standardCfDef.addToColumn_metadata(new 
> ColumnDef(settings.columns.names.get(i), "BytesType"));
> {code}
> Possible solution:
> Just use the settings.columns.namestr and convert them to byte buffers at 
> this point in the code. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to