-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Description
Tips before filing an issue
-
Have you gone through our FAQs? yes
-
Join the mailing list to engage in conversations and get faster support at dev-subscribe@hudi.apache.org.
-
If you have triaged this as a bug, then file an issue directly.
Describe the problem you faced
We are using PostgresDebeziumSource and consuming data from confluent Kafka, using Confluent Schema Registry as at the Schema Provider. Application runs fine for some time and then all of sudden fails with Null Pointer Exception.
To Reproduce
Steps to reproduce the behavior:
- Use Debezium Kafka Connect to publish data from Postgres server to Kafka.
- Use PostgresDebeziumSource and Confluent Schema Registry to consume data
- It runs fine for some records and stores the data into files in storage.
- After some time it fails with Null Pointer Exception without much description.
Expected behavior
Application should run seem less without any errors.
Environment Description
-
Hudi version : 0.12.0
-
Spark version : 3.2.1
-
Hive version : 2.3.5
-
Hadoop version : 2.7.7
-
Storage (HDFS/S3/GCS..) : GCS
-
Running on Docker? (yes/no) : Yes(k8's)
Additional context
I tried doing remote debug, https://github.com/apache/hudi/blob/bf86efef719b7760ea379bfa08c537431eeee09a/hudi-[…]client/src/main/scala/org/apache/hudi/AvroConversionUtils.scala this piece of code is giving the error. i tried rdd.count() in evaluator , it returns the element count (non zero) but when I do rdd.first() or next() I am getting the same exception
Stacktrace
22/10/07 15:30:03 INFO dag-scheduler-event-loop DAGScheduler: ResultStage 1 (isEmpty at DeltaSync.java:481) failed in 57.186 s due to Job aborted due to stage failure: Task 0 in stage 1.0 failed 1 times, most recent failure: Lost task 0.0 in stage 1.0 (TID 1) (192.168.0.188 executor driver): java.lang.NullPointerException
at [org.apache.hudi.org](http://org.apache.hudi.org/).apache.spark.sql.avro.AvroDeserializer.$anonfun$getRecordWriter$2(AvroDeserializer.scala:383)
at [org.apache.hudi.org](http://org.apache.hudi.org/).apache.spark.sql.avro.AvroDeserializer.$anonfun$getRecordWriter$2$adapted(AvroDeserializer.scala:379)
at [org.apache.hudi.org](http://org.apache.hudi.org/).apache.spark.sql.avro.AvroDeserializer.$anonfun$converter$4(AvroDeserializer.scala:88)
at [org.apache.hudi.org](http://org.apache.hudi.org/).apache.spark.sql.avro.AvroDeserializer.deserialize(AvroDeserializer.scala:106)
at [org.apache.hudi.org](http://org.apache.hudi.org/).apache.spark.sql.avro.HoodieSpark3_2AvroDeserializer.deserialize(HoodieSpark3_2AvroDeserializer.scala:30)
at org.apache.hudi.AvroConversionUtils$.$anonfun$createAvroToInternalRowConverter$1(AvroConversionUtils.scala:69)
at org.apache.hudi.AvroConversionUtils$.$anonfun$createConverterToRow$1(AvroConversionUtils.scala:99)
at org.apache.hudi.AvroConversionUtils$.$anonfun$createDataFrame$2(AvroConversionUtils.scala:136)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:461)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:461)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:461)
at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:514)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:460)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:460)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:460)
at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:460)
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
at org.apache.spark.sql.execution.WholeStageCodegenExec$$anon$1.hasNext(WholeStageCodegenExec.scala:759)
at scala.collection.Iterator.isEmpty(Iterator.scala:387)
at scala.collection.Iterator.isEmpty$(Iterator.scala:387)
at org.apache.spark.sql.execution.WholeStageCodegenExec$$anon$1.isEmpty(WholeStageCodegenExec.scala:757)
at org.apache.hudi.HoodieSparkUtils$.$anonfun$createRdd$2(HoodieSparkUtils.scala:165)
at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2(RDD.scala:863)
at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2$adapted(RDD.scala:863)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:337)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.run(Task.scala:131)
at org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:506)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1491)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:509)
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:750) .