Mark Payne created NIFI-5592:
--------------------------------
Summary: ConsumeKafkaRecord* processors can stop pulling data if
the data doesn't match the configured schema
Key: NIFI-5592
URL: https://issues.apache.org/jira/browse/NIFI-5592
Project: Apache NiFi
Issue Type: Bug
Components: Extensions
Reporter: Mark Payne
Assignee: Mark Payne
If the data in the kafka topic does not adhere to the configured schema, the
processor should route the data to 'parse.failure' but in some conditions, we
may encounter the following SchemaValidationException:
{code}
2018-09-13 07:37:54,196 ERROR [Timer-Driven Process Thread-1]
o.a.n.p.k.pubsub.ConsumeKafkaRecord_1_0
ConsumeKafkaRecord_1_0[id=c258fa20-0165-1000-ffff-ffffb401d2c7] Exception while
processing data from kafka so will close the lease
org.apache.nifi.processors.kafka.pubsub.ConsumerPool$SimpleConsumerLease@3fa54755
due to org.apache.nifi.processor.exception.ProcessException:
org.apache.nifi.serialization.SchemaValidationException: Field designation
cannot be null: org.apache.nifi.processor.exception.ProcessException:
org.apache.nifi.serialization.SchemaValidationException: Field designation
cannot be null
org.apache.nifi.processor.exception.ProcessException:
org.apache.nifi.serialization.SchemaValidationException: Field designation
cannot be null
at
org.apache.nifi.processors.kafka.pubsub.ConsumerLease.writeRecordData(ConsumerLease.java:587)
at
org.apache.nifi.processors.kafka.pubsub.ConsumerLease.lambda$processRecords$2(ConsumerLease.java:330)
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1553)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at
org.apache.nifi.processors.kafka.pubsub.ConsumerLease.processRecords(ConsumerLease.java:317)
at
org.apache.nifi.processors.kafka.pubsub.ConsumerLease.poll(ConsumerLease.java:178)
at
org.apache.nifi.processors.kafka.pubsub.ConsumeKafkaRecord_1_0.onTrigger(ConsumeKafkaRecord_1_0.java:378)
at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165)
at
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203)
at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.nifi.serialization.SchemaValidationException: Field
designation cannot be null
at org.apache.nifi.serialization.record.MapRecord.checkTypes(MapRecord.java:81)
at org.apache.nifi.serialization.record.MapRecord.<init>(MapRecord.java:52)
at org.apache.nifi.csv.CSVRecordReader.nextRecord(CSVRecordReader.java:113)
at org.apache.nifi.serialization.RecordReader.nextRecord(RecordReader.java:50)
at
org.apache.nifi.processors.kafka.pubsub.ConsumerLease.writeRecordData(ConsumerLease.java:534)
... 17 common frames omitted
{code}
In such a case, it will constantly roll back the session and keep trying to
pull the data, with the Exception continually occurring.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)