Connection to ADLS2 fails

Hi,

I am getting following error when trying to connect to ADLS2 from Analytics platform:

image
ERROR Azure Data Lake Storage Gen2 Connector 7:150 Execute failed: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 30000ms in 'map' (and no fallback has been configured)

But everything works fine after a restart of KNIME. My colleagues are also facing this issue. I am frequently facing this issue now a days.
Excerpt from the log:

2022-02-17 12:00:21,295 : ERROR : KNIME-Worker-487-Azure Data Lake Storage Gen2 Connector 7:150 :  : Node : Azure Data Lake Storage Gen2 Connector : 7:150 : Execute failed: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 30000ms in 'map' (and no fallback has been configured)
reactor.core.Exceptions$ReactiveException: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 30000ms in 'map' (and no fallback has been configured)
	at reactor.core.Exceptions.propagate(Exceptions.java:393)
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
	at reactor.core.publisher.Flux.blockLast(Flux.java:2497)
	at com.azure.core.util.paging.ContinuablePagedByIteratorBase.requestPage(ContinuablePagedByIteratorBase.java:94)
	at com.azure.core.util.paging.ContinuablePagedByItemIterable$ContinuablePagedByItemIterator.<init>(ContinuablePagedByItemIterable.java:50)
	at com.azure.core.util.paging.ContinuablePagedByItemIterable.iterator(ContinuablePagedByItemIterable.java:37)
	at com.azure.core.util.paging.ContinuablePagedIterable.iterator(ContinuablePagedIterable.java:106)
	at org.knime.ext.azure.adls.gen2.filehandling.fs.AdlsFileSystem.ensureSuccessfulAuthentication(AdlsFileSystem.java:113)
	at org.knime.ext.azure.adls.gen2.filehandling.fs.AdlsFileSystem.<init>(AdlsFileSystem.java:98)
	at org.knime.ext.azure.adls.gen2.filehandling.fs.AdlsFSConnection.<init>(AdlsFSConnection.java:86)
	at org.knime.ext.azure.adls.gen2.filehandling.node.AdlsConnectorNodeModel.execute(AdlsConnectorNodeModel.java:117)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:549)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1259)
	at org.knime.core.node.Node.execute(Node.java:1039)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:559)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:117)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:365)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:219)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
		... 22 more
Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 30000ms in 'map' (and no fallback has been configured)
	at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:288)
	at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:273)
	at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:395)
	at reactor.core.publisher.StrictSubscriber.onNext(StrictSubscriber.java:89)
	at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)
	at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117)
	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
1 Like

Hi @nithinth7,

Welcome to Knime Community!

Looking at the logs, it seems like the first connection is successful and the connection fails after 30 seconds. This is because the default value used by the connector is 30 seconds and in case service calls are huge we may need to increase the timeout value(screenshot).

Let us know your thoughts on the same.

Regards,
NS

Hi @nagarjun36 ,

Thank you for the reply. It usually takes only couple of seconds. When it fails in 30 seconds, it works again after a knime restart and only takes 2 to 3 seconds to connect. So I believe the timeout value is not the reason.

Thanks,
Nithin

Hi @nagarjun36

I have the same issue. The only solution seems to be a restart.
Do you know if there is a workaround where we don’t have to restart Knime?