You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Peter Turcsanyi (Jira)" <ji...@apache.org> on 2020/09/28 20:29:00 UTC
[jira] [Resolved] (NIFI-7843) Recursive avro schemas fail to write
with RecordWriter
[ https://issues.apache.org/jira/browse/NIFI-7843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Peter Turcsanyi resolved NIFI-7843.
-----------------------------------
Fix Version/s: 1.13.0
Resolution: Fixed
> Recursive avro schemas fail to write with RecordWriter
> ------------------------------------------------------
>
> Key: NIFI-7843
> URL: https://issues.apache.org/jira/browse/NIFI-7843
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Denes Arvay
> Assignee: Denes Arvay
> Priority: Major
> Fix For: 1.13.0
>
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> Recursive Avro record with a schema containing self-reference cannot be written by RecordWriter due to infinite loop / StackOverflowError.
> Schema:
> {code:java}
> {
> "namespace": "dataformat.avro.recursive",
> "type": "record",
> "name": "PersonRecursive",
> "fields": [
> {"name": "id", "type": "int"},
> {"name": "name", "type": ["string", "null"]},
> {"name": "parent", "type": ["PersonRecursive", "null"]}
> ]
> } {code}
> Exception:
> {code:java}
> 2020-09-24 06:13:21,978 ERROR [Timer-Driven Process Thread-7] o.a.n.processors.standard.ConvertRecord ConvertRecord[id=b666a7ea-0174-1000-894b-7b743c091dc0] ConvertRecord[id=b666a7ea-0174-1000-894b-7b743c091dc0] failed to process session due to java.lang.StackOverflowError; Processor Administratively Yielded for 1 sec: java.lang.StackOverflowError
> java.lang.StackOverflowError: null
> at java.base/java.util.Objects.equals(Objects.java:77)
> at org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
> at org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
> at java.base/java.util.ArrayList.equals(ArrayList.java:561)
> at java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
> at org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
> at org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
> at java.base/java.util.ArrayList.equals(ArrayList.java:561)
> at java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
> at org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
> at org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
> at java.base/java.util.ArrayList.equals(ArrayList.java:561)
> at java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
> at org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
> at org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
> at java.base/java.util.Objects.equals(Objects.java:77)
> at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
> at java.base/java.util.ArrayList.equals(ArrayList.java:561) {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)