Hi, I have an HBase table created by Phoenix, onto which I added another CF which is unknown to Phoenix.
I also have a custom endpoint coprocessor, which does puts on this table in the CF which is unknown by Phoenix. However, this doesn't work, it throws an NPE because the WALEdit contains a KeyValue with null bytes, which I found is the BATCH_MARKER added by Indexer.prePut. (I'm not using indexes) I don't have this problem if I do the put via an HTable, it is only when doing the put directly from the coprocessor via HRegion.put(). I'm using Phoenix 2.2.1 with HBase 0.94.6-cdh4.4.0. I'm running this in an integration test with HBaseTestingUtility. Is it possible to get this to work, or any insight as to why this is happening? Thanks! Bruno. Stacktrace: [ERROR][10:34:14,724][7 on 58800] org.apache.hadoop.hbase.regionserver.wal.HLog - syncer encountered error, will retry. txid=60 java.io.IOException: java.lang.NullPointerException at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.append(SequenceFileLogWriter.java:282) at org.apache.hadoop.hbase.regionserver.wal.HLog$LogSyncer.hlogFlush(HLog.java:1293) at org.apache.hadoop.hbase.regionserver.wal.HLog.syncer(HLog.java:1338) at org.apache.hadoop.hbase.regionserver.wal.HLog.sync(HLog.java:1472) at org.apache.hadoop.hbase.regionserver.wal.HLog.append(HLog.java:1174) at org.apache.hadoop.hbase.regionserver.wal.HLog.append(HLog.java:1214) at org.apache.hadoop.hbase.regionserver.HRegion.internalPut(HRegion.java:2825) at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2018) at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:1963) at com.ngdata.xxx(xxx.java:100) 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:601) at org.apache.hadoop.hbase.regionserver.HRegion.exec(HRegion.java:5490) at org.apache.hadoop.hbase.regionserver.HRegionServer.execCoprocessor(HRegionServer.java:3720) 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:601) at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:320) at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1428) Caused by: java.lang.NullPointerException at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:136) at java.io.DataOutputStream.write(DataOutputStream.java:107) at org.apache.hadoop.hbase.KeyValue.write(KeyValue.java:2287) at org.apache.hadoop.hbase.regionserver.wal.WALEdit.write(WALEdit.java:160) at org.apache.hadoop.io.serializer.WritableSerialization$WritableSerializer.serialize(WritableSerialization.java:100) at org.apache.hadoop.io.serializer.WritableSerialization$WritableSerializer.serialize(WritableSerialization.java:84) at org.apache.hadoop.io.SequenceFile$Writer.append(SequenceFile.java:1287) at org.apache.hadoop.io.SequenceFile$Writer.append(SequenceFile.java:1258) at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.append(SequenceFileLogWriter.java:279) ... 21 more
