Fateh Singh created RANGER-4390:
-----------------------------------

             Summary: ORC audit fails with null pointer exception when 
filequeue buffer size and orc buffer size are not equal
                 Key: RANGER-4390
                 URL: https://issues.apache.org/jira/browse/RANGER-4390
             Project: Ranger
          Issue Type: Improvement
          Components: Ranger
            Reporter: Fateh Singh


Steps to reproduce:
Change config values in unit test case testAuditFileQueueSpoolORC() in 
TestAuditQueue.java
xasecure.audit.destination.hdfs.orc.buffersize=5
xasecure.audit.destination.hdfs.batch.filequeue.filespool.buffer.size=10

If both are same then error not observed

Sample config from test case to reproduce issue:
Configs:
{code:java}
{xasecure.audit.destination.hdfs.orc.buffersize=5, 
xasecure.audit.destination.hdfs.batch.filequeue.filespool.dir=target/spool, 
xasecure.audit.destination.hdfs.batch.queuetype=filequeue, 
xasecure.audit.destination.hdfs.batch.filequeue.filespool.buffer.size=10, 
xasecure.audit.destination.hdfs.batch.filequeue.filetype=orc, 
xasecure.audit.is.enabled=true, 
xasecure.audit.destination.hdfs.filename.format=%app-type%_ranger_audit.orc, 
xasecure.audit.destination.hdfs=enable, 
xasecure.audit.destination.hdfs.orc.stripesize=10, 
xasecure.audit.destination.hdfs.dir=target/testAuditFileQueueSpoolORC, 
xasecure.audit.destination.hdfs.orc.compression=none, 
xasecure.audit.destination.hdfs.batch.filequeue.filespool.file.rollover.sec=5}{code}

Error logs:
{code:java}
13:52:49.800 [AuditFileQueueSpool_hdfs_destWriter] ERROR 
org.apache.ranger.audit.provider.BaseAuditHandler - Error writing to log file.
java.lang.NullPointerException: null
    at java.lang.System.arraycopy(Native Method)
    at org.apache.hadoop.io.Text.set(Text.java:225)
    at org.apache.orc.impl.StringRedBlackTree.add(StringRedBlackTree.java:59)
    at 
org.apache.orc.impl.writer.StringTreeWriter.writeBatch(StringTreeWriter.java:70)
    at 
org.apache.orc.impl.writer.StructTreeWriter.writeRootBatch(StructTreeWriter.java:56)
    at org.apache.orc.impl.WriterImpl.addRowBatch(WriterImpl.java:574)
    at org.apache.ranger.audit.utils.ORCFileUtil.log(ORCFileUtil.java:147)
    at 
org.apache.ranger.audit.utils.RangerORCAuditWriter$1.run(RangerORCAuditWriter.java:77)
    at 
org.apache.ranger.audit.utils.RangerORCAuditWriter$1.run(RangerORCAuditWriter.java:73)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1845)
    at 
org.apache.ranger.audit.provider.MiscUtil.executePrivilegedAction(MiscUtil.java:544)
    at 
org.apache.ranger.audit.utils.RangerORCAuditWriter.logAuditAsORC(RangerORCAuditWriter.java:73)
    at 
org.apache.ranger.audit.utils.RangerORCAuditWriter.logAsORC(RangerORCAuditWriter.java:159)
    at 
org.apache.ranger.audit.utils.RangerORCAuditWriter.log(RangerORCAuditWriter.java:112)
    at 
org.apache.ranger.audit.destination.HDFSAuditDestination.logJSON(HDFSAuditDestination.java:79)
    at 
org.apache.ranger.audit.destination.HDFSAuditDestination.log(HDFSAuditDestination.java:171)
    at 
org.apache.ranger.audit.queue.AuditFileQueueSpool.sendEvent(AuditFileQueueSpool.java:926)
    at 
org.apache.ranger.audit.queue.AuditFileQueueSpool.logEvent(AuditFileQueueSpool.java:904)
    at 
org.apache.ranger.audit.queue.AuditFileQueueSpool.runLogAudit(AuditFileQueueSpool.java:847)
    at 
org.apache.ranger.audit.queue.AuditFileQueueSpool.run(AuditFileQueueSpool.java:790)
    at java.lang.Thread.run(Thread.java:750) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to