[ https://issues.apache.org/jira/browse/PHOENIX-3507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15693043#comment-15693043 ]
Anoop Sam John commented on PHOENIX-3507: ----------------------------------------- Copied from HBase issue "I believe I got what is the issue AbstractProtobufLogWriter#initAfterHeader will do Codec create and will consider the config 'hbase.regionserver.wal.codec'. But SecureProtobufLogWriter, which is in use here, override initAfterHeader() and that in turn creates SecureWALCellCodec only. The even if the config says to use a diff Codec, that is not at all getting used. In Pheonix this Codec might be having some extra logic to handle some special KVs. There was an IndexKV usage in the past.. Not sure abt cur code base of Phoenix. So HBase side issue is this - Config 'hbase.regionserver.wal.codec' is discarded when wal encryption is ON." Ping [~apurtell].. With WAL encryption, we intended not to support custom wal cell codec? Or else we should make SecureWALCellCodec limited private and document that when encryption is ON, the custom wal codec impl has to extend this NOT WALCellCodec. > HBase secure wal log cash with Phoenix secondary index > ------------------------------------------------------ > > Key: PHOENIX-3507 > URL: https://issues.apache.org/jira/browse/PHOENIX-3507 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.8.0 > Environment: Hadoop 2.7.3 > HBase 1.2.4 > Phoenix 4.8.1 > JDK 1.8.0_112 > Reporter: SonixLegend > Fix For: 4.9.0 > > > When I used wal.encryption and phoenix secondary indexes, I got the error > message > 2016-11-24 17:11:20,361 INFO > [regionserver/host-172-31-0-68/172.31.0.68:16020.logRoller] wal.FSHLog: > Rolled WAL > /hbase/WALs/host-172-31-0-68,16020,1479976404182/host-172-31-0-68%2C16020%2C1479976404182.default.1479978679455 > with entries=0, filesize=242 B; new WAL > /hbase/WALs/host-172-31-0-68,16020,1479976404182/host-172-31-0-68%2C16020%2C1479976404182.default.1479978680140 > 2016-11-24 17:11:20,363 INFO > [regionserver/host-172-31-0-68/172.31.0.68:16020.logRoller] wal.FSHLog: > Archiving > hdfs://data/hbase/WALs/host-172-31-0-68,16020,1479976404182/host-172-31-0-68%2C16020%2C1479976404182.default.1479978679455 > to > hdfs://data/hbase/oldWALs/host-172-31-0-68%2C16020%2C1479976404182.default.1479978679455 > 2016-11-24 17:11:20,654 WARN > [regionserver/host-172-31-0-68/172.31.0.68:16020.append-pool1-t1] wal.FSHLog: > Append sequenceId=9, requesting roll of WAL > java.lang.NullPointerException > at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:801) > at org.apache.hadoop.hbase.util.Bytes.toInt(Bytes.java:788) > at org.apache.hadoop.hbase.KeyValue.getKeyLength(KeyValue.java:1324) > at org.apache.hadoop.hbase.KeyValue.getTagsLength(KeyValue.java:1638) > at > org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec$EncryptedKvEncoder.write(SecureWALCellCodec.java:199) > at > org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.append(ProtobufLogWriter.java:122) > at > org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.append(FSHLog.java:1932) > at > org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.onEvent(FSHLog.java:1794) > at > org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.onEvent(FSHLog.java:1704) > at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > 2016-11-24 17:11:20,810 WARN > [regionserver/host-172-31-0-68/172.31.0.68:16020.logRoller] wal.FSHLog: > Failed sync-before-close but no outstanding appends; closing WAL: > org.apache.hadoop.hbase.regionserver.wal.DamagedWALException: Append > sequenceId=9, requesting roll of WAL > And my hbase-site.xml is containing the settings. > <property> > <name>hbase.regionserver.wal.encryption</name> > <value>true</value> > </property> > <property> > <name>hbase.regionserver.hlog.reader.impl</name> > <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader</value> > </property> > <property> > <name>hbase.regionserver.hlog.writer.impl</name> > <value>org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter</value> > </property> > <property> > <name>hbase.regionserver.wal.codec</name> > <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> > </property> > And my phoenix table sql > CREATE SCHEMA TEST; > CREATE TABLE TEST.TEST (ID BIGINT NOT NULL PRIMARY KEY, TEST VARCHAR); > UPSERT INTO TEST.TEST (ID, TEST) VALUES (1, 'test'); > CREATE INDEX TEST_INDEX ON TEST.TEST (TEST); -- This message was sent by Atlassian JIRA (v6.3.4#6332)