[ https://issues.apache.org/jira/browse/NIFI-7893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Khodabakhsh updated NIFI-7893: ------------------------------------- Description: On Nifi 1.11.4 and 1.12.1, I intermittently am unable to view the provenance in the UI and through the `nipyapi` python library. Checking the logs, I get the following message: {code:java} 2020-10-06 22:12:39,789 INFO [Timer-Driven Process Thread-10] o.a.n.p.store.WriteAheadStorePartition Successfully rolled over Event Writer for Provenance Event Store Partition[directory=./provenance_repository] due to MAX_TIME_REACHED 2020-10-06 22:12:39,789 ERROR [Compress Provenance Logs-1-thread-2] o.a.n.p.s.EventFileCompressor Failed to compress ./provenance_repository/0.prov on rollover java.io.FileNotFoundException: ./provenance_repository/0.prov (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at org.apache.nifi.provenance.serialization.EventFileCompressor.compress(EventFileCompressor.java:164) at org.apache.nifi.provenance.serialization.EventFileCompressor.run(EventFileCompressor.java:115) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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){code} Setting `nifi.provenance.repository.compress.on.rollover=false` fixes this. Here's a copy of all my `nifi.provenance.repository` settings from `nifi.properties`: {code:java} # Provenance Repository Properties nifi.provenance.repository.implementation=org.apache.nifi.provenance.WriteAheadProvenanceRepository nifi.provenance.repository.debug.frequency=1_000_000 nifi.provenance.repository.encryption.key.provider.implementation= nifi.provenance.repository.encryption.key.provider.location= nifi.provenance.repository.encryption.key.id= nifi.provenance.repository.encryption.key= # Persistent Provenance Repository Properties nifi.provenance.repository.directory.default=./provenance_repository nifi.provenance.repository.max.storage.time=24 hours nifi.provenance.repository.max.storage.size=1 GB nifi.provenance.repository.rollover.time=30 secs nifi.provenance.repository.rollover.size=100 MB nifi.provenance.repository.query.threads=2 nifi.provenance.repository.index.threads=2 nifi.provenance.repository.compress.on.rollover=false nifi.provenance.repository.always.sync=false # Comma-separated list of fields. Fields that are not indexed will not be searchable. Valid fields are: # EventType, FlowFileUUID, Filename, TransitURI, ProcessorID, AlternateIdentifierURI, Relationship, Details nifi.provenance.repository.indexed.fields=EventType, FlowFileUUID, Filename, ProcessorID, Relationship # FlowFile Attributes that should be indexed and made searchable. Some examples to consider are filename, uuid, mime.type nifi.provenance.repository.indexed.attributes= # Large values for the shard size will result in more Java heap usage when searching the Provenance Repository # but should provide better performance nifi.provenance.repository.index.shard.size=500 MB # Indicates the maximum length that a FlowFile attribute can be when retrieving a Provenance Event from # the repository. If the length of any attribute exceeds this value, it will be truncated when the event is retrieved. nifi.provenance.repository.max.attribute.length=65536 nifi.provenance.repository.concurrent.merge.threads=2 # Volatile Provenance Respository Properties nifi.provenance.repository.buffer.size=100000 {code} was: On Nifi 1.11.4 and 1.12.1, I intermittently am unable to view the provenance in the UI and through the `nipyapi` python library. Checking the logs, I get the following message: ``` {color:#ff0000}2020-10-06 22:12:39,789 INFO [Timer-Driven Process Thread-10] o.a.n.p.store.WriteAheadStorePartition Successfully rolled over Event Writer for Provenance Event Store Partition[directory=./provenance_repository] due to MAX_TIME_REACHED 2020-10-06 22:12:39,789 ERROR [Compress Provenance Logs-1-thread-2] o.a.n.p.s.EventFileCompressor Failed to compress ./provenance_repository/0.prov on rollover java.io.FileNotFoundException: ./provenance_repository/0.prov (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at org.apache.nifi.provenance.serialization.EventFileCompressor.compress(EventFileCompressor.java:164) at org.apache.nifi.provenance.serialization.EventFileCompressor.run(EventFileCompressor.java:115) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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){color} ``` Setting `nifi.provenance.repository.compress.on.rollover=false` fixes this. Here's a copy of all my `nifi.provenance.repository` settings from `nifi.properties`: ``` {color:#6a9955}# Provenance Repository Properties{color} {color:#569cd6}nifi.provenance.repository.implementation{color}{color:#d4d4d4}=org.apache.nifi.provenance.WriteAheadProvenanceRepository{color} {color:#569cd6}nifi.provenance.repository.debug.frequency{color}{color:#d4d4d4}=1_000_000{color} {color:#569cd6}nifi.provenance.repository.encryption.key.provider.implementation{color}{color:#d4d4d4}={color} {color:#569cd6}nifi.provenance.repository.encryption.key.provider.location{color}{color:#d4d4d4}={color} {color:#569cd6}nifi.provenance.repository.encryption.key.id{color}{color:#d4d4d4}={color} {color:#569cd6}nifi.provenance.repository.encryption.key{color}{color:#d4d4d4}={color} {color:#6a9955}# Persistent Provenance Repository Properties{color} {color:#569cd6}nifi.provenance.repository.directory.default{color}{color:#d4d4d4}=./provenance_repository{color} {color:#569cd6}nifi.provenance.repository.max.storage.time{color}{color:#d4d4d4}=24 hours{color} {color:#569cd6}nifi.provenance.repository.max.storage.size{color}{color:#d4d4d4}=1 GB{color} {color:#569cd6}nifi.provenance.repository.rollover.time{color}{color:#d4d4d4}=30 secs{color} {color:#569cd6}nifi.provenance.repository.rollover.size{color}{color:#d4d4d4}=100 MB{color} {color:#569cd6}nifi.provenance.repository.query.threads{color}{color:#d4d4d4}=2{color} {color:#569cd6}nifi.provenance.repository.index.threads{color}{color:#d4d4d4}=2{color} {color:#569cd6}nifi.provenance.repository.compress.on.rollover{color}{color:#d4d4d4}=false{color} {color:#569cd6}nifi.provenance.repository.always.sync{color}{color:#d4d4d4}=false{color} {color:#6a9955}# Comma-separated list of fields. Fields that are not indexed will not be searchable. Valid fields are:{color} {color:#6a9955}# EventType, FlowFileUUID, Filename, TransitURI, ProcessorID, AlternateIdentifierURI, Relationship, Details{color} {color:#569cd6}nifi.provenance.repository.indexed.fields{color}{color:#d4d4d4}=EventType, FlowFileUUID, Filename, ProcessorID, Relationship{color} {color:#6a9955}# FlowFile Attributes that should be indexed and made searchable. Some examples to consider are filename, uuid, mime.type{color} {color:#569cd6}nifi.provenance.repository.indexed.attributes{color}{color:#d4d4d4}={color} {color:#6a9955}# Large values for the shard size will result in more Java heap usage when searching the Provenance Repository{color} {color:#6a9955}# but should provide better performance{color} {color:#569cd6}nifi.provenance.repository.index.shard.size{color}{color:#d4d4d4}=500 MB{color} {color:#6a9955}# Indicates the maximum length that a FlowFile attribute can be when retrieving a Provenance Event from{color} {color:#6a9955}# the repository. If the length of any attribute exceeds this value, it will be truncated when the event is retrieved.{color} {color:#569cd6}nifi.provenance.repository.max.attribute.length{color}{color:#d4d4d4}=65536{color} {color:#569cd6}nifi.provenance.repository.concurrent.merge.threads{color}{color:#d4d4d4}=2{color} {color:#6a9955}# Volatile Provenance Respository Properties{color} {color:#569cd6}nifi.provenance.repository.buffer.size{color}{color:#d4d4d4}=100000{color} {color:#d4d4d4}```{color} > Provenance is blank is `nifi.provenance.repository.compress.on.rollover` is > set to `true` > ----------------------------------------------------------------------------------------- > > Key: NIFI-7893 > URL: https://issues.apache.org/jira/browse/NIFI-7893 > Project: Apache NiFi > Issue Type: Bug > Components: Core Framework > Affects Versions: 1.11.4, 1.12.1 > Environment: Docker 19.03.13 > Image: apache/nifi:1.12.1 > Python: nipyapi: 0.14.1 > Reporter: Daniel Khodabakhsh > Priority: Major > > On Nifi 1.11.4 and 1.12.1, I intermittently am unable to view the provenance > in the UI and through the `nipyapi` python library. > Checking the logs, I get the following message: > {code:java} > 2020-10-06 22:12:39,789 INFO [Timer-Driven Process Thread-10] > o.a.n.p.store.WriteAheadStorePartition Successfully rolled over Event Writer > for Provenance Event Store Partition[directory=./provenance_repository] due > to MAX_TIME_REACHED > 2020-10-06 22:12:39,789 ERROR [Compress Provenance Logs-1-thread-2] > o.a.n.p.s.EventFileCompressor Failed to compress > ./provenance_repository/0.prov on rollover > java.io.FileNotFoundException: ./provenance_repository/0.prov (No such file > or directory) > at java.io.FileInputStream.open0(Native Method) > at java.io.FileInputStream.open(FileInputStream.java:195) > at java.io.FileInputStream.<init>(FileInputStream.java:138) > at > org.apache.nifi.provenance.serialization.EventFileCompressor.compress(EventFileCompressor.java:164) > at > org.apache.nifi.provenance.serialization.EventFileCompressor.run(EventFileCompressor.java:115) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > 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){code} > Setting `nifi.provenance.repository.compress.on.rollover=false` fixes this. > Here's a copy of all my `nifi.provenance.repository` settings from > `nifi.properties`: > {code:java} > # Provenance Repository Properties > > nifi.provenance.repository.implementation=org.apache.nifi.provenance.WriteAheadProvenanceRepository > nifi.provenance.repository.debug.frequency=1_000_000 > nifi.provenance.repository.encryption.key.provider.implementation= > nifi.provenance.repository.encryption.key.provider.location= > nifi.provenance.repository.encryption.key.id= > nifi.provenance.repository.encryption.key= > # Persistent Provenance Repository Properties > nifi.provenance.repository.directory.default=./provenance_repository > nifi.provenance.repository.max.storage.time=24 hours > nifi.provenance.repository.max.storage.size=1 GB > nifi.provenance.repository.rollover.time=30 secs > nifi.provenance.repository.rollover.size=100 MB > nifi.provenance.repository.query.threads=2 > nifi.provenance.repository.index.threads=2 > nifi.provenance.repository.compress.on.rollover=false > nifi.provenance.repository.always.sync=false > # Comma-separated list of fields. Fields that are not indexed will not be > searchable. Valid fields are: > # EventType, FlowFileUUID, Filename, TransitURI, ProcessorID, > AlternateIdentifierURI, Relationship, Details > nifi.provenance.repository.indexed.fields=EventType, FlowFileUUID, Filename, > ProcessorID, Relationship > # FlowFile Attributes that should be indexed and made searchable. Some > examples to consider are filename, uuid, mime.type > nifi.provenance.repository.indexed.attributes= > # Large values for the shard size will result in more Java heap usage when > searching the Provenance Repository > # but should provide better performance > nifi.provenance.repository.index.shard.size=500 MB > # Indicates the maximum length that a FlowFile attribute can be when > retrieving a Provenance Event from > # the repository. If the length of any attribute exceeds this value, it will > be truncated when the event is retrieved. > nifi.provenance.repository.max.attribute.length=65536 > nifi.provenance.repository.concurrent.merge.threads=2 > # Volatile Provenance Respository Properties > nifi.provenance.repository.buffer.size=100000 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)