Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Event Hub Producer client fails to refresh auth token #7149

Closed
srnagar opened this issue Jan 6, 2020 · 0 comments · Fixed by #7166
Closed

[BUG] Event Hub Producer client fails to refresh auth token #7149

srnagar opened this issue Jan 6, 2020 · 0 comments · Fixed by #7166
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs

Comments

@srnagar
Copy link
Member

srnagar commented Jan 6, 2020

A long-running Event Hub producer client fails to refresh auth token after a few minutes of running and stops sending events with the following exception.

Exception:

Exception in thread "amqp://event-processor-interop.servicebus.windows.net/interop-test-tokenManager" reactor.core.Exceptions$BubblingException: java.lang.NullPointerException
	at reactor.core.Exceptions.bubble(Exceptions.java:154)
	at reactor.core.publisher.Operators.onErrorDropped(Operators.java:521)
	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:247)
	at reactor.core.publisher.Operators$MonoSubscriber.onError(Operators.java:1633)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreInner.onError(MonoIgnoreThen.java:235)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:153)
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
	at reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:383)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4087)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172)
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4087)
	at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:199)
	at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:48)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:147)
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4087)
	at reactor.core.publisher.Mono.subscribeWith(Mono.java:4193)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4059)
	at reactor.core.publisher.Mono.subscribe(Mono.java:3995)
	at reactor.core.publisher.Mono.subscribe(Mono.java:3967)
	at com.azure.core.amqp.implementation.ActiveClientTokenManager$RefreshAuthorizationToken.run(ActiveClientTokenManager.java:124)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
	at java.base/java.util.TimerThread.run(Timer.java:506)
Caused by: java.lang.NullPointerException
	at com.azure.core.amqp.implementation.ActiveClientTokenManager$RefreshAuthorizationToken.lambda$run$1(ActiveClientTokenManager.java:146)
	at reactor.core.publisher.LambdaMonoSubscriber.doError(LambdaMonoSubscriber.java:152)
	at reactor.core.publisher.LambdaMonoSubscriber.onError(LambdaMonoSubscriber.java:147)
	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onError(FluxMapFuseable.java:134)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:185)
	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:251)
	at reactor.core.publisher.Operators$MonoSubscriber.onError(Operators.java:1633)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreInner.onError(MonoIgnoreThen.java:235)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:185)
	at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:251)
	at reactor.core.publisher.Operators$MonoSubscriber.onError(Operators.java:1633)
	at reactor.core.publisher.MonoIgnoreThen$ThenAcceptInner.onError(MonoIgnoreThen.java:306)
	at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:183)
	at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:60)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153)
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
	... 21 more

Code sample:

   public static void main(String args[]) throws InterruptedException {
        EventHubProducerAsyncClient producer = new EventHubClientBuilder()
            .connectionString(CONNECTION_STRING)
            .buildAsyncProducerClient();
        System.out.println("Creating batch and sending events");
        producer.createBatch()
            .flatMap(batch -> {
                batch.tryAdd(new EventData("Test event"));
                return producer.send(batch);
            }).repeat(() -> true)
//            .take(Duration.ofMinutes(300))
            .subscribe(unused -> {
                    System.out.println("Message sent");
                },
                error -> System.out.println("Error sending event " + error.getMessage()),
                () -> System.out.println("Complete sending"));
        TimeUnit.MINUTES.sleep(300);
        producer.close();
        System.out.println("Closing application");
    }
@srnagar srnagar added Client This issue points to a problem in the data-plane of the library. Event Hubs labels Jan 6, 2020
@triage-new-issues triage-new-issues bot removed the triage label Jan 6, 2020
@srnagar srnagar added this to the [2020] January milestone Jan 6, 2020
@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant