Right, I am using the old config since we don't config example in the apache repository. I have attached the config that I am using. Thanks.

On Wed, Mar 11, 2009 at 2:51 PM, Avinash Lakshman <alakshman@facebook.com> wrote:

May be you need to have the new config format? I am not sure. Send me your config file.

 

Avinash

 


From: Jiansheng Huang [mailto:jiansheng.wi@gmail.com]
Sent: Wednesday, March 11, 2009 2:50 PM
To: cassandra-user@incubator.apache.org; Avinash Lakshman; Prashant Malik
Cc: agupta@rocketfuelinc.com


Subject: NPE in apache cassandra

 

Hi folks, I checked out the new code from apache and compiled it. When I start up the server with a clean installation base (i.e., without using any system/user data from previous installation),

I got the following.

UNCAUGHT EXCEPTION IN main()
java.lang.NullPointerException
    at java.io.DataOutputStream.writeUTF(DataOutputStream.java:347)
    at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
    at org.apache.cassandra.db.Table$TableMetadataSerializer.serialize(Table.java:254)
    at org.apache.cassandra.db.Table$TableMetadataSerializer.serialize(Table.java:244)
    at org.apache.cassandra.db.Table$TableMetadata.apply(Table.java:209)
    at org.apache.cassandra.db.DBManager.storeMetadata(DBManager.java:150)
    at org.apache.cassandra.db.DBManager.<init>(DBManager.java:102)
    at org.apache.cassandra.db.DBManager.instance(DBManager.java:61)
    at org.apache.cassandra.service.StorageService.start(StorageService.java:465)
    at org.apache.cassandra.service.CassandraServer.start(CassandraServer.java:110)
    at org.apache.cassandra.service.CassandraServer.main(CassandraServer.java:1078)
Disconnected from the target VM, address: '127.0.0.1:45693', transport: 'socket'

I did some debugging and found that in the following code, the first entry in cfNames is always null. Is it safe to say that if cfName is null, then we don't want to do the writings?

public void serialize(TableMetadata tmetadata, DataOutputStream dos) throws IOException
        {
            int size = tmetadata.cfIdMap_.size();
            dos.writeInt(size);
            Set<String> cfNames = tmetadata.cfIdMap_.keySet();

            for ( String cfName : cfNames )
            {
                dos.writeUTF(cfName);
                dos.writeInt( tmetadata.cfIdMap_.get(cfName).intValue() );
                dos.writeUTF(tmetadata.getColumnFamilyType(cfName));
            }           
        }
          
A related question I have is what's the procedure for us to check in code? I have made some changes for adding latency counters in the server and exposing them through http. Would be good to check in the changes and minor fixes so that I don't have to risk of losing them ...

Thanks,

Jiansheng