You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@plc4x.apache.org by "Volker Emmert (Jira)" <ji...@apache.org> on 2019/09/05 14:12:00 UTC

[jira] [Created] (PLC4X-143) Connection failures after several minutes

Volker Emmert created PLC4X-143:
-----------------------------------

             Summary: Connection failures after several minutes
                 Key: PLC4X-143
                 URL: https://issues.apache.org/jira/browse/PLC4X-143
             Project: Apache PLC4X
          Issue Type: Bug
            Reporter: Volker Emmert


After around five minutes with one request every 10 seconds, the connections to the PLC fail.

 
{code:java}
2019-09-05 08:47:52.229 DEBUG 6 --- [pool-1-thread-1] o.a.p.j.u.c.PooledPlcDriverManager       : Try to borrow an object for url ab-eth://10.16.115.252
2019-09-05 08:47:52.229 DEBUG 6 --- [pool-1-thread-1] o.a.p.j.u.c.PooledPlcDriverManager       : getting actual connection for ab-eth://10.16.115.252
2019-09-05 08:47:52.230  INFO 6 --- [pool-1-thread-1] o.a.p.j.a.connection.AbEthPlcConnection  : Setting up AB-ETH Connection with: host-name 10.16.115.252
2019-09-05 08:47:52.248 DEBUG 6 --- [tLoopGroup-69-1] o.a.p.j.a.protocol.Plc4xAbEthProtocol    : AB-ETH Sending Connection Request
2019-09-05 08:47:52.264  WARN 6 --- [pool-1-thread-1] o.p.c.l.downtime.scraper.Plc4xSupplier   : Problem with PLC connection for source ab-eth://10.16.115.252

org.apache.plc4x.java.api.exceptions.PlcConnectionException: org.apache.plc4x.java.api.exceptions.PlcConnectionException: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:117) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:100) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        at org.pragmaticindustries.cockpit.plcscraper.plcconnect.MonitoredPlcDriverManager.getConnection(MonitoredPlcDriverManager.java:27) ~[dc-platform-api-1.2.2.jar!/:1.2.2]
        at org.pragmaticindustries.cockpit.laempe.downtime.scraper.Plc4xSupplier.get(Plc4xSupplier.java:53) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
        at org.pragmaticindustries.cockpit.laempe.downtime.scraper.Plc4xSupplier.get(Plc4xSupplier.java:21) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
        at org.pragmaticindustries.cockpit.laempe.downtime.scraper.DowntimeScraper$ScraperTask.run(DowntimeScraper.java:215) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_202]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_202]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_202]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_202]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
Caused by: org.apache.plc4x.java.api.exceptions.PlcConnectionException: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
        at org.apache.plc4x.java.base.connection.NettyPlcConnection.connect(NettyPlcConnection.java:88) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:73) ~[plc4j-api-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.access$201(PooledPlcDriverManager.java:37) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager$1.create(PooledPlcDriverManager.java:89) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager$1.create(PooledPlcDriverManager.java:82) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        at org.apache.commons.pool2.BaseKeyedPooledObjectFactory.makeObject(BaseKeyedPooledObjectFactory.java:60) ~[commons-pool2-2.6.0.jar!/:2.6.0]
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.create(GenericKeyedObjectPool.java:1060) ~[commons-pool2-2.6.0.jar!/:2.6.0]
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:361) ~[commons-pool2-2.6.0.jar!/:2.6.0]
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:284) ~[commons-pool2-2.6.0.jar!/:2.6.0]
        at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:115) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
        ... 12 common frames omitted
Caused by: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
        at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[na:1.8.0_202]
        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) ~[na:1.8.0_202]
        at org.apache.plc4x.java.base.connection.NettyPlcConnection.connect(NettyPlcConnection.java:79) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
        ... 21 common frames omitted
Caused by: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
        at org.apache.plc4x.java.base.connection.NettyPlcConnection.lambda$connect$0(NettyPlcConnection.java:70) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:103) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1148) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:764) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:740) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:611) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.closeOnRead(AbstractNioByteChannel.java:105) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:648) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:583) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:500) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
        ... 1 common frames omitted

{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Re: [jira] [Created] (PLC4X-143) Connection failures after several minutes

Posted by Julian Feinauer <j....@pragmaticminds.de>.
Hm, looks like someone who implemented the ab-eth driver did that not so good... __

But, in fact, we should check if the pool causes that issue or the driver itself.
But I remember that the pool needs a specific implementation for each driver it suppprts, so could be the case here.

@Bahamada do you have an idea?

Julian

Am 05.09.19, 16:12 schrieb "Volker Emmert (Jira)" <ji...@apache.org>:

    Volker Emmert created PLC4X-143:
    -----------------------------------
    
                 Summary: Connection failures after several minutes
                     Key: PLC4X-143
                     URL: https://issues.apache.org/jira/browse/PLC4X-143
                 Project: Apache PLC4X
              Issue Type: Bug
                Reporter: Volker Emmert
    
    
    After around five minutes with one request every 10 seconds, the connections to the PLC fail.
    
     
    {code:java}
    2019-09-05 08:47:52.229 DEBUG 6 --- [pool-1-thread-1] o.a.p.j.u.c.PooledPlcDriverManager       : Try to borrow an object for url ab-eth://10.16.115.252
    2019-09-05 08:47:52.229 DEBUG 6 --- [pool-1-thread-1] o.a.p.j.u.c.PooledPlcDriverManager       : getting actual connection for ab-eth://10.16.115.252
    2019-09-05 08:47:52.230  INFO 6 --- [pool-1-thread-1] o.a.p.j.a.connection.AbEthPlcConnection  : Setting up AB-ETH Connection with: host-name 10.16.115.252
    2019-09-05 08:47:52.248 DEBUG 6 --- [tLoopGroup-69-1] o.a.p.j.a.protocol.Plc4xAbEthProtocol    : AB-ETH Sending Connection Request
    2019-09-05 08:47:52.264  WARN 6 --- [pool-1-thread-1] o.p.c.l.downtime.scraper.Plc4xSupplier   : Problem with PLC connection for source ab-eth://10.16.115.252
    
    org.apache.plc4x.java.api.exceptions.PlcConnectionException: org.apache.plc4x.java.api.exceptions.PlcConnectionException: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:117) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:100) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            at org.pragmaticindustries.cockpit.plcscraper.plcconnect.MonitoredPlcDriverManager.getConnection(MonitoredPlcDriverManager.java:27) ~[dc-platform-api-1.2.2.jar!/:1.2.2]
            at org.pragmaticindustries.cockpit.laempe.downtime.scraper.Plc4xSupplier.get(Plc4xSupplier.java:53) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
            at org.pragmaticindustries.cockpit.laempe.downtime.scraper.Plc4xSupplier.get(Plc4xSupplier.java:21) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
            at org.pragmaticindustries.cockpit.laempe.downtime.scraper.DowntimeScraper$ScraperTask.run(DowntimeScraper.java:215) [downtime-core-0.9.0-SNAPSHOT.jar!/:0.9.0-SNAPSHOT]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_202]
            at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_202]
            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_202]
            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_202]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
            at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
    Caused by: org.apache.plc4x.java.api.exceptions.PlcConnectionException: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
            at org.apache.plc4x.java.base.connection.NettyPlcConnection.connect(NettyPlcConnection.java:88) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:73) ~[plc4j-api-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.access$201(PooledPlcDriverManager.java:37) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager$1.create(PooledPlcDriverManager.java:89) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager$1.create(PooledPlcDriverManager.java:82) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            at org.apache.commons.pool2.BaseKeyedPooledObjectFactory.makeObject(BaseKeyedPooledObjectFactory.java:60) ~[commons-pool2-2.6.0.jar!/:2.6.0]
            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.create(GenericKeyedObjectPool.java:1060) ~[commons-pool2-2.6.0.jar!/:2.6.0]
            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:361) ~[commons-pool2-2.6.0.jar!/:2.6.0]
            at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:284) ~[commons-pool2-2.6.0.jar!/:2.6.0]
            at org.apache.plc4x.java.utils.connectionpool.PooledPlcDriverManager.getConnection(PooledPlcDriverManager.java:115) ~[plc4j-connection-pool-0.4.1.2.jar!/:0.4.1.2]
            ... 12 common frames omitted
    Caused by: java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
            at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[na:1.8.0_202]
            at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) ~[na:1.8.0_202]
            at org.apache.plc4x.java.base.connection.NettyPlcConnection.connect(NettyPlcConnection.java:79) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
            ... 21 common frames omitted
    Caused by: org.apache.plc4x.java.api.exceptions.PlcIoException: Connection terminated by remote
            at org.apache.plc4x.java.base.connection.NettyPlcConnection.lambda$connect$0(NettyPlcConnection.java:70) ~[plc4j-protocol-driver-base-0.4.1.2.jar!/:0.4.1.2]
            at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:103) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1148) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:764) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:740) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:611) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.closeOnRead(AbstractNioByteChannel.java:105) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:648) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:583) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:500) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) ~[netty-transport-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.31.Final.jar!/:4.1.31.Final]
            ... 1 common frames omitted
    
    {code}
    
    
    
    --
    This message was sent by Atlassian Jira
    (v8.3.2#803003)