[
https://issues.apache.org/jira/browse/PLC4X-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17271131#comment-17271131
]
Christofer Dutz commented on PLC4X-205:
---------------------------------------
This issue actually happens on Mac/Linux if you try to use raw sockets and
don't run the application with elevated user rights ... unfortunately I don't
think there's much we can do about that :(
> Incorrect shutdown sequence on error
> ------------------------------------
>
> Key: PLC4X-205
> URL: https://issues.apache.org/jira/browse/PLC4X-205
> Project: Apache PLC4X
> Issue Type: Bug
> Components: Core
> Reporter: Niclas Hedhman
> Priority: Minor
>
> In the testcase below, there is a permission problem and I think because of
> that the closing of channel and buffers are out of order/state.
> [code]
> 11:59:51.855 [pool-1-thread-1] WARN i.n.c.AbstractChannelHandlerContext -
> Failed to mark a promise as failure because it has succeeded already:
> DefaultChannelPromise@63ab80ee(success)
> java.lang.IllegalStateException: close() must be invoked after the channel is
> closed.
> at
> io.netty.channel.ChannelOutboundBuffer.close(ChannelOutboundBuffer.java:683)
> at
> io.netty.channel.ChannelOutboundBuffer.close(ChannelOutboundBuffer.java:711)
> at
> io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:741)
> at
> io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:607)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.close(DefaultChannelPipeline.java:1352)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:622)
> at
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:606)
> at
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:472)
> at
> io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:957)
> at io.netty.channel.AbstractChannel.close(AbstractChannel.java:232)
> at
> io.netty.channel.ChannelFutureListener$2.operationComplete(ChannelFutureListener.java:56)
> at
> io.netty.channel.ChannelFutureListener$2.operationComplete(ChannelFutureListener.java:52)
> at
> io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
> at
> io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:551)
> at
> io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
> at
> io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:183)
> at
> io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
> at io.netty.bootstrap.Bootstrap$3.run(Bootstrap.java:248)
> at
> io.netty.channel.ThreadPerChannelEventLoop.run(ThreadPerChannelEventLoop.java:69)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
> at
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at java.lang.Thread.run(Thread.java:748)
> [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.26
> s <<< FAILURE! - in
> org.apache.plc4x.java.utils.rawsockets.netty.RawSocketChannelTest
> [ERROR] doConnect Time elapsed: 2.478 s <<< ERROR!
> org.pcap4j.core.PcapNativeException: lo: You don't have permission to capture
> on that device (socket: Operation not permitted)
> [code]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)