Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@kontotto
Copy link
Contributor

This PR fixes an potential issue of examples/consumer_listener.js where client connections could be unintentionally disconnected.

Motivation

In the code below, which is a modified version of examples/consumer_listener.js, the connection is disconnected after a few seconds. I want to fix it.

const Pulsar = require('../');

(async () => {
  // Create a client
  const client = new Pulsar.Client({
    serviceUrl: 'pulsar://localhost:6650',
  });

  Pulsar.Client.setLogHandler((level, file, line, message) => {
        console.log('[%s][%s:%d] %s', level, file, line, message);
    });

  // Create a consumer with listener
  const consumer = await client.subscribe({
    topic: 'persistent://public/default/my-topic',
    subscription: 'sub1',
    subscriptionType: 'Shared',
    listener: (msg, msgConsumer) => {
      console.log(msg.getData().toString());
      msgConsumer.acknowledge(msg);
    },
  });
})();
[1][Client:90] Subscribing on Topic :persistent://public/default/my-topic
[1][ClientConnection:184] [<none> -> pulsar://localhost:6650] Create ClientConnection, timeout=10000
[1][ConnectionPool:106] Created connection for pulsar://localhost:6650
[1][ClientConnection:382] [127.0.0.1:52044 -> 127.0.0.1:6650] Connected to broker
[1][HandlerBase:72] [0x600000be2f88, sub1, 0] Getting connection from pool
[1][ConsumerImpl:282] [0x600000be2f88, sub1, 0] Created consumer on broker [127.0.0.1:52044 -> 127.0.0.1:6650]
[1][ClientConnection:1236] [127.0.0.1:52044 -> 127.0.0.1:6650] Connection disconnected

Modifications

Fixed to prevent client from being released

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

Documentation

  • doc-required
    (Your PR needs to update docs and you will update later)

  • doc-not-needed
    (Please explain why)
    I just changed some of the variable declarations.

  • doc
    (Your PR contains doc changes)

  • doc-complete
    (Docs have been already added)

Copy link
Member

@RobertIndie RobertIndie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@shibd
Copy link
Member

shibd commented Nov 16, 2023

In macOS build will be failed. I will handle this later.

@shibd shibd merged commit de6caa8 into apache:master Nov 16, 2023
@kontotto kontotto deleted the fix_examples_consumer_listener branch November 16, 2023 02:45
@shibd shibd added this to the 1.10.0 milestone Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.