Skip to content

Got " Failed to create consumer at reconnect" when stop pulsar broker first and restart it later #1290

Open
@zhangbiao2009

Description

@zhangbiao2009

Expected behavior

Expect no error happens.

Actual behavior

image

Steps to reproduce

  1. run the go example program
  2. stop pulsar broker
  3. observe the output of go example, start pulsar broker after you see this error message: error="dial tcp [::1]:6650: connect: connection refused" remote_addr="pulsar://localhost:6650"
  4. you can see the Failed to create consumer at reconnect now.

program example to reproduce:

package main

import (
	"context"
	"fmt"
	"log"

	"net/http"
	_ "net/http/pprof"

	"github.com/apache/pulsar-client-go/pulsar"
)

func main() {

	go func() {
		log.Println(http.ListenAndServe("localhost:6060", nil))
	}()

	// Create a Pulsar client
	client, err := pulsar.NewClient(pulsar.ClientOptions{
		URL: "pulsar://localhost:6650",
	})
	if err != nil {
		log.Fatalf("Could not create Pulsar client: %v", err)
	}
	defer client.Close()

	consumer, err := client.Subscribe(pulsar.ConsumerOptions{
		Topic:            "my-topic",
		SubscriptionName: "my-subscription",
		Type:             pulsar.KeyShared,
	})
	if err != nil {
		fmt.Printf("Could not create consumer: %v\n", err)
		return
	}
	go func() {
		for {
			msg, err := consumer.Receive(context.Background())
			if err != nil {
				log.Printf("Error receiving message: %v", err)
				break
			}

			// Process the message
			fmt.Printf("Received message msgId: %v -- content: '%s'\n",
				msg.ID(), string(msg.Payload()))

			// Acknowledge the message
			consumer.Ack(msg)
		}
	}()

	// Keep the main function alive to allow the goroutine to run
	select {}
}

System configuration

Macbook Pro 2021
go version: 1.23.0
pulsar go sdk version: 0.13.1

pulsar broker version: latest docker image. I run it with this command:
docker run -it \ -p 6650:6650 \ -p 8080:8080 \ apachepulsar/pulsar:latest \ bin/pulsar standalone

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions