[
https://issues.apache.org/jira/browse/NIFI-14627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard resolved NIFI-14627.
-----------------------------------
Resolution: Feedback Received
Apache NiFi 1.x is no longer maintained and no new release is planned on the
1.x release line. Marking as resolved as part of a cleanup operation. Please
open a new one with an updated description if this is still relevant for NiFi
2.x.
> NiFi service failed to start with FlowSerializationException :Could not par
> se flow as a VersionedDataflow
> ----------------------------------------------------------------------------------------------------------
>
> Key: NIFI-14627
> URL: https://issues.apache.org/jira/browse/NIFI-14627
> Project: Apache NiFi
> Issue Type: Bug
> Affects Versions: 1.18.0, 1.23.0, 1.28.0
> Reporter: CHANDAN KUMAR
> Priority: Major
>
> This Jira is created to report BUG where
> NiFi service failing to start due to a corrupted flow.json due to an empty
> template present in the flow.json
> The flow contains an invalid (empty) template that causes
> NullPointerException when parsing the flow json.
> Stack :
> {code:java}
> ERROR org.apache.nifi.web.server.JettyServer: Failed to start Flow Service
> org.apache.nifi.controller.serialization.FlowSerializationException: Could
> not parse flow as a VersionedDataflow
> at
> org.apache.nifi.cluster.protocol.StandardDataFlow.parseVersionedDataflow(StandardDataFlow.java:167)
> at
> org.apache.nifi.cluster.protocol.StandardDataFlow.getVersionedDataflow(StandardDataFlow.java:108)
> at
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.mapCompatibleBundles(VersionedFlowSynchronizer.java:237)
> at
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.sync(VersionedFlowSynchronizer.java:169)
> at
> org.apache.nifi.controller.serialization.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:42)
> at
> org.apache.nifi.controller.FlowController.synchronize(FlowController.java:1530)
> at
> org.apache.nifi.persistence.StandardFlowConfigurationDAO.load(StandardFlowConfigurationDAO.java:104)
> at
> org.apache.nifi.controller.StandardFlowService.loadFromBytes(StandardFlowService.java:817)
> at
> org.apache.nifi.controller.StandardFlowService.load(StandardFlowService.java:457)
> at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:940)
> at org.apache.nifi.NiFi.<init>(NiFi.java:172)
> at org.apache.nifi.NiFi.<init>(NiFi.java:83)
> at org.apache.nifi.NiFi.main(NiFi.java:332)
> Caused by: com.fasterxml.jackson.databind.JsonMappingException: N/A
> at [Source:
> (byte[])"{"encodingVersion":{"majorVersion":2,"minorVersion":0},"maxTimerDrivenThreadCount":256,"maxEventDrivenThreadCount":1,"registries":[],"parameterContext
> s":[{"identifier":"XXXXXXXXXXXXXXXX","instanceIdentifier":"XXXXXXXXXXXXXXX","name":"cem","parameters":[{"name":"cem.prod.dir","desc
> ription":"","sensitive":false,"provided":false,"value":"/path"},{"name":"","description":"","sensitive":
> false,"[truncated 71886960 bytes]; line: 1, column: 1043154] (through
> reference chain:
> org.apache.nifi.controller.flow.VersionedDataflow["templates"]->java.util.HashSet[4]-
> >org.apache.nifi.controller.flow.VersionedTemplate["templateDto"]->org.apache.nifi.web.api.dto.TemplateDTO["snippet"]->org.apache.nifi.web.api.dto.FlowSnippetDTO["processor
> s"])
> at
> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:276)
> at
> com.fasterxml.jackson.databind.deser.SettableBeanProperty._throwAsIOE(SettableBeanProperty.java:630)
> at
> com.fasterxml.jackson.databind.deser.SettableBeanProperty._throwAsIOE(SettableBeanProperty.java:618)
> Caused by: java.lang.NullPointerException: null at
> org.apache.nifi.web.api.dto.FlowSnippetDTO$1.compare(FlowSnippetDTO.java:199)
> at
> org.apache.nifi.web.api.dto.FlowSnippetDTO$1.compare(FlowSnippetDTO.java:196)
> at java.base/java.util.TreeMap.compare(TreeMap.java:1292) at
> java.base/java.util.TreeMap.put(TreeMap.java:536) at
> java.base/java.util.TreeSet.add(TreeSet.java:255) at
> java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:352) at
> java.base/java.util.TreeSet.addAll(TreeSet.java:312) at
> org.apache.nifi.web.api.dto.FlowSnippetDTO.orderedById(FlowSnippetDTO.java:202)
> at
> org.apache.nifi.web.api.dto.FlowSnippetDTO.setProcessors(FlowSnippetDTO.java:162){code}
>
> Corrupt template:
>
> {code:java}
> 53530 {
> 53531 "identifier": "XXXXXXXXXXXXXXXXXXXXXX",
> 53532 "instanceIdentifier": "XXXXXX-XXXXX-XXXXX-XXXXX-XXXXXXX",
> 53533 "name": "KafkaToRedisTemplate",
> 53534 "templateDto": {
> 53535 "id": "XXXXXXXX-defb-3d5a-9de1-XXXXXXXX",
> 53536 "name": "KTemplate",
> 53537 "description": "Consume JSON from Kafka and storeXYZ.",
> 53538 "timestamp": "XX/XX/XXXX" XX:XX:XX GMT",
> 53539 "snippet": {
> 53540 "processGroups": [],
> 53541 "remoteProcessGroups": [],
> 53542 "processors": [
> 53543 {
> 53544 "config": {
> 53545 "properties": {}
> 53546 }
> 53547 }
> 53548 ],
> 53549 "inputPorts": [],
> 53550 "outputPorts": [],
> 53551 "connections": [],
> 53552 "labels": [],
> 53553 "funnels": [],
> 53554 "controllerServices": []
> 53555 }
> 53556 },
> 53557 "componentType": "TEMPLATE",
> 53558 "groupIdentifier": "ZXXXXXXX-0196-1000-XXXXX-XXXXXXXX"
> 53559 },{code}
> I feel between flow.xml and flow.json transition there is some issue
> resulting templated being corrupted as I would Not believe that one would
> upload an empty template in NIFI
> Solution : Remove the problematic template from flow.json and use updated
> flow.json.gz to start the service
> Though templates and flow.xml are limited to NiFi 1.X but worth reporting
> Thank you
--
This message was sent by Atlassian Jira
(v8.20.10#820010)