azure-service-bus-java icon indicating copy to clipboard operation
azure-service-bus-java copied to clipboard

UnHandled exception while processing events in reactor while sending or receiving messages using Azure service bus java SDK

Open lillygracy opened this issue 8 years ago • 15 comments

Actual Behavior

  1. I am using azure-servicebus with version1.0.0. while trying to send messages to Azure queues using MessageSender class getting below error

[ERROR] 2017-10-03 08:41:38.509 [ReactorThreada232fb4f-2818-4bb9-979e-c491a02cf88a] MessagingFactory:279 - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: cb4a0a72-38de-4374-81f8-90a2fd3edc04, at: 2017-10-03T08:41:38.509Z[GMT] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) [azure-servicebus-1.0.0.jar!/:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102] Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:244) ~[?:1.8.0_102] at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:309) ~[proton-j-0.14.0.jar!/:?] at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:277) ~[proton-j-0.14.0.jar!/:?] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ~[azure-servicebus-1.0.0.jar!/:?] ... 1 more

  1. Please let me know what is the reason for getting this error or any fix is available to resolve the error.

Expected Behavior

Versions

  • OS platform and version: Windows, Java
  • Maven package version or commit ID: azure-servicebus, 1.0.0

lillygracy avatar Oct 03 '17 15:10 lillygracy

What is the connection string you are using to create that MessageSender?

yvgopal avatar Oct 03 '17 18:10 yvgopal

Please find used connection string :

final ConnectionStringBuilder connectionBuilder = new ConnectionStringBuilder( "Endpoint=amqps://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=MCGRUNLsAXhUBCjE04mBF7Vq41pA4OwvkowcVI+QoAA=", "queueName"); final IMessageSender messageSender = ClientFactory .createMessageSenderFromConnectionStringBuilder(connectionBuilder);

and for sending messages i had used below code:

messageSender.sendAsync(new Message(message)).thenRunAsync( () -> logger.debug("Message has been sent to Queue: " + queueName + " successfully "));

lillygracy avatar Oct 04 '17 03:10 lillygracy

Is your namespace really "namespace.servicebus.windows.net" or you replaced the actual namespace name with 'namespace' before pasting it here? I have never seen this error before. We have just released version 1.1.0. Please update your pom to use the latest version. Could you run your sample again with debug level logging enabled and send me the logs?

yvgopal avatar Oct 04 '17 19:10 yvgopal

I am closing this issue as I haven't received any response. Please reopen the issue if the issue is still not resolved.

yvgopal avatar Oct 11 '17 01:10 yvgopal

Hi,

We are facing this issue even after upgrading the SDK version to 1.1.0. I don't see much in the log files except the below exception. But after sometime, the application seems to be working fine by establishing the connection to service bus.

com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: b5a84435-4fd8-4059-9769-1093452a0f90, at: 2017-10-27T14:18:29.959Z[GMT]

Please provide your thoughts on this.

ndaya76 avatar Oct 27 '17 14:10 ndaya76

Could you send me a copy of your code (remove your secrets)? Could you attach the log files to this thread?

yvgopal avatar Oct 27 '17 19:10 yvgopal

I am having the same issue with this. Was there any resolution to this error ? Just trying to connect to a topic. Actually download sample code, and plugged in my azure service bus settings.

mcnealjwefx avatar Jan 05 '18 20:01 mcnealjwefx

@mcnealjwefx I think they got it working. We had communication going on for some time, after that they stopped when I asked for logs generated by the sdk. I hope the issue was resolved for them. I have never seen the problem they reported. Many others just took the samples and got them working the first time. I couldn't resolve it as I couldn't reproduce it. I need log files to diagnose and the resolve the issue. The SDK by default generates logs. Could you capture the logs and send them to me along with the exception you are running into?

yvgopal avatar Jan 05 '18 22:01 yvgopal

10:39:39.002 [main] INFO com.microsoft.azure.servicebus.MessageSender - Creating MessagingFactory from connection string 'Endpoint=amqps://myservicebus.servicebus.windows.net;EntityPath=mytopic;' 10:39:40.111 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating messaging factory from connection string 'Endpoint=amqps://myservicebus.servicebus.windows.net;EntityPath=mytopic;' 10:39:40.239 [main] DEBUG com.microsoft.azure.servicebus.primitives.Timer - Starting ScheduledThreadPoolExecutor with coreThreadPoolSize:8 10:39:40.681 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating and starting reactor 10:39:41.535 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - starting reactor instance. 10:39:41.535 [main] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Started reactor 10:39:41.551 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ReactorHandler - reactor.onReactorInit 10:39:41.551 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] INFO com.microsoft.azure.servicebus.primitives.MessagingFactory - Creating connection to host 'myservicebus.servicebus.windows.net:5671' 10:39:41.558 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ConnectionHandler - onConnectionInit: hostname:myservicebus.servicebus.windows.net:5671 10:39:41.667 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] DEBUG com.microsoft.azure.servicebus.amqp.ConnectionHandler - onConnectionBound: hostname:myservicebus.servicebus.windows.net:5671 10:40:02.996 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] ERROR com.microsoft.azure.servicebus.primitives.MessagingFactory - UnHandled exception while processing events in reactor: org.apache.qpid.proton.engine.HandlerException: java.lang.IllegalArgumentException at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: null at java.nio.Buffer.position(Buffer.java:244) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ... 4 common frames omitted 10:40:03.042 [ReactorThreade45acb30-6b74-4f45-8453-e5c40ae06585] ERROR com.microsoft.azure.servicebus.primitives.MessagingFactory - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: fead3e9e-da7a-40d6-8b4c-e7863c563ed8, at: 2018-01-08T10:40:03.030-05:00[America/New_York] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: null at java.nio.Buffer.position(Buffer.java:244) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 common frames omitted

mcnealjwefx avatar Jan 08 '18 16:01 mcnealjwefx

This is the code being used:

 ConnectionStringBuilder connectionStringBuilder = new ConnectionStringBuilder(

            "myservicebus",
            "mytopic", // QueueName or TopicName or SubscriptionPath

            "RootManageSharedAccessKey", 

            "mysecretekey");
   // 
    sendClient = new TopicClient(connectionStringBuilder);

mcnealjwefx avatar Jan 08 '18 16:01 mcnealjwefx

dependencies { compile('com.microsoft.azure:azure-spring-boot') compile('com.microsoft.azure:azure-servicebus-spring-boot-starter') compile('com.google.code.gson:gson:2.8.2') compile('commons-cli:commons-cli:1.4') testCompile('org.springframework.boot:spring-boot-starter-test') }

mcnealjwefx avatar Jan 08 '18 16:01 mcnealjwefx

Looks like a problem in one of the dependencies, , while establishing SSL connection. What is the version of azure service bus SDK you are using? What is the os on the client machine? Can you run a sample as a standalone java program? By standalone, I mean not using spring framework or any other extra dependencies.

yvgopal avatar Jan 09 '18 02:01 yvgopal

Hi Gopal I am using the below code to send and receive messages from a Queue but am still getting the above error.

`import java.time.Duration; import java.util.concurrent.CompletableFuture;

import com.microsoft.azure.servicebus.*; import com.microsoft.azure.servicebus.primitives.ConnectionStringBuilder;

public class BasicSendReceiveWithQueueClient { // Connection String for the namespace can be obtained from the Azure portal under the // 'Shared Access policies' section. private static final String connectionString = "Endpoint=sb://..."; private static final String queueName = "..."; private static QueueClient queueClient; private static int totalSend = 1; private static int totalReceived = 0;`

public static void main(String[] args) throws Exception {

 //   Log.log("Starting BasicSendReceiveWithQueueClient sample");

    // create client
  //  Log.log("Create queue client.");
    queueClient = new QueueClient(new ConnectionStringBuilder(connectionString, queueName), ReceiveMode.PEEKLOCK);
  
    // send and receive
    queueClient.registerMessageHandler(new MessageHandler(queueClient), new MessageHandlerOptions(1, false, Duration.ofMinutes(1)));
    for (int i = 0; i < totalSend; i++) {
        int j = i;
      //  Log.log("Sending message #%d.", j);
        queueClient.sendAsync(new Message("Some Text to the Queue" + i)).thenRunAsync(() -> { System.out.println("Sent message #%d."+ j);});
    }

    while(totalReceived != totalSend) {
        Thread.sleep(1000);
    }

    System.out.println("Received all messages, exiting the sample.");
    System.out.println("Closing queue client.");
    queueClient.close();
}

static class MessageHandler implements IMessageHandler {
    private IQueueClient client;

    public MessageHandler(IQueueClient client) {
        this.client = client;
    }

    @Override
    public CompletableFuture<Void> onMessageAsync(IMessage iMessage) {
       System.out.println("Received message with sq#: %d and lock token: %s." + iMessage.getSequenceNumber()+ " " + iMessage.getLockToken());
        return this.client.completeAsync(iMessage.getLockToken()).thenRunAsync(() -> {
        	 System.out.println("Completed message sq#: %d and locktoken: %s" + iMessage.getSequenceNumber() + " " + iMessage.getLockToken());
            totalReceived++;
        });
    }

    @Override
    public void notifyException(Throwable throwable, ExceptionPhase exceptionPhase) {
    	 System.out.println(exceptionPhase + "-" + throwable.getMessage());
    }
}

}`

Exception: Creating connection to host '....servicebus.windows.net:5671' Jun 05, 2018 8:16:10 AM org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory getClass WARNING: unable to load org.bouncycastle.openssl.PEMReader 2018-06-05 08:16:12 - ERROR MessagingFactory:461 - UnHandled exception while processing events in reactor: org.apache.qpid.proton.engine.HandlerException: java.lang.IllegalArgumentException at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ... 4 more 2018-06-05 08:16:12 - ERROR MessagingFactory:280 - Reactor error occured com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: e5a8f5ba-18b8-4483-8d68-4a1e1a8d9e42, at: 2018-06-05T08:16:12.719+05:30[Asia/Calcutta] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 more Exception in thread "main" com.microsoft.azure.servicebus.primitives.ServiceBusException: java.lang.IllegalArgumentException, TrackingId: e5a8f5ba-18b8-4483-8d68-4a1e1a8d9e42, at: 2018-06-05T08:16:12.719+05:30[Asia/Calcutta] at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:470) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.pop(SimpleSslTransportWrapper.java:411) at org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportWrapper.pop(SslImpl.java:185) at org.apache.qpid.proton.engine.impl.TransportImpl.pop(TransportImpl.java:1476) at org.apache.qpid.proton.reactor.impl.SelectorImpl.select(SelectorImpl.java:145) at org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(IOHandler.java:57) at org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:381) at org.apache.qpid.proton.engine.BaseHandler.onReactorQuiesced(BaseHandler.java:87) at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:206) at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:307) at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276) at com.microsoft.azure.servicebus.primitives.MessagingFactory$RunReactor.run(MessagingFactory.java:448) ... 1 more

abhijitmhp avatar Jun 05 '18 03:06 abhijitmhp

https://github.com/Microsoft/azure-spring-boot/issues/243

https://issues.apache.org/jira/browse/PROTON-1275

It has the same issue and solution is in second link.Please refer to these links

abhilashmk avatar Aug 10 '18 14:08 abhilashmk

#please-close

xurui203 avatar May 16 '19 23:05 xurui203