Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.

uncaught disconnected event #34

Closed
willin opened this issue Aug 21, 2017 · 1 comment
Closed

uncaught disconnected event #34

willin opened this issue Aug 21, 2017 · 1 comment

Comments

@willin
Copy link

willin commented Aug 21, 2017

https://github.com/AirDwing/iothub-mqtt-demo/blob/master/server/lib/eventhub.js#L29-L35

    const receiver = await client.createReceiver('$Default', partitionId, { startAfterTime: Date.now() }); // we use startAfterOffset
    receiver.on('errorReceived', async (err) => {
      if (err.transport && err.transport.name === 'AmqpProtocolError') {
        console.log(`Restart #${partitionId}`);
        await createReceiver({ connStr, errorHandler, messageHandler });
      } else {
        await errorHandler(err);
      }
    });

when AmqpProtocolError, we will reconnect eventhubs.
but we( @zhangyf92 ) found that:

2017-08-15 07:35:45 +08:00: worker #1 PID:25215 Restart #2
2017-08-15 09:46:15 +08:00: worker #1 PID:25215 Restart #2
2017-08-15 11:26:39 +08:00: worker #1 PID:25215 Restart #1
2017-08-15 11:26:39 +08:00: worker #2 PID:25217 Restart #0
2017-08-15 11:46:38 +08:00: worker #2 PID:25217 Restart #0
2017-08-15 13:26:10 +08:00: worker #2 PID:25217 Restart #1
2017-08-15 14:36:42 +08:00: worker #1 PID:25215 Restart #0
2017-08-15 15:26:10 +08:00: worker #1 PID:25215 Restart #3
2017-08-15 15:36:16 +08:00: worker #1 PID:25215 Restart #3
2017-08-15 15:36:16 +08:00: worker #2 PID:25217 Restart #0
2017-08-15 16:46:12 +08:00: worker #1 PID:25215 Restart #0
2017-08-15 17:46:14 +08:00: worker #2 PID:25217 Restart #0
2017-08-15 20:46:39 +08:00: worker #2 PID:25217 Restart #1
2017-08-15 21:26:03 +08:00: worker #1 PID:25215 Restart #2
2017-08-15 21:36:09 +08:00: worker #1 PID:25215 Restart #2
2017-08-15 21:46:02 +08:00: worker #2 PID:25217 Restart #1
2017-08-15 22:36:24 +08:00: worker #1 PID:25215 Restart #2
2017-08-16 01:46:43 +08:00: worker #1 PID:25215 Restart #2
2017-08-16 08:46:33 +08:00: worker #1 PID:25215 Restart #2
2017-08-16 08:46:33 +08:00: worker #1 PID:25215 Restart #3
2017-08-19 10:46:27 +08:00: worker #2 PID:25217 Restart #0

after 2017-8-19 never restart again and message lost, cannot received. when we killed the process and restart server, message can be received.

i looked into source code: https://github.com/Azure/azure-event-hubs-node/issues#L40-L47

  self.on('newListener', function (event) {
    if (event === 'errorReceived') {
      amqpReceiverLink.on('errorReceived', onErrorReceived);
    }
    else if (event === 'message') {
      amqpReceiverLink.on('message', onMessage);
    }
  });

whether add a close event listener can be helpful? ref: https://noodlefrenzy.github.io/node-amqp10/AMQPClient.html#event:connection:closed

@amarzavery
Copy link
Collaborator

amarzavery commented Apr 24, 2018

@willin - We have a new preview version "0.1.0" of the event hubs node.js client. This client was re-written from scratch. Please try the new version and let us know if you still see issues. You can find examples over here.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants