[jira] [Commented] (NIFI-5628) Verify content length on replicated requests

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629638#comment-16629638
 ] 

ASF GitHub Bot commented on NIFI-5628:
--

Github user mcgilman commented on the issue:

https://github.com/apache/nifi/pull/3035
  
Will review...


> Verify content length on replicated requests
> 
>
> Key: NIFI-5628
> URL: https://issues.apache.org/jira/browse/NIFI-5628
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.5.0, 1.6.0, 1.7.0, 1.7.1
>Reporter: Andy LoPresto
>Assignee: Andy LoPresto
>Priority: Critical
>
> Verify the content-length of requests when replicated in the cluster. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi issue #3035: NIFI-5628 Added content length check to OkHttpReplicationC...

2018-09-26 Thread mcgilman
Github user mcgilman commented on the issue:

https://github.com/apache/nifi/pull/3035
  
Will review...


---


[jira] [Updated] (NIFI-5628) Verify content length on replicated requests

2018-09-26 Thread Andy LoPresto (JIRA)


 [ 
https://issues.apache.org/jira/browse/NIFI-5628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy LoPresto updated NIFI-5628:

Status: Patch Available  (was: In Progress)

> Verify content length on replicated requests
> 
>
> Key: NIFI-5628
> URL: https://issues.apache.org/jira/browse/NIFI-5628
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.7.1, 1.7.0, 1.6.0, 1.5.0
>Reporter: Andy LoPresto
>Assignee: Andy LoPresto
>Priority: Critical
>
> Verify the content-length of requests when replicated in the cluster. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (NIFI-5628) Verify content length on replicated requests

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629631#comment-16629631
 ] 

ASF GitHub Bot commented on NIFI-5628:
--

GitHub user alopresto opened a pull request:

https://github.com/apache/nifi/pull/3035

NIFI-5628 Added content length check to OkHttpReplicationClient.

Added unit tests.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [x] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [x] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [x] Is your initial contribution a single, squashed commit?

### For code changes:
- [x] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [x] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/alopresto/nifi NIFI-5628

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3035.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3035


commit 1baead6f525046a613fc4fe494a0d193776ea70f
Author: Andy LoPresto 
Date:   2018-09-27T01:18:22Z

NIFI-5628 Added content length check to OkHttpReplicationClient.
Added unit tests.




> Verify content length on replicated requests
> 
>
> Key: NIFI-5628
> URL: https://issues.apache.org/jira/browse/NIFI-5628
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.5.0, 1.6.0, 1.7.0, 1.7.1
>Reporter: Andy LoPresto
>Assignee: Andy LoPresto
>Priority: Critical
>
> Verify the content-length of requests when replicated in the cluster. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi pull request #3035: NIFI-5628 Added content length check to OkHttpRepli...

2018-09-26 Thread alopresto
GitHub user alopresto opened a pull request:

https://github.com/apache/nifi/pull/3035

NIFI-5628 Added content length check to OkHttpReplicationClient.

Added unit tests.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [x] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [x] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [x] Is your initial contribution a single, squashed commit?

### For code changes:
- [x] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [x] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/alopresto/nifi NIFI-5628

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3035.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3035


commit 1baead6f525046a613fc4fe494a0d193776ea70f
Author: Andy LoPresto 
Date:   2018-09-27T01:18:22Z

NIFI-5628 Added content length check to OkHttpReplicationClient.
Added unit tests.




---


[jira] [Updated] (NIFIREG-203) Apache Nifi Registry with Git Integration

2018-09-26 Thread Vijay Mathew (JIRA)


 [ 
https://issues.apache.org/jira/browse/NIFIREG-203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vijay Mathew updated NIFIREG-203:
-
Priority: Critical  (was: Major)

> Apache Nifi Registry with Git Integration
> -
>
> Key: NIFIREG-203
> URL: https://issues.apache.org/jira/browse/NIFIREG-203
> Project: NiFi Registry
>  Issue Type: Bug
>Reporter: Vijay Mathew
>Priority: Critical
>
> Please note that the below issue is occurring in the Windows environment.
> From the Nifi V1.7 UI, I am able to commit a test process group to the Git 
> Repository, however, when I try to import the process group from Git, UI 
> throws an exception "The Flow Registry with ID {} reports that no Flow exists 
> with Bucket {}, Flow {}, Version {}".Below is the logs from Registry
> 2018-09-26 19:45:11,543 WARN [NiFi Registry Web Server-19] 
> o.a.n.registry.service.RegistryService The specified bucket id 
> [64df4f73-160d-4c19-b47c-563804263300] does not exist.
> 2018-09-26 19:45:11,544 INFO [NiFi Registry Web Server-19] 
> o.a.n.r.w.m.ResourceNotFoundExceptionMapper 
> org.apache.nifi.registry.exception.ResourceNotFoundException: The specified 
> bucket ID does not exist in this registry.. Returning Not Found response.
> 2018-09-26 19:45:49,325 ERROR [NiFi Registry Web Server-19] 
> o.a.n.r.web.mapper.ThrowableMapper An unexpected error has occurred: 
> java.lang.NullPointerException. Returning Internal Server Error response.
> java.lang.NullPointerException: null
> at org.eclipse.jgit.lib.Repository.resolve(Repository.java:526) 
> ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r]
> at org.eclipse.jgit.lib.Repository.resolve(Repository.java:487) 
> ~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r]
> at 
> org.apache.nifi.registry.provider.flow.git.GitFlowMetaData.getContent(GitFlowMetaData.java:422)
>  ~[nifi-registry-framework-0.3.0.jar:0.3.0]
> at 
> org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider.getFlowContent(GitFlowPersistenceProvider.java:180)
>  ~[nifi-registry-framework-0.3.0.jar:0.3.0]
> at org.apache.nifi.registry.service.RegistryService.g



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (NIFIREG-203) Apache Nifi Registry with Git Integration

2018-09-26 Thread Vijay Mathew (JIRA)
Vijay Mathew created NIFIREG-203:


 Summary: Apache Nifi Registry with Git Integration
 Key: NIFIREG-203
 URL: https://issues.apache.org/jira/browse/NIFIREG-203
 Project: NiFi Registry
  Issue Type: Bug
Reporter: Vijay Mathew


Please note that the below issue is occurring in the Windows environment.

>From the Nifi V1.7 UI, I am able to commit a test process group to the Git 
>Repository, however, when I try to import the process group from Git, UI 
>throws an exception "The Flow Registry with ID {} reports that no Flow exists 
>with Bucket {}, Flow {}, Version {}".Below is the logs from Registry

2018-09-26 19:45:11,543 WARN [NiFi Registry Web Server-19] 
o.a.n.registry.service.RegistryService The specified bucket id 
[64df4f73-160d-4c19-b47c-563804263300] does not exist.
2018-09-26 19:45:11,544 INFO [NiFi Registry Web Server-19] 
o.a.n.r.w.m.ResourceNotFoundExceptionMapper 
org.apache.nifi.registry.exception.ResourceNotFoundException: The specified 
bucket ID does not exist in this registry.. Returning Not Found response.
2018-09-26 19:45:49,325 ERROR [NiFi Registry Web Server-19] 
o.a.n.r.web.mapper.ThrowableMapper An unexpected error has occurred: 
java.lang.NullPointerException. Returning Internal Server Error response.
java.lang.NullPointerException: null
at org.eclipse.jgit.lib.Repository.resolve(Repository.java:526) 
~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r]
at org.eclipse.jgit.lib.Repository.resolve(Repository.java:487) 
~[org.eclipse.jgit-4.11.0.201803080745-r.jar:4.11.0.201803080745-r]
at 
org.apache.nifi.registry.provider.flow.git.GitFlowMetaData.getContent(GitFlowMetaData.java:422)
 ~[nifi-registry-framework-0.3.0.jar:0.3.0]
at 
org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider.getFlowContent(GitFlowPersistenceProvider.java:180)
 ~[nifi-registry-framework-0.3.0.jar:0.3.0]
at org.apache.nifi.registry.service.RegistryService.g



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (NIFI-5638) AvroReader Schema Access Strategy "Use 'Schema Text' Property" is ineffiecient.

2018-09-26 Thread Stefan Kupstaitis-Dunkler (JIRA)
Stefan Kupstaitis-Dunkler created NIFI-5638:
---

 Summary: AvroReader Schema Access Strategy "Use 'Schema Text' 
Property" is ineffiecient.
 Key: NIFI-5638
 URL: https://issues.apache.org/jira/browse/NIFI-5638
 Project: Apache NiFi
  Issue Type: Bug
  Components: Core Framework
Affects Versions: 1.7.0, 1.6.0, 1.5.0
Reporter: Stefan Kupstaitis-Dunkler


AvroReader Schema Access Strategy "Use 'Schema Text' Property" is ineffiecient, 
because schema is getting parsed for every record, discovered by [~markap14].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (NIFI-5637) Swappiness recommendation

2018-09-26 Thread Ron Isaacson (JIRA)
Ron Isaacson created NIFI-5637:
--

 Summary: Swappiness recommendation
 Key: NIFI-5637
 URL: https://issues.apache.org/jira/browse/NIFI-5637
 Project: Apache NiFi
  Issue Type: Task
  Components: Documentation  Website
Reporter: Ron Isaacson


Looking at the [System Administrator's 
Guide|https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html], I 
see that you recommend setting vm.swappiness = 0 in /etc/sysctl.conf. This 
is fine in most cases, but must be avoided on RHEL 6.4 through 6.7.

On RedHat kernels pre-2.6.32-642, there's a bug which can cause the OOM 
killer to aggressively kill processes even when RAM is still available and 
swap is unused. See [this RedHat 
article|https://access.redhat.com/solutions/1149413] for more information. (A 
RedHat support login is required; if you don't have one, please contact me.)

I kindly recommend you add a note to your docs advising users not to apply 
this setting on affected kernels. Thank you!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (NIFI-5224) Add SolrClientService

2018-09-26 Thread Mike Thomsen (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629334#comment-16629334
 ] 

Mike Thomsen commented on NIFI-5224:


Congratulations! That certainly is a good reason to have no time these days!

Unless I hear back saying otherwise, I'll unassign you from any tickets you're 
assigned to at some point soon.

> Add SolrClientService
> -
>
> Key: NIFI-5224
> URL: https://issues.apache.org/jira/browse/NIFI-5224
> Project: Apache NiFi
>  Issue Type: Improvement
>Reporter: Johannes Peter
>Assignee: Mike Thomsen
>Priority: Major
>
> The Solr CRUD functions that are currently included in SolrUtils should be 
> moved to a controller service. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (NIFI-5224) Add SolrClientService

2018-09-26 Thread Mike Thomsen (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629334#comment-16629334
 ] 

Mike Thomsen edited comment on NIFI-5224 at 9/26/18 8:05 PM:
-

Congratulations! That certainly is a good reason to have no time these days!

Unless I hear back saying otherwise, I'll unassign you from any tickets you're 
assigned to at some point soon. That way you won't get bothered anymore.


was (Author: mike.thomsen):
Congratulations! That certainly is a good reason to have no time these days!

Unless I hear back saying otherwise, I'll unassign you from any tickets you're 
assigned to at some point soon.

> Add SolrClientService
> -
>
> Key: NIFI-5224
> URL: https://issues.apache.org/jira/browse/NIFI-5224
> Project: Apache NiFi
>  Issue Type: Improvement
>Reporter: Johannes Peter
>Assignee: Mike Thomsen
>Priority: Major
>
> The Solr CRUD functions that are currently included in SolrUtils should be 
> moved to a controller service. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-578) Validate that Content-Length is being sent for agent posts.

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-578:
-
Fix Version/s: 0.5.0

> Validate that Content-Length is being sent for agent posts. 
> 
>
> Key: MINIFICPP-578
> URL: https://issues.apache.org/jira/browse/MINIFICPP-578
> Project: NiFi MiNiFi C++
>  Issue Type: Question
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.5.0
>
>
> It would help to have the content length. I'm fairly certain that it exists, 
> but this ticket is to open that question when time allows. If it does not 
> exist this can be changed to a bug to merge it. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-578) Validate that Content-Length is being sent for agent posts.

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-578.
--
Resolution: Fixed

> Validate that Content-Length is being sent for agent posts. 
> 
>
> Key: MINIFICPP-578
> URL: https://issues.apache.org/jira/browse/MINIFICPP-578
> Project: NiFi MiNiFi C++
>  Issue Type: Question
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.5.0
>
>
> It would help to have the content length. I'm fairly certain that it exists, 
> but this ticket is to open that question when time allows. If it does not 
> exist this can be changed to a bug to merge it. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-527) Change Build versions.

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-527.
--
Resolution: Fixed

> Change Build versions. 
> ---
>
> Key: MINIFICPP-527
> URL: https://issues.apache.org/jira/browse/MINIFICPP-527
> Project: NiFi MiNiFi C++
>  Issue Type: Bug
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.6.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-537) Fix internal UUID BUILD

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-537.
--
Resolution: Fixed

Appears to be resolved with the windows functionality

> Fix internal UUID BUILD
> ---
>
> Key: MINIFICPP-537
> URL: https://issues.apache.org/jira/browse/MINIFICPP-537
> Project: NiFi MiNiFi C++
>  Issue Type: Sub-task
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>
> cmake -DUSE_SYSTEM_UUID= .. fails to build. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-527) Change Build versions.

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-527:
-
Fix Version/s: 0.6.0

> Change Build versions. 
> ---
>
> Key: MINIFICPP-527
> URL: https://issues.apache.org/jira/browse/MINIFICPP-527
> Project: NiFi MiNiFi C++
>  Issue Type: Bug
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.6.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-537) Fix internal UUID BUILD

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-537:
-
Fix Version/s: 0.6.0

> Fix internal UUID BUILD
> ---
>
> Key: MINIFICPP-537
> URL: https://issues.apache.org/jira/browse/MINIFICPP-537
> Project: NiFi MiNiFi C++
>  Issue Type: Sub-task
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.6.0
>
>
> cmake -DUSE_SYSTEM_UUID= .. fails to build. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-17) C++11 Structural changes

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-17?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-17.
-
Resolution: Fixed

> C++11 Structural changes
> 
>
> Key: MINIFICPP-17
> URL: https://issues.apache.org/jira/browse/MINIFICPP-17
> Project: NiFi MiNiFi C++
>  Issue Type: Bug
>Reporter: Mr TheSegfault
>Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-347) Need Test Harness for Processors

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-347.
--
   Resolution: Fixed
 Assignee: Mr TheSegfault
Fix Version/s: 0.3.0

> Need Test Harness for Processors
> 
>
> Key: MINIFICPP-347
> URL: https://issues.apache.org/jira/browse/MINIFICPP-347
> Project: NiFi MiNiFi C++
>  Issue Type: Test
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.3.0
>
>
> To facilitate testing we need a test harness to load, initialize, execute, 
> and otherwise stress test processors that are created. The tests that we do 
> have duplicate efforts that can be built into a clean test harness. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-288) Push flowfiles directly to a processor once persisted to avoid relying on spills to enforce state transition

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-288:
-
Labels: CAPI  (was: )

> Push flowfiles directly to a processor once persisted to avoid relying on 
> spills to enforce state transition
> 
>
> Key: MINIFICPP-288
> URL: https://issues.apache.org/jira/browse/MINIFICPP-288
> Project: NiFi MiNiFi C++
>  Issue Type: Improvement
>Reporter: Mr TheSegfault
>Priority: Major
>  Labels: CAPI
>
> Currently we may rely on multiple threads that ultimately rely on state 
> transition through the repositories; however, we may be able to avoid this 
> and do some of the work serially. This should be detectable – this will also 
> facilitate using the C API and improve throughput and need for repositories. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-288) Push flowfiles directly to a processor once persisted to avoid relying on spills to enforce state transition

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-288:
-
Description: Currently we may rely on multiple threads that ultimately rely 
on state transition through the repositories; however, we may be able to avoid 
this and do some of the work serially. This should be detectable – this will 
also facilitate using the C API and improve throughput and need for 
repositories.   (was: Currently we may rely on multiple threads that ultimately 
rely on state transition through the repositories; however, we may be able to 
avoid this and do some of the work serially. This should be detectable. )

> Push flowfiles directly to a processor once persisted to avoid relying on 
> spills to enforce state transition
> 
>
> Key: MINIFICPP-288
> URL: https://issues.apache.org/jira/browse/MINIFICPP-288
> Project: NiFi MiNiFi C++
>  Issue Type: Improvement
>Reporter: Mr TheSegfault
>Priority: Major
>
> Currently we may rely on multiple threads that ultimately rely on state 
> transition through the repositories; however, we may be able to avoid this 
> and do some of the work serially. This should be detectable – this will also 
> facilitate using the C API and improve throughput and need for repositories. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-591) Investigate batching feature in packet capture.

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-591.
--
Resolution: Invalid

> Investigate batching feature in packet capture. 
> 
>
> Key: MINIFICPP-591
> URL: https://issues.apache.org/jira/browse/MINIFICPP-591
> Project: NiFi MiNiFi C++
>  Issue Type: Test
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (MINIFICPP-438) Expression language test fails with json unescape procedure

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault resolved MINIFICPP-438.
--
Resolution: Fixed

> Expression language test fails with json unescape procedure
> ---
>
> Key: MINIFICPP-438
> URL: https://issues.apache.org/jira/browse/MINIFICPP-438
> Project: NiFi MiNiFi C++
>  Issue Type: Improvement
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.5.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-438) Expression language test fails with json unescape procedure

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-438:
-
Fix Version/s: 0.5.0

> Expression language test fails with json unescape procedure
> ---
>
> Key: MINIFICPP-438
> URL: https://issues.apache.org/jira/browse/MINIFICPP-438
> Project: NiFi MiNiFi C++
>  Issue Type: Improvement
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
> Fix For: 0.5.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-493) Create referenced content repository

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-493:
-
Labels: CAPI  (was: )

> Create referenced content repository
> 
>
> Key: MINIFICPP-493
> URL: https://issues.apache.org/jira/browse/MINIFICPP-493
> Project: NiFi MiNiFi C++
>  Issue Type: Sub-task
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>  Labels: CAPI
>
> The content file system content repository moves a file into the content 
> repo; however, for the purposes of the C API this isn't necessary. Nor is 
> allocating memory when using the volatile repos. As a result, a referenced 
> content repo would keep the content in place that is imported ( Such as 
> GetFile ).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-490) Create common recipes based on the C & C2 api

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-490:
-
Labels: CAPI  (was: )

> Create common recipes based on the C & C2 api
> -
>
> Key: MINIFICPP-490
> URL: https://issues.apache.org/jira/browse/MINIFICPP-490
> Project: NiFi MiNiFi C++
>  Issue Type: Sub-task
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>  Labels: CAPI
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (MINIFICPP-485) Create C connectors for MiNiFi C++ C2 operations

2018-09-26 Thread Mr TheSegfault (JIRA)


 [ 
https://issues.apache.org/jira/browse/MINIFICPP-485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mr TheSegfault updated MINIFICPP-485:
-
Labels: CAPI  (was: )

> Create C connectors for MiNiFi C++ C2 operations
> 
>
> Key: MINIFICPP-485
> URL: https://issues.apache.org/jira/browse/MINIFICPP-485
> Project: NiFi MiNiFi C++
>  Issue Type: Epic
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>  Labels: CAPI
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (NIFI-5479) Upgrade version of Jetty

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629210#comment-16629210
 ] 

ASF GitHub Bot commented on NIFI-5479:
--

Github user thenatog commented on the issue:

https://github.com/apache/nifi/pull/3034
  
Let me know whether the way I've changed these dependencies is acceptable. 
The dependencies that were modified were causing WARN messages to be shown when 
NiFi started, for example:

```
2018-09-26 14:07:54,806 WARN [NiFi Web Server-21] 
o.e.jetty.annotations.AnnotationParser javax.inject.Provider scanned from 
multiple locations: 
jar:file:///.../.../.../nifi/nifi-assembly/target/nifi-1.8.0-SNAPSHOT-bin/nifi-1.8.0-SNAPSHOT/work/jetty/nifi-update-attribute-ui-1.8.0-SNAPSHOT.war/webapp/WEB-INF/lib/javax.inject-1.jar!/javax/inject/Provi
der.class, 
jar:file:///.../.../.../nifi/nifi-assembly/target/nifi-1.8.0-SNAPSHOT-bin/nifi-1.8.0-SNAPSHOT/work/jetty/nifi-update-attribute-ui-1.8.0-SNAPSHOT.war/webapp/WEB-INF/lib/javax.inject-2.5.0-b42.jar!/javax/inject/Provider.class
```

This was a result of the Jetty AnnotationParser scanning all classes for 
annotations. It would add these to a list of scanned classes, and if a new 
class is scanned which has a previous entry it emits a warning. 

We saw these warnings for a few reasons:
* servlet-api was resolving as 'compile' rather than 'provided', causing it 
to be included in two places and then scanned twice.
* Some libraries were transitive dependencies with older versions.
* Some transitive dependencies were what appeared to be repackaged 
dependencies ie. bundled in a different package name but the same set of 
classes within.


> Upgrade version of Jetty
> 
>
> Key: NIFI-5479
> URL: https://issues.apache.org/jira/browse/NIFI-5479
> Project: Apache NiFi
>  Issue Type: Improvement
>  Components: Core Framework
>Affects Versions: 1.7.1
>Reporter: Andy LoPresto
>Assignee: Matt Gilman
>Priority: Blocker
> Fix For: 1.8.0
>
>
> Upgrade to a new version of Jetty. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi issue #3034: NIFI-5479 - Fixed up dependencies to remove the WARNs caus...

2018-09-26 Thread thenatog
Github user thenatog commented on the issue:

https://github.com/apache/nifi/pull/3034
  
Let me know whether the way I've changed these dependencies is acceptable. 
The dependencies that were modified were causing WARN messages to be shown when 
NiFi started, for example:

```
2018-09-26 14:07:54,806 WARN [NiFi Web Server-21] 
o.e.jetty.annotations.AnnotationParser javax.inject.Provider scanned from 
multiple locations: 
jar:file:///.../.../.../nifi/nifi-assembly/target/nifi-1.8.0-SNAPSHOT-bin/nifi-1.8.0-SNAPSHOT/work/jetty/nifi-update-attribute-ui-1.8.0-SNAPSHOT.war/webapp/WEB-INF/lib/javax.inject-1.jar!/javax/inject/Provi
der.class, 
jar:file:///.../.../.../nifi/nifi-assembly/target/nifi-1.8.0-SNAPSHOT-bin/nifi-1.8.0-SNAPSHOT/work/jetty/nifi-update-attribute-ui-1.8.0-SNAPSHOT.war/webapp/WEB-INF/lib/javax.inject-2.5.0-b42.jar!/javax/inject/Provider.class
```

This was a result of the Jetty AnnotationParser scanning all classes for 
annotations. It would add these to a list of scanned classes, and if a new 
class is scanned which has a previous entry it emits a warning. 

We saw these warnings for a few reasons:
* servlet-api was resolving as 'compile' rather than 'provided', causing it 
to be included in two places and then scanned twice.
* Some libraries were transitive dependencies with older versions.
* Some transitive dependencies were what appeared to be repackaged 
dependencies ie. bundled in a different package name but the same set of 
classes within.


---


[jira] [Commented] (NIFI-5479) Upgrade version of Jetty

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629202#comment-16629202
 ] 

ASF GitHub Bot commented on NIFI-5479:
--

GitHub user thenatog opened a pull request:

https://github.com/apache/nifi/pull/3034

NIFI-5479 - Fixed up dependencies to remove the WARNs caused by the A…

…nnotationParser in Jetty.

NIFI-5479 - Deleted instead of commented out.

NIFI-5479 - Removed empty line.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [x] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [x] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [x] Is your initial contribution a single, squashed commit?

### For code changes:
- [x] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/thenatog/nifi NIFI-5479-rebased

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3034.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3034


commit ea70a2dd6f2b8a5e45970696f85f02078bc5bc87
Author: thenatog 
Date:   2018-09-07T16:39:18Z

NIFI-5479 - Fixed up dependencies to remove the WARNs caused by the 
AnnotationParser in Jetty.

NIFI-5479 - Deleted instead of commented out.

NIFI-5479 - Removed empty line.




> Upgrade version of Jetty
> 
>
> Key: NIFI-5479
> URL: https://issues.apache.org/jira/browse/NIFI-5479
> Project: Apache NiFi
>  Issue Type: Improvement
>  Components: Core Framework
>Affects Versions: 1.7.1
>Reporter: Andy LoPresto
>Assignee: Matt Gilman
>Priority: Blocker
> Fix For: 1.8.0
>
>
> Upgrade to a new version of Jetty. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi pull request #3034: NIFI-5479 - Fixed up dependencies to remove the WAR...

2018-09-26 Thread thenatog
GitHub user thenatog opened a pull request:

https://github.com/apache/nifi/pull/3034

NIFI-5479 - Fixed up dependencies to remove the WARNs caused by the A…

…nnotationParser in Jetty.

NIFI-5479 - Deleted instead of commented out.

NIFI-5479 - Removed empty line.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [x] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [x] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [x] Is your initial contribution a single, squashed commit?

### For code changes:
- [x] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/thenatog/nifi NIFI-5479-rebased

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3034.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3034


commit ea70a2dd6f2b8a5e45970696f85f02078bc5bc87
Author: thenatog 
Date:   2018-09-07T16:39:18Z

NIFI-5479 - Fixed up dependencies to remove the WARNs caused by the 
AnnotationParser in Jetty.

NIFI-5479 - Deleted instead of commented out.

NIFI-5479 - Removed empty line.




---


[jira] [Commented] (NIFI-5629) GetFile becomes slow listing vast directories

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16629004#comment-16629004
 ] 

ASF GitHub Bot commented on NIFI-5629:
--

GitHub user adyoun2 opened a pull request:

https://github.com/apache/nifi/pull/3033

NIFI-5629 GetFile vast listing performance

See related PR. When the number of files to pickup becomes a certain size, 
the OS can become slow performing the listing, so re-use this listing multiple 
times.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/adyoun2/nifi 
NIFI-5629-GetFile-vast-directory-re-use-listing

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3033.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3033


commit d06534647b7d2aef2069dfebebf4bea3651a8b69
Author: adyoun2 
Date:   2018-09-26T16:14:55Z

NIFI-5629 GetFile continues to use the same listing stream until 1 
files or no files remain




> GetFile becomes slow listing vast directories
> -
>
> Key: NIFI-5629
> URL: https://issues.apache.org/jira/browse/NIFI-5629
> Project: Apache NiFi
>  Issue Type: Improvement
>  Components: Extensions
>Affects Versions: 1.6.0
>Reporter: Adam
>Priority: Minor
>
> GetFile repeatedly lists entire directories before applying batching, meaning 
> for vast directories it spends a long time listing directories.
>  
> Pull request to follow.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi pull request #3033: NIFI-5629 GetFile vast listing performance

2018-09-26 Thread adyoun2
GitHub user adyoun2 opened a pull request:

https://github.com/apache/nifi/pull/3033

NIFI-5629 GetFile vast listing performance

See related PR. When the number of files to pickup becomes a certain size, 
the OS can become slow performing the listing, so re-use this listing multiple 
times.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/adyoun2/nifi 
NIFI-5629-GetFile-vast-directory-re-use-listing

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3033.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3033


commit d06534647b7d2aef2069dfebebf4bea3651a8b69
Author: adyoun2 
Date:   2018-09-26T16:14:55Z

NIFI-5629 GetFile continues to use the same listing stream until 1 
files or no files remain




---


[jira] [Commented] (NIFI-4360) Add support for Azure Data Lake Store (ADLS)

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-4360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628876#comment-16628876
 ] 

ASF GitHub Bot commented on NIFI-4360:
--

Github user mohitgargk commented on the issue:

https://github.com/apache/nifi/pull/2158
  
Hi @milanchandna, was wondering if you are still working on this. I need 
this feature for my use case and was going the same path as you. Seems you are 
almost there.  In case you are working on it, Can you please try syncing your 
fork and rebase your commits.


> Add support for Azure Data Lake Store (ADLS)
> 
>
> Key: NIFI-4360
> URL: https://issues.apache.org/jira/browse/NIFI-4360
> Project: Apache NiFi
>  Issue Type: New Feature
>  Components: Extensions
>Reporter: Milan Chandna
>Assignee: Milan Chandna
>Priority: Major
>  Labels: adls, azure, hdfs
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Currently ingress and egress in ADLS account is possible only using HDFS 
> processors.
> Opening this feature to support separate processors for interaction with ADLS 
> accounts directly.
> Benefits are many like 
> - simple configuration.
> - Helping users not familiar with HDFS 
> - Helping users who currently are accessing ADLS accounts directly.
> - using the ADLS SDK rather than HDFS client, one lesser layer to go through.
> Can be achieved by adding separate ADLS processors.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi issue #2158: NIFI-4360 Adding support for ADLS Processors. Feature incl...

2018-09-26 Thread mohitgargk
Github user mohitgargk commented on the issue:

https://github.com/apache/nifi/pull/2158
  
Hi @milanchandna, was wondering if you are still working on this. I need 
this feature for my use case and was going the same path as you. Seems you are 
almost there.  In case you are working on it, Can you please try syncing your 
fork and rebase your commits.


---


[jira] [Resolved] (NIFIREG-201) nifi-registry-extensions impacted by top-level dependency management

2018-09-26 Thread Kevin Doran (JIRA)


 [ 
https://issues.apache.org/jira/browse/NIFIREG-201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Doran resolved NIFIREG-201.
-
Resolution: Fixed

> nifi-registry-extensions impacted by top-level dependency management
> 
>
> Key: NIFIREG-201
> URL: https://issues.apache.org/jira/browse/NIFIREG-201
> Project: NiFi Registry
>  Issue Type: Improvement
>Affects Versions: 0.3.0
>Reporter: Bryan Bende
>Assignee: Bryan Bende
>Priority: Major
> Fix For: 0.3.0
>
>
> While reviewing NIFIREG-200, I noticed that when building with the 
> include-ranger profile, the JARs in ext/ranger/lib ended up being affected by 
> the dependency management section in the root pom.
> For example, the versions of Jetty and Jackson JARs were being forced to the 
> versions registry needs, but may not be versions that are compatible with the 
> ranger client.
> To deal with this, I propose restructuring the the repository to something 
> like the following:
> _nifi-registry-core (eveything that used to be at the root, except the 
> assembly and extensions)_
> _nifi-registry-extensions_
> _nifi-registry-assembly_
> The dependency management can then be moved to the pom of nifi-registry-core 
> so that it does not impact the modules under nifi-registry-extensions.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (NIFIREG-202) Release Manager - Release 0.3.0

2018-09-26 Thread Kevin Doran (JIRA)


 [ 
https://issues.apache.org/jira/browse/NIFIREG-202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Doran resolved NIFIREG-202.
-
Resolution: Done

> Release Manager - Release 0.3.0
> ---
>
> Key: NIFIREG-202
> URL: https://issues.apache.org/jira/browse/NIFIREG-202
> Project: NiFi Registry
>  Issue Type: Task
>Reporter: Kevin Doran
>Assignee: Kevin Doran
>Priority: Major
> Fix For: 0.3.0
>
>
> Perform release manager activities for 0.3.0 release.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (MINIFICPP-618) Add C2 triggers for local updates

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/MINIFICPP-618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628625#comment-16628625
 ] 

ASF GitHub Bot commented on MINIFICPP-618:
--

Github user phrocker commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/405#discussion_r220525598
  
--- Diff: libminifi/include/c2/C2Trigger.h ---
@@ -0,0 +1,63 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+#define LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+
+#include "core/Connectable.h"
+#include "c2/C2Payload.h"
+#include "properties/Configure.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace c2 {
+
+class C2Trigger : public core::Connectable{
+ public:
+
+  C2Trigger(std::string name, utils::Identifier uuid)
+: core::Connectable(name, uuid){
+
+  }
+  virtual ~C2Trigger() {
+  }
+
+
+  /**
--- End diff --

You were right. I went through and added some comments and probably would 
have missed this had you not mentioned it. Thanks! adding some docs now to our 
readmes.
Made an early PR to give some people a chance to review and test -- so 
really appreciate all input!


> Add C2 triggers for local updates
> -
>
> Key: MINIFICPP-618
> URL: https://issues.apache.org/jira/browse/MINIFICPP-618
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi-minifi-cpp pull request #405: MINIFICPP-618: Add C2 triggers, first of ...

2018-09-26 Thread phrocker
Github user phrocker commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/405#discussion_r220525598
  
--- Diff: libminifi/include/c2/C2Trigger.h ---
@@ -0,0 +1,63 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+#define LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+
+#include "core/Connectable.h"
+#include "c2/C2Payload.h"
+#include "properties/Configure.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace c2 {
+
+class C2Trigger : public core::Connectable{
+ public:
+
+  C2Trigger(std::string name, utils::Identifier uuid)
+: core::Connectable(name, uuid){
+
+  }
+  virtual ~C2Trigger() {
+  }
+
+
+  /**
--- End diff --

You were right. I went through and added some comments and probably would 
have missed this had you not mentioned it. Thanks! adding some docs now to our 
readmes.
Made an early PR to give some people a chance to review and test -- so 
really appreciate all input!


---


[jira] [Commented] (MINIFICPP-618) Add C2 triggers for local updates

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/MINIFICPP-618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628610#comment-16628610
 ] 

ASF GitHub Bot commented on MINIFICPP-618:
--

Github user ottobackwards commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/405#discussion_r220403308
  
--- Diff: libminifi/include/c2/C2Trigger.h ---
@@ -0,0 +1,63 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+#define LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+
+#include "core/Connectable.h"
+#include "c2/C2Payload.h"
+#include "properties/Configure.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace c2 {
+
+class C2Trigger : public core::Connectable{
+ public:
+
+  C2Trigger(std::string name, utils::Identifier uuid)
+: core::Connectable(name, uuid){
+
+  }
+  virtual ~C2Trigger() {
+  }
+
+
+  /**
--- End diff --

I think this comment is for a different function


> Add C2 triggers for local updates
> -
>
> Key: MINIFICPP-618
> URL: https://issues.apache.org/jira/browse/MINIFICPP-618
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: Mr TheSegfault
>Assignee: Mr TheSegfault
>Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi-minifi-cpp pull request #405: MINIFICPP-618: Add C2 triggers, first of ...

2018-09-26 Thread ottobackwards
Github user ottobackwards commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/405#discussion_r220403308
  
--- Diff: libminifi/include/c2/C2Trigger.h ---
@@ -0,0 +1,63 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+#define LIBMINIFI_INCLUDE_C2_C2TRIGGER_H_
+
+#include "core/Connectable.h"
+#include "c2/C2Payload.h"
+#include "properties/Configure.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace c2 {
+
+class C2Trigger : public core::Connectable{
+ public:
+
+  C2Trigger(std::string name, utils::Identifier uuid)
+: core::Connectable(name, uuid){
+
+  }
+  virtual ~C2Trigger() {
+  }
+
+
+  /**
--- End diff --

I think this comment is for a different function


---


[GitHub] nifi issue #1964: Nifi 4141 - Adding a processor for convert Json to Orc

2018-09-26 Thread pvillard31
Github user pvillard31 commented on the issue:

https://github.com/apache/nifi/pull/1964
  
@bbasosuho - do you mind closing this PR now we added the PutORC processor 
in NiFi? Thanks.


---


[jira] [Commented] (NIFI-1763) Provide an integration with 'Schema registry for Kafka'

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-1763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628595#comment-16628595
 ] 

ASF GitHub Bot commented on NIFI-1763:
--

Github user asfgit closed the pull request at:

https://github.com/apache/nifi/pull/1661


> Provide an integration with 'Schema registry for Kafka'
> ---
>
> Key: NIFI-1763
> URL: https://issues.apache.org/jira/browse/NIFI-1763
> Project: Apache NiFi
>  Issue Type: Wish
>  Components: Extensions
>Reporter: Joseph Witt
>Assignee: Mark Payne
>Priority: Minor
> Fix For: 1.4.0
>
>
> Reported on a mailing list question on 13 April 2016
> https://github.com/confluentinc/schema-registry
> The registry itself is an ASLv2 licensed codebase.  It offers a REST-based 
> Web API for interaction.  It would be good to support integration with it for 
> users of Kafka so it would register schemas if needed when writing to Kafka 
> and understand how to parse data based on the indicated schema when reading 
> from Kafka.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi pull request #1661: NIFI-1763 [Provide an integration with 'Schema regi...

2018-09-26 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/nifi/pull/1661


---


[jira] [Commented] (NIFI-5612) org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628463#comment-16628463
 ] 

ASF GitHub Bot commented on NIFI-5612:
--

Github user pvillard31 commented on the issue:

https://github.com/apache/nifi/pull/3032
  
Hey @colindean, I'll let @bbende & @mattyb149 have a look on the code but 
as long as 1 of the 3 Travis builds is green, you're good to go. We have to fix 
the intermittent issues on the builds but that's not related to your PR.


> org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0
> 
>
> Key: NIFI-5612
> URL: https://issues.apache.org/jira/browse/NIFI-5612
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.5.0, 1.6.0, 1.7.1
> Environment: Microsoft Windows, MySQL Enterprise 5.0.80
>Reporter: Colin Dean
>Priority: Major
>  Labels: ExecuteSQL, avro, nifi
>
> I'm seeing this when I execute {{SELECT * FROM }} on a few tables 
> but not on dozens of others in the same database.
> {code:java}
> 2018-09-13 01:11:31,434 WARN [Timer-Driven Process Thread-8] 
> o.a.n.controller.tasks.ConnectableTask Administratively Yielding 
> ExecuteSQL[id=cf5c0996-eddf-3e05-25a3-c407c5edf990] due to uncaught 
> Exception: org.apache.avro.file.DataFileWriter$AppendWriteException: 
> org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0
> org.apache.avro.file.DataFileWriter$AppendWriteException: 
> org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0
>   at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:308)
>   at 
> org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:462)
>   at 
> org.apache.nifi.processors.standard.ExecuteSQL.lambda$onTrigger$1(ExecuteSQL.java:252)
>   at 
> org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2625)
>   at 
> org.apache.nifi.processors.standard.ExecuteSQL.onTrigger(ExecuteSQL.java:242)
>   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:1142)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>   at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.avro.UnresolvedUnionException: Not in union 
> ["null","int"]: 0
>   at 
> org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:709)
>   at 
> org.apache.avro.generic.GenericDatumWriter.resolveUnion(GenericDatumWriter.java:192)
>   at 
> org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:110)
>   at 
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73)
>   at 
> org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:153)
>   at 
> org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:143)
>   at 
> org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:105)
>   at 
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73)
>   at 
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:60)
>   at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:302)
>   ... 15 common frames omitted
> {code}
> I don't know if I can share the database schema – still working with my team 
> on that – but looking at it, I think it has something to do with the 
> signedness of int(1) or tinyint(1) because those two are the only numerical 
> types common to all of the table.
>  
> *Edit 2018-09-24, so that my update doesn't get buried:*
> I am able to reproduce the exception using
>  * Vagrant 2.1.1
>  * Virtualbox 5.2.18 r124319
>  * Ubuntu 18.04
>  * MySQL 5.0.81 (as close as I can get to the 5.0.80 Enterprise Edition in 
> use on the system where I observed this failure first)
>  

[GitHub] nifi issue #3032: NIFI-5612: Support JDBC drivers that return Long for unsig...

2018-09-26 Thread pvillard31
Github user pvillard31 commented on the issue:

https://github.com/apache/nifi/pull/3032
  
Hey @colindean, I'll let @bbende & @mattyb149 have a look on the code but 
as long as 1 of the 3 Travis builds is green, you're good to go. We have to fix 
the intermittent issues on the builds but that's not related to your PR.


---


[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628399#comment-16628399
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220458441
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/FlowFilePartitioner.java
 ---
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+public interface FlowFilePartitioner {
+
+/**
+ * Determines which partition the given FlowFile should go to
+ *
+ * @param flowFile the FlowFile to partition
+ * @param partitions the partitions to choose from
+ * @param localPartition the local partition, which is also included 
in the given array of partitions
+ * @return the partition for the FlowFile
+ */
+QueuePartition getPartition(FlowFileRecord flowFile, QueuePartition[] 
partitions,  QueuePartition localPartition);
+
+/**
+ * @return true if a change in the size of a cluster 
should result in re-balancing all FlowFiles in queue,
+ * false if a change in the size of a cluster 
does not require re-balancing.
+ */
+boolean isRebalanceOnClusterResize();
+
+/**
+ * @return true if FlowFiles should be rebalanced to 
another partition if they cannot be sent to the designated peer,
+ * false if a failure should result in the FlowFiles 
remaining in same partition.
+ */
+boolean isRebalanceOnFailure();
--- End diff --

Similarly, `shouldRebalanceOnFailure()`?


> Allow data in a Connection to be Load-Balanced across cluster
> -
>
> Key: NIFI-5516
> URL: https://issues.apache.org/jira/browse/NIFI-5516
> Project: Apache NiFi
>  Issue Type: New Feature
>  Components: Core Framework
>Reporter: Mark Payne
>Assignee: Mark Payne
>Priority: Major
>
> Allow user to configure a Connection to be load balanced across the cluster. 
> For more information, see Feature Proposal at 
> https://cwiki.apache.org/confluence/display/NIFI/Load-Balanced+Connections



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628400#comment-16628400
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220466208
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
 ---
@@ -0,0 +1,251 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.server;
+
+import org.apache.nifi.engine.FlowEngine;
+import org.apache.nifi.events.EventReporter;
+import org.apache.nifi.reporting.Severity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLServerSocket;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+
+public class ConnectionLoadBalanceServer {
+private static final Logger logger = 
LoggerFactory.getLogger(ConnectionLoadBalanceServer.class);
+
+private final String hostname;
+private final int port;
+private final SSLContext sslContext;
+private final ExecutorService threadPool;
+private final LoadBalanceProtocol loadBalanceProtocol;
+private final int connectionTimeoutMillis;
+private final int numThreads;
+private final EventReporter eventReporter;
+
+private volatile Set communicationActions = 
Collections.emptySet();
+private final BlockingQueue connectionQueue = new 
LinkedBlockingQueue<>();
+
+private volatile AcceptConnection acceptConnection;
+private volatile ServerSocket serverSocket;
+private volatile boolean stopped = true;
+
+public ConnectionLoadBalanceServer(final String hostname, final int 
port, final SSLContext sslContext, final int numThreads, final 
LoadBalanceProtocol loadBalanceProtocol,
+   final EventReporter eventReporter, 
final int connectionTimeoutMillis) {
+this.hostname = hostname;
+this.port = port;
+this.sslContext = sslContext;
+this.loadBalanceProtocol = loadBalanceProtocol;
+this.connectionTimeoutMillis = connectionTimeoutMillis;
+this.numThreads = numThreads;
+this.eventReporter = eventReporter;
+
+threadPool = new FlowEngine(numThreads, "Load Balance Server");
+}
+
+public void start() throws IOException {
+if (!stopped) {
+return;
+}
+
+stopped = false;
+if (serverSocket != null) {
+return;
+}
+
+try {
+serverSocket = createServerSocket();
+} catch (final Exception e) {
+throw new IOException("Could not begin listening for incoming 
connections in order to load balance data across the cluster. Please verify the 
values of the " +
+"'nifi.cluster.load.balance.port' and 
'nifi.cluster.load.balance.host' properties as well as the 'nifi.security.*' 
properties", e);
+}
+
+final Set actions = new HashSet<>(numThreads);
+for (int i=0; i < numThreads; i++) {
+final CommunicateAction action = new 
CommunicateAction(loadBalanceProtocol);
+actions.add(action);
+threadPool.submit(action);
+}
+
+

[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628401#comment-16628401
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220458232
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/FlowFilePartitioner.java
 ---
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+public interface FlowFilePartitioner {
+
+/**
+ * Determines which partition the given FlowFile should go to
+ *
+ * @param flowFile the FlowFile to partition
+ * @param partitions the partitions to choose from
+ * @param localPartition the local partition, which is also included 
in the given array of partitions
+ * @return the partition for the FlowFile
+ */
+QueuePartition getPartition(FlowFileRecord flowFile, QueuePartition[] 
partitions,  QueuePartition localPartition);
+
+/**
+ * @return true if a change in the size of a cluster 
should result in re-balancing all FlowFiles in queue,
+ * false if a change in the size of a cluster 
does not require re-balancing.
+ */
+boolean isRebalanceOnClusterResize();
--- End diff --

Trivial, but I prefer `shouldRebalanceOnClusterResize()` or 
`shouldRebalanceOnClusterTopologyChange`.


> Allow data in a Connection to be Load-Balanced across cluster
> -
>
> Key: NIFI-5516
> URL: https://issues.apache.org/jira/browse/NIFI-5516
> Project: Apache NiFi
>  Issue Type: New Feature
>  Components: Core Framework
>Reporter: Mark Payne
>Assignee: Mark Payne
>Priority: Major
>
> Allow user to configure a Connection to be load balanced across the cluster. 
> For more information, see Feature Proposal at 
> https://cwiki.apache.org/confluence/display/NIFI/Load-Balanced+Connections



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220458232
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/FlowFilePartitioner.java
 ---
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+public interface FlowFilePartitioner {
+
+/**
+ * Determines which partition the given FlowFile should go to
+ *
+ * @param flowFile the FlowFile to partition
+ * @param partitions the partitions to choose from
+ * @param localPartition the local partition, which is also included 
in the given array of partitions
+ * @return the partition for the FlowFile
+ */
+QueuePartition getPartition(FlowFileRecord flowFile, QueuePartition[] 
partitions,  QueuePartition localPartition);
+
+/**
+ * @return true if a change in the size of a cluster 
should result in re-balancing all FlowFiles in queue,
+ * false if a change in the size of a cluster 
does not require re-balancing.
+ */
+boolean isRebalanceOnClusterResize();
--- End diff --

Trivial, but I prefer `shouldRebalanceOnClusterResize()` or 
`shouldRebalanceOnClusterTopologyChange`.


---


[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220458441
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/FlowFilePartitioner.java
 ---
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+public interface FlowFilePartitioner {
+
+/**
+ * Determines which partition the given FlowFile should go to
+ *
+ * @param flowFile the FlowFile to partition
+ * @param partitions the partitions to choose from
+ * @param localPartition the local partition, which is also included 
in the given array of partitions
+ * @return the partition for the FlowFile
+ */
+QueuePartition getPartition(FlowFileRecord flowFile, QueuePartition[] 
partitions,  QueuePartition localPartition);
+
+/**
+ * @return true if a change in the size of a cluster 
should result in re-balancing all FlowFiles in queue,
+ * false if a change in the size of a cluster 
does not require re-balancing.
+ */
+boolean isRebalanceOnClusterResize();
+
+/**
+ * @return true if FlowFiles should be rebalanced to 
another partition if they cannot be sent to the designated peer,
+ * false if a failure should result in the FlowFiles 
remaining in same partition.
+ */
+boolean isRebalanceOnFailure();
--- End diff --

Similarly, `shouldRebalanceOnFailure()`?


---


[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220466208
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
 ---
@@ -0,0 +1,251 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.server;
+
+import org.apache.nifi.engine.FlowEngine;
+import org.apache.nifi.events.EventReporter;
+import org.apache.nifi.reporting.Severity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLServerSocket;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+
+public class ConnectionLoadBalanceServer {
+private static final Logger logger = 
LoggerFactory.getLogger(ConnectionLoadBalanceServer.class);
+
+private final String hostname;
+private final int port;
+private final SSLContext sslContext;
+private final ExecutorService threadPool;
+private final LoadBalanceProtocol loadBalanceProtocol;
+private final int connectionTimeoutMillis;
+private final int numThreads;
+private final EventReporter eventReporter;
+
+private volatile Set communicationActions = 
Collections.emptySet();
+private final BlockingQueue connectionQueue = new 
LinkedBlockingQueue<>();
+
+private volatile AcceptConnection acceptConnection;
+private volatile ServerSocket serverSocket;
+private volatile boolean stopped = true;
+
+public ConnectionLoadBalanceServer(final String hostname, final int 
port, final SSLContext sslContext, final int numThreads, final 
LoadBalanceProtocol loadBalanceProtocol,
+   final EventReporter eventReporter, 
final int connectionTimeoutMillis) {
+this.hostname = hostname;
+this.port = port;
+this.sslContext = sslContext;
+this.loadBalanceProtocol = loadBalanceProtocol;
+this.connectionTimeoutMillis = connectionTimeoutMillis;
+this.numThreads = numThreads;
+this.eventReporter = eventReporter;
+
+threadPool = new FlowEngine(numThreads, "Load Balance Server");
+}
+
+public void start() throws IOException {
+if (!stopped) {
+return;
+}
+
+stopped = false;
+if (serverSocket != null) {
+return;
+}
+
+try {
+serverSocket = createServerSocket();
+} catch (final Exception e) {
+throw new IOException("Could not begin listening for incoming 
connections in order to load balance data across the cluster. Please verify the 
values of the " +
+"'nifi.cluster.load.balance.port' and 
'nifi.cluster.load.balance.host' properties as well as the 'nifi.security.*' 
properties", e);
+}
+
+final Set actions = new HashSet<>(numThreads);
+for (int i=0; i < numThreads; i++) {
+final CommunicateAction action = new 
CommunicateAction(loadBalanceProtocol);
+actions.add(action);
+threadPool.submit(action);
+}
+
+this.communicationActions = actions;
+
+acceptConnection = new AcceptConnection(serverSocket);
+final Thread receiveConnectionThread = new 
Thread(acceptConnection);
+receiveConnectionThread.setName("Receive Queue 

[jira] [Commented] (NIFI-5224) Add SolrClientService

2018-09-26 Thread Johannes Peter (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628391#comment-16628391
 ] 

Johannes Peter commented on NIFI-5224:
--

sorry [~mike.thomsen] for not responding for some reasons the jira 
notifications arrived in my spam folder. I already have started developing 
this, but haven't done too much, so go ahead. in the meanwhile, my second kid 
was born who consumes my entire open source time ;)

> Add SolrClientService
> -
>
> Key: NIFI-5224
> URL: https://issues.apache.org/jira/browse/NIFI-5224
> Project: Apache NiFi
>  Issue Type: Improvement
>Reporter: Johannes Peter
>Assignee: Mike Thomsen
>Priority: Major
>
> The Solr CRUD functions that are currently included in SolrUtils should be 
> moved to a controller service. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628364#comment-16628364
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220428865
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/client/async/nio/RegisteredPartition.java
 ---
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.client.async.nio;
+
+import org.apache.nifi.controller.queue.LoadBalanceCompression;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionCompleteCallback;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionFailureCallback;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+import java.util.function.BooleanSupplier;
+import java.util.function.Supplier;
+
+public class RegisteredPartition {
+private final String connectionId;
+private final Supplier flowFileRecordSupplier;
+private final TransactionFailureCallback failureCallback;
+private final BooleanSupplier emptySupplier;
+private final TransactionCompleteCallback successCallback;
+private final LoadBalanceCompression compression;
+
+public RegisteredPartition(final String connectionId, final 
BooleanSupplier emptySupplier, final Supplier flowFileSupplier, 
final TransactionFailureCallback failureCallback,
+   final TransactionCompleteCallback 
successCallback, final LoadBalanceCompression compression) {
+this.connectionId = connectionId;
+this.emptySupplier = emptySupplier;
+this.flowFileRecordSupplier = flowFileSupplier;
+this.failureCallback = failureCallback;
+this.successCallback = successCallback;
+this.compression = compression;
--- End diff --

I haven't read the code enough to understand how these partitions are 
managed. But it seems once a partition is registered, we won't be able to 
change its `compression`.  The steps for a connection to use compression by 
NiFi UI is as follows:
1. Send a POST request to create a connection
2. Send a PUT request to updated load-balance configuration for a connection

But it seems that current PR only support setting compression only when a 
connection is added at the sending side. Receiving side uses the latest 
compression setting and resulted following Exception:

```
2018-09-26 05:08:18,439 ERROR [Load Balance Server Thread-4] 
o.a.n.c.q.c.s.ConnectionLoadBalanceServer Failed to communicate with Peer 
nifi0.rumawaks.com/10.1.0.5:35502
java.util.zip.ZipException: Not in GZIP format
at 
java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:165)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:79)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:91)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFile(StandardLoadBalanceProtocol.java:428)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFiles(StandardLoadBalanceProtocol.java:267)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFiles(StandardLoadBalanceProtocol.java:151)
at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer$CommunicateAction.run(ConnectionLoadBalanceServer.java:176)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at 

[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628366#comment-16628366
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220440614
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/RemoteQueuePartition.java
 ---
@@ -0,0 +1,337 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.cluster.protocol.NodeIdentifier;
+import org.apache.nifi.controller.queue.DropFlowFileRequest;
+import org.apache.nifi.controller.queue.FlowFileQueueContents;
+import org.apache.nifi.controller.queue.LoadBalancedFlowFileQueue;
+import org.apache.nifi.controller.queue.QueueSize;
+import org.apache.nifi.controller.queue.RemoteQueuePartitionDiagnostics;
+import 
org.apache.nifi.controller.queue.StandardRemoteQueuePartitionDiagnostics;
+import org.apache.nifi.controller.queue.SwappablePriorityQueue;
+import 
org.apache.nifi.controller.queue.clustered.TransferFailureDestination;
+import 
org.apache.nifi.controller.queue.clustered.client.async.AsyncLoadBalanceClientRegistry;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionCompleteCallback;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionFailureCallback;
+import org.apache.nifi.controller.repository.ContentNotFoundException;
+import org.apache.nifi.controller.repository.ContentRepository;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+import org.apache.nifi.controller.repository.FlowFileRepository;
+import org.apache.nifi.controller.repository.RepositoryRecord;
+import org.apache.nifi.controller.repository.StandardRepositoryRecord;
+import org.apache.nifi.controller.repository.SwapSummary;
+import org.apache.nifi.controller.repository.claim.ContentClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaim;
+import org.apache.nifi.flowfile.FlowFilePrioritizer;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.provenance.ProvenanceEventBuilder;
+import org.apache.nifi.provenance.ProvenanceEventRecord;
+import org.apache.nifi.provenance.ProvenanceEventRepository;
+import org.apache.nifi.provenance.ProvenanceEventType;
+import org.apache.nifi.provenance.StandardProvenanceEventRecord;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * A Queue Partition that is responsible for transferring FlowFiles to 
another node in the cluster
+ */
+public class RemoteQueuePartition implements QueuePartition {
+private static final Logger logger = 
LoggerFactory.getLogger(RemoteQueuePartition.class);
+
+private final NodeIdentifier nodeIdentifier;
+private final SwappablePriorityQueue priorityQueue;
+private final LoadBalancedFlowFileQueue flowFileQueue;
+private final TransferFailureDestination failureDestination;
+
+private final FlowFileRepository flowFileRepo;
+private final ProvenanceEventRepository provRepo;
+private final ContentRepository contentRepo;
+private final AsyncLoadBalanceClientRegistry clientRegistry;
+
+private boolean running = false;
+private final String description;
+
+public RemoteQueuePartition(final NodeIdentifier nodeId, final 
SwappablePriorityQueue priorityQueue, final TransferFailureDestination 
failureDestination,
+  

[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220440614
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/partition/RemoteQueuePartition.java
 ---
@@ -0,0 +1,337 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.partition;
+
+import org.apache.nifi.cluster.protocol.NodeIdentifier;
+import org.apache.nifi.controller.queue.DropFlowFileRequest;
+import org.apache.nifi.controller.queue.FlowFileQueueContents;
+import org.apache.nifi.controller.queue.LoadBalancedFlowFileQueue;
+import org.apache.nifi.controller.queue.QueueSize;
+import org.apache.nifi.controller.queue.RemoteQueuePartitionDiagnostics;
+import 
org.apache.nifi.controller.queue.StandardRemoteQueuePartitionDiagnostics;
+import org.apache.nifi.controller.queue.SwappablePriorityQueue;
+import 
org.apache.nifi.controller.queue.clustered.TransferFailureDestination;
+import 
org.apache.nifi.controller.queue.clustered.client.async.AsyncLoadBalanceClientRegistry;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionCompleteCallback;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionFailureCallback;
+import org.apache.nifi.controller.repository.ContentNotFoundException;
+import org.apache.nifi.controller.repository.ContentRepository;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+import org.apache.nifi.controller.repository.FlowFileRepository;
+import org.apache.nifi.controller.repository.RepositoryRecord;
+import org.apache.nifi.controller.repository.StandardRepositoryRecord;
+import org.apache.nifi.controller.repository.SwapSummary;
+import org.apache.nifi.controller.repository.claim.ContentClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaim;
+import org.apache.nifi.flowfile.FlowFilePrioritizer;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.provenance.ProvenanceEventBuilder;
+import org.apache.nifi.provenance.ProvenanceEventRecord;
+import org.apache.nifi.provenance.ProvenanceEventRepository;
+import org.apache.nifi.provenance.ProvenanceEventType;
+import org.apache.nifi.provenance.StandardProvenanceEventRecord;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * A Queue Partition that is responsible for transferring FlowFiles to 
another node in the cluster
+ */
+public class RemoteQueuePartition implements QueuePartition {
+private static final Logger logger = 
LoggerFactory.getLogger(RemoteQueuePartition.class);
+
+private final NodeIdentifier nodeIdentifier;
+private final SwappablePriorityQueue priorityQueue;
+private final LoadBalancedFlowFileQueue flowFileQueue;
+private final TransferFailureDestination failureDestination;
+
+private final FlowFileRepository flowFileRepo;
+private final ProvenanceEventRepository provRepo;
+private final ContentRepository contentRepo;
+private final AsyncLoadBalanceClientRegistry clientRegistry;
+
+private boolean running = false;
+private final String description;
+
+public RemoteQueuePartition(final NodeIdentifier nodeId, final 
SwappablePriorityQueue priorityQueue, final TransferFailureDestination 
failureDestination,
+final FlowFileRepository flowFileRepo, 
final ProvenanceEventRepository provRepo, final ContentRepository 
contentRepository,
+final AsyncLoadBalanceClientRegistry 

[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220454819
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/client/async/nio/NioAsyncLoadBalanceClientTask.java
 ---
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.client.async.nio;
+
+import org.apache.nifi.cluster.coordination.ClusterCoordinator;
+import org.apache.nifi.cluster.coordination.node.NodeConnectionState;
+import org.apache.nifi.cluster.coordination.node.NodeConnectionStatus;
+import org.apache.nifi.cluster.protocol.NodeIdentifier;
+import org.apache.nifi.events.EventReporter;
+import org.apache.nifi.reporting.Severity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NioAsyncLoadBalanceClientTask implements Runnable {
+private static final Logger logger = 
LoggerFactory.getLogger(NioAsyncLoadBalanceClientTask.class);
+private static final String EVENT_CATEGORY = "Load-Balanced 
Connection";
+
+private final NioAsyncLoadBalanceClientRegistry clientRegistry;
+private final ClusterCoordinator clusterCoordinator;
+private final EventReporter eventReporter;
+private volatile boolean running = true;
+
+public NioAsyncLoadBalanceClientTask(final 
NioAsyncLoadBalanceClientRegistry clientRegistry, final ClusterCoordinator 
clusterCoordinator, final EventReporter eventReporter) {
+this.clientRegistry = clientRegistry;
+this.clusterCoordinator = clusterCoordinator;
+this.eventReporter = eventReporter;
+}
+
+@Override
+public void run() {
+while (running) {
+try {
+boolean success = false;
+for (final NioAsyncLoadBalanceClient client : 
clientRegistry.getAllClients()) {
+if (!client.isRunning()) {
+logger.trace("Client {} is not running so will not 
communicate with it", client);
+continue;
+}
+
+if (client.isPenalized()) {
+logger.trace("Client {} is penalized so will not 
communicate with it", client);
+continue;
+}
+
+final NodeIdentifier clientNodeId = 
client.getNodeIdentifier();
+final NodeConnectionStatus connectionStatus = 
clusterCoordinator.getConnectionStatus(clientNodeId);
+final NodeConnectionState connectionState = 
connectionStatus.getState();
+if (connectionState != NodeConnectionState.CONNECTED) {
--- End diff --

Do we want to rebalance queued FlowFiles here if strategy allows to do so? 
FlowFilePartitioner.isRebalanceOnFailure is only evaluated when there is a 
communication activity. After a node goes down and a remaining node updates the 
connection status to DISCONNECTED, this branch stops further processing. Thus, 
FlowFiles will be kept at the connection even though the strategy allows 
rebalance.

Scenario, with 2 nodes cluster, using RoundRobin, FlowFiles being created 
continuously and distributed evenly. Then one node goes down. 50% of generated 
FlowFiles will stay in the connection.

With CorrelationAttributePartitioner, this is the expected behavior. But I 
expect FlowFiles to be processed at the remaining node in this case with 
RoundRobin partitioner. 


---


[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628365#comment-16628365
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220454819
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/client/async/nio/NioAsyncLoadBalanceClientTask.java
 ---
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.client.async.nio;
+
+import org.apache.nifi.cluster.coordination.ClusterCoordinator;
+import org.apache.nifi.cluster.coordination.node.NodeConnectionState;
+import org.apache.nifi.cluster.coordination.node.NodeConnectionStatus;
+import org.apache.nifi.cluster.protocol.NodeIdentifier;
+import org.apache.nifi.events.EventReporter;
+import org.apache.nifi.reporting.Severity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NioAsyncLoadBalanceClientTask implements Runnable {
+private static final Logger logger = 
LoggerFactory.getLogger(NioAsyncLoadBalanceClientTask.class);
+private static final String EVENT_CATEGORY = "Load-Balanced 
Connection";
+
+private final NioAsyncLoadBalanceClientRegistry clientRegistry;
+private final ClusterCoordinator clusterCoordinator;
+private final EventReporter eventReporter;
+private volatile boolean running = true;
+
+public NioAsyncLoadBalanceClientTask(final 
NioAsyncLoadBalanceClientRegistry clientRegistry, final ClusterCoordinator 
clusterCoordinator, final EventReporter eventReporter) {
+this.clientRegistry = clientRegistry;
+this.clusterCoordinator = clusterCoordinator;
+this.eventReporter = eventReporter;
+}
+
+@Override
+public void run() {
+while (running) {
+try {
+boolean success = false;
+for (final NioAsyncLoadBalanceClient client : 
clientRegistry.getAllClients()) {
+if (!client.isRunning()) {
+logger.trace("Client {} is not running so will not 
communicate with it", client);
+continue;
+}
+
+if (client.isPenalized()) {
+logger.trace("Client {} is penalized so will not 
communicate with it", client);
+continue;
+}
+
+final NodeIdentifier clientNodeId = 
client.getNodeIdentifier();
+final NodeConnectionStatus connectionStatus = 
clusterCoordinator.getConnectionStatus(clientNodeId);
+final NodeConnectionState connectionState = 
connectionStatus.getState();
+if (connectionState != NodeConnectionState.CONNECTED) {
--- End diff --

Do we want to rebalance queued FlowFiles here if strategy allows to do so? 
FlowFilePartitioner.isRebalanceOnFailure is only evaluated when there is a 
communication activity. After a node goes down and a remaining node updates the 
connection status to DISCONNECTED, this branch stops further processing. Thus, 
FlowFiles will be kept at the connection even though the strategy allows 
rebalance.

Scenario, with 2 nodes cluster, using RoundRobin, FlowFiles being created 
continuously and distributed evenly. Then one node goes down. 50% of generated 
FlowFiles will stay in the connection.

With CorrelationAttributePartitioner, this is the expected behavior. But I 
expect FlowFiles to be processed at the remaining node in this case with 
RoundRobin partitioner. 


> Allow data in a Connection to be Load-Balanced across cluster
> -
>
> Key: NIFI-5516
>   

[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r219366959
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/AbstractFlowFileQueue.java
 ---
@@ -0,0 +1,460 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue;
+
+import org.apache.nifi.controller.ProcessScheduler;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+import org.apache.nifi.controller.repository.FlowFileRepository;
+import org.apache.nifi.controller.repository.RepositoryRecord;
+import org.apache.nifi.controller.repository.claim.ContentClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaimManager;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.processor.DataUnit;
+import org.apache.nifi.provenance.ProvenanceEventBuilder;
+import org.apache.nifi.provenance.ProvenanceEventRecord;
+import org.apache.nifi.provenance.ProvenanceEventRepository;
+import org.apache.nifi.provenance.ProvenanceEventType;
+import org.apache.nifi.util.FormatUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
+public abstract class AbstractFlowFileQueue implements FlowFileQueue {
+private static final Logger logger = 
LoggerFactory.getLogger(AbstractFlowFileQueue.class);
+private final String identifier;
+private final FlowFileRepository flowFileRepository;
+private final ProvenanceEventRepository provRepository;
+private final ResourceClaimManager resourceClaimManager;
+private final ProcessScheduler scheduler;
+
+private final AtomicReference expirationPeriod = new 
AtomicReference<>(new TimePeriod("0 mins", 0L));
+private final AtomicReference maxQueueSize = new 
AtomicReference<>(new MaxQueueSize("1 GB", 1024 * 1024 * 1024, 1));
+
+private final ConcurrentMap 
listRequestMap = new ConcurrentHashMap<>();
+private final ConcurrentMap 
dropRequestMap = new ConcurrentHashMap<>();
+
+private LoadBalanceStrategy loadBalanceStrategy = 
LoadBalanceStrategy.DO_NOT_LOAD_BALANCE;
+private String partitioningAttribute = null;
+
+private LoadBalanceCompression compression = 
LoadBalanceCompression.DO_NOT_COMPRESS;
+
+
+public AbstractFlowFileQueue(final String identifier, final 
ProcessScheduler scheduler,
+final FlowFileRepository flowFileRepo, final 
ProvenanceEventRepository provRepo, final ResourceClaimManager 
resourceClaimManager) {
+this.identifier = identifier;
+this.scheduler = scheduler;
+this.flowFileRepository = flowFileRepo;
+this.provRepository = provRepo;
+this.resourceClaimManager = resourceClaimManager;
+}
+
+@Override
+public String getIdentifier() {
+return identifier;
+}
+
+protected ProcessScheduler getScheduler() {
+return scheduler;
+}
+
+@Override
+public String getFlowFileExpiration() {
+return expirationPeriod.get().getPeriod();
+}
+
+@Override
+public int getFlowFileExpiration(final TimeUnit timeUnit) {
+return (int) timeUnit.convert(expirationPeriod.get().getMillis(), 
TimeUnit.MILLISECONDS);
+}
+
+@Override
+public void setFlowFileExpiration(final String flowExpirationPeriod) {
+final long millis = 

[jira] [Commented] (NIFI-5516) Allow data in a Connection to be Load-Balanced across cluster

2018-09-26 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/NIFI-5516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16628367#comment-16628367
 ] 

ASF GitHub Bot commented on NIFI-5516:
--

Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r219366959
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/AbstractFlowFileQueue.java
 ---
@@ -0,0 +1,460 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue;
+
+import org.apache.nifi.controller.ProcessScheduler;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+import org.apache.nifi.controller.repository.FlowFileRepository;
+import org.apache.nifi.controller.repository.RepositoryRecord;
+import org.apache.nifi.controller.repository.claim.ContentClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaim;
+import org.apache.nifi.controller.repository.claim.ResourceClaimManager;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.processor.DataUnit;
+import org.apache.nifi.provenance.ProvenanceEventBuilder;
+import org.apache.nifi.provenance.ProvenanceEventRecord;
+import org.apache.nifi.provenance.ProvenanceEventRepository;
+import org.apache.nifi.provenance.ProvenanceEventType;
+import org.apache.nifi.util.FormatUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
+public abstract class AbstractFlowFileQueue implements FlowFileQueue {
+private static final Logger logger = 
LoggerFactory.getLogger(AbstractFlowFileQueue.class);
+private final String identifier;
+private final FlowFileRepository flowFileRepository;
+private final ProvenanceEventRepository provRepository;
+private final ResourceClaimManager resourceClaimManager;
+private final ProcessScheduler scheduler;
+
+private final AtomicReference expirationPeriod = new 
AtomicReference<>(new TimePeriod("0 mins", 0L));
+private final AtomicReference maxQueueSize = new 
AtomicReference<>(new MaxQueueSize("1 GB", 1024 * 1024 * 1024, 1));
+
+private final ConcurrentMap 
listRequestMap = new ConcurrentHashMap<>();
+private final ConcurrentMap 
dropRequestMap = new ConcurrentHashMap<>();
+
+private LoadBalanceStrategy loadBalanceStrategy = 
LoadBalanceStrategy.DO_NOT_LOAD_BALANCE;
+private String partitioningAttribute = null;
+
+private LoadBalanceCompression compression = 
LoadBalanceCompression.DO_NOT_COMPRESS;
+
+
+public AbstractFlowFileQueue(final String identifier, final 
ProcessScheduler scheduler,
+final FlowFileRepository flowFileRepo, final 
ProvenanceEventRepository provRepo, final ResourceClaimManager 
resourceClaimManager) {
+this.identifier = identifier;
+this.scheduler = scheduler;
+this.flowFileRepository = flowFileRepo;
+this.provRepository = provRepo;
+this.resourceClaimManager = resourceClaimManager;
+}
+
+@Override
+public String getIdentifier() {
+return identifier;
+}
+
+protected ProcessScheduler getScheduler() {
+return scheduler;
+}
+
+@Override
+public String getFlowFileExpiration() {
+return expirationPeriod.get().getPeriod();
+}
+
+@Override
+public int getFlowFileExpiration(final TimeUnit timeUnit) {
+

[GitHub] nifi pull request #2947: [WIP] NIFI-5516: Implement Load-Balanced Connection...

2018-09-26 Thread ijokarumawak
Github user ijokarumawak commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2947#discussion_r220428865
  
--- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/client/async/nio/RegisteredPartition.java
 ---
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.controller.queue.clustered.client.async.nio;
+
+import org.apache.nifi.controller.queue.LoadBalanceCompression;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionCompleteCallback;
+import 
org.apache.nifi.controller.queue.clustered.client.async.TransactionFailureCallback;
+import org.apache.nifi.controller.repository.FlowFileRecord;
+
+import java.util.function.BooleanSupplier;
+import java.util.function.Supplier;
+
+public class RegisteredPartition {
+private final String connectionId;
+private final Supplier flowFileRecordSupplier;
+private final TransactionFailureCallback failureCallback;
+private final BooleanSupplier emptySupplier;
+private final TransactionCompleteCallback successCallback;
+private final LoadBalanceCompression compression;
+
+public RegisteredPartition(final String connectionId, final 
BooleanSupplier emptySupplier, final Supplier flowFileSupplier, 
final TransactionFailureCallback failureCallback,
+   final TransactionCompleteCallback 
successCallback, final LoadBalanceCompression compression) {
+this.connectionId = connectionId;
+this.emptySupplier = emptySupplier;
+this.flowFileRecordSupplier = flowFileSupplier;
+this.failureCallback = failureCallback;
+this.successCallback = successCallback;
+this.compression = compression;
--- End diff --

I haven't read the code enough to understand how these partitions are 
managed. But it seems once a partition is registered, we won't be able to 
change its `compression`.  The steps for a connection to use compression by 
NiFi UI is as follows:
1. Send a POST request to create a connection
2. Send a PUT request to updated load-balance configuration for a connection

But it seems that current PR only support setting compression only when a 
connection is added at the sending side. Receiving side uses the latest 
compression setting and resulted following Exception:

```
2018-09-26 05:08:18,439 ERROR [Load Balance Server Thread-4] 
o.a.n.c.q.c.s.ConnectionLoadBalanceServer Failed to communicate with Peer 
nifi0.rumawaks.com/10.1.0.5:35502
java.util.zip.ZipException: Not in GZIP format
at 
java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:165)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:79)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:91)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFile(StandardLoadBalanceProtocol.java:428)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFiles(StandardLoadBalanceProtocol.java:267)
at 
org.apache.nifi.controller.queue.clustered.server.StandardLoadBalanceProtocol.receiveFlowFiles(StandardLoadBalanceProtocol.java:151)
at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer$CommunicateAction.run(ConnectionLoadBalanceServer.java:176)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at