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

Zhiyi Ni updated NIFI-11919:
----------------------------
    Description: 
The GetMongo processor is in the STOP state. I expect to manually notify the 
processor to run-once after processing some custom operations by calling the 
REST API.

But when I call the following API or manually specify the processor on the WEB 
UI to execute once, it will have the following error.
{code:java}
PUT https://<nifi-host>:<nifi-port>/nifi-api/processors/{id}/run-status
with body:
{
    "revision": {
            "version": 15
        },
    "state": "RUN_ONCE",
    "disconnectedNodeAcknowledged": true
} {code}


{panel:title=The bulletin displayed on the processor}
17:34:44 CST - nifi01:9443 -  ERROR 
GetMongo[id=80fe390e-65f3-1697-ba11-5d61e3a6692e] Processing halted: yielding 
[1 sec]: com.mongodb.MongoSocketWriteException: Exception sending message
\- Caused by: java.net.SocketException: Connection reset
{panel}

However, when the run-status is specified again through the REST API or WEB UI, 
it can be executed normally again.
 

It seems that the NiFi service is trying to use an old connection (causing a 
high probability of connection failure, and then an error occurs). However, is 
it more reasonable to *automatically re-establish the connection* between the 
two when I specify to start execution?

*It should detect that the client/connection is stale and re-establish it 
automatically.*

  was:
The GetMongo processor is in the STOP state. I expect to manually notify the 
processor to run-once after processing some custom operations by calling the 
REST API.

But when I call the following API or manually specify the processor on the WEB 
UI to execute once, it will have the following error.
{code:java}
PUT https://<nifi-host>:<nifi-port>/nifi-api/processors/{id}/run-status
with body:
{
    "revision": {
            "version": 15
        },
    "state": "RUN_ONCE",
    "disconnectedNodeAcknowledged": true
} {code}


{panel:title=The bulletin displayed on the processor}
17:34:44 CST - nifi01:9443 -  ERROR 
GetMongo[id=80fe390e-65f3-1697-ba11-5d61e3a6692e] Processing halted: yielding 
[1 sec]: com.mongodb.MongoSocketWriteException: Exception sending message
\- Caused by: java.net.SocketException: Connection reset
However, when the run-status is specified again through the REST API or WEB UI, 
it can be executed normally again.
{panel}


 

It seems that the NiFi service is trying to use an old connection (causing a 
high probability of connection failure, and then an error occurs). However, is 
it more reasonable to *automatically re-establish the connection* between the 
two when I specify to start execution?

*It should detect that the client/connection is stale and re-establish it 
automatically.*


> "SocketException: Connection reset" occurs when a processor hasn't been used 
> for a long time and is then specified as RUN_ONCE
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: NIFI-11919
>                 URL: https://issues.apache.org/jira/browse/NIFI-11919
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Zhiyi Ni
>            Priority: Major
>
> The GetMongo processor is in the STOP state. I expect to manually notify the 
> processor to run-once after processing some custom operations by calling the 
> REST API.
> But when I call the following API or manually specify the processor on the 
> WEB UI to execute once, it will have the following error.
> {code:java}
> PUT https://<nifi-host>:<nifi-port>/nifi-api/processors/{id}/run-status
> with body:
> {
>     "revision": {
>           "version": 15
>       },
>     "state": "RUN_ONCE",
>     "disconnectedNodeAcknowledged": true
> } {code}
> {panel:title=The bulletin displayed on the processor}
> 17:34:44 CST - nifi01:9443 -  ERROR 
> GetMongo[id=80fe390e-65f3-1697-ba11-5d61e3a6692e] Processing halted: yielding 
> [1 sec]: com.mongodb.MongoSocketWriteException: Exception sending message
> \- Caused by: java.net.SocketException: Connection reset
> {panel}
> However, when the run-status is specified again through the REST API or WEB 
> UI, it can be executed normally again.
>  
> It seems that the NiFi service is trying to use an old connection (causing a 
> high probability of connection failure, and then an error occurs). However, 
> is it more reasonable to *automatically re-establish the connection* between 
> the two when I specify to start execution?
> *It should detect that the client/connection is stale and re-establish it 
> automatically.*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to