Skip to content
Discussions/App Development/Extractor issue: io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptionForum ↗

Extractor issue: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception

App Development5 posts8,082 views8 likesLast activity Jun 2020
PI
Piyush_BediOP
May 2020

Hi team,
When connecting to a currently running Sandbox the extractor is repeatedly throwing a io.grpc.StatusRuntimeException: UNAVAILABLE: io exception (Longer stack trace below).

The extractor was extracting ledger data then kept throwing this error as it reattempted to connect. The Sandbox is still running and it hasn’t been changed. Any suggestions on what may be. causing this?

Full stack trace:

15:03:27.628 [default-akka.actor.default-dispatcher-164] INFO  com.daml.extractor.Extractor - Starting streaming transactions from Absolute(0000000000003f9e)...
15:08:29.970 [default-akka.actor.default-dispatcher-166] WARN  a.s.s.RestartWithBackoffSource - Restarting graph due to failure. stack_trace: 
io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
	at io.grpc.Status.asRuntimeException(Status.java:533)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:442)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:700)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:399)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:507)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:66)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:627)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:515)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:686)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:675)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	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: java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	... 1 more
LE
Leonid_Shlyapnikov
May 2020
Piyush_Bedi:

Any suggestions on what may be. causing this?

Network failure/disconnect would cause this:

Restarting graph due to failure. stack_trace:io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
LE
Leonid_Shlyapnikov
May 2020
Piyush_Bedi:

The extractor was extracting ledger data then kept throwing this error as it reattempted to connect.

BTW, it is a WARNing. The extractor continued working after the reconnect, didn’t it? Must be some temporary network issue or may be ledger server got restarted in the middle of the run.

AN
anthony
Jun 2020

@Piyush_Bedi were you able to solve this error? And if so can you provide the solution in the thread?

PI
Piyush_Bedi
Jun 2020

The extractor continued to work after these exceptions and the root cause of the WARNs could not be determined

← Back to Discussions