Skip to content

ServiceBus Client is not surfacing connection errors #39154

Open
@youngm

Description

@youngm

Describe the bug
If I create a ServiceBusClient 7.15.x with an invalid namespace (or something similar) then when I try to use the client to make a synchronous call I get a Timeout error instead of a ServiceBusException. With 7.14.x I immediately get a ServiceBusException.

Exception or Stack Trace
The error I get is:

java.lang.IllegalStateException: Timeout on blocking read for 245600000000 NANOSECONDS
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:127)
	at reactor.core.publisher.Mono.block(Mono.java:1805)
	at com.azure.messaging.servicebus.ServiceBusSenderClient.createMessageBatch(ServiceBusSenderClient.java:207)

In the logs but it appears to be ignored by the client:

reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: errorContext[NAMESPACE: bogus. ERROR CONTEXT: N/A]
Caused by: com.azure.core.amqp.exception.AmqpException: errorContext[NAMESPACE: bogus. ERROR CONTEXT: N/A]
	at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85)
	at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:362)
	at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:259)
	at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191)
	at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)
	at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324)
	at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291)
	at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91)
	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(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

To Reproduce
Try to use a client with bad connection information like a bad namespace in a synchronous call.

Code Snippet

    var client =
        new ServiceBusClientBuilder()
            .fullyQualifiedNamespace("bogus")
            .credential(new BasicAuthenticationCredential("bogus", "auth"))
            .sender()
            .queueName("bogus-queue")
            .buildClient();
    client.createMessageBatch();

Expected behavior
A quick ServiceBusException thrown

Metadata

Metadata

Assignees

Labels

ClientThis issue points to a problem in the data-plane of the library.Service Busbacklogcustomer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-team-attentionWorkflow: This issue needs attention from Azure service team or SDK teamquestionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions