nats-server icon indicating copy to clipboard operation
nats-server copied to clipboard

What are waiting pulls?

Open Exagram opened this issue 2 years ago • 0 comments

My goal is to diagnose why a pull-based consumer isn't receiving messages. All I see is "waiting pulls" incremented each time I next the consumer. On a side-note, please document what "waiting pulls" means.

First I publish a message:

nats pub "a.b.test" "{}"
REDACTED Published 2 bytes to "a.b.test"

Second I request next from STREAM WORKER but get back nothing:

> nats consumer next STREAM WORKER
nats.exe: error: no message received: nats: timeout

> nats consumer info STREAM WORKER
Information for Consumer STREAM > WORKER created REDACTED

Configuration:
        Durable Name: WORKER
           Pull Mode: true
      Filter Subject: a.b.>
      Deliver Policy: New
          Ack Policy: Explicit
       Replay Policy: Instant
     Max Ack Pending: 20,000
   Max Waiting Pulls: 512

State:

   Last Delivered Message: Consumer sequence: 142 Stream sequence: 869
     Acknowledgment floor: Consumer sequence: 142 Stream sequence: 869
         Outstanding Acks: 0 out of maximum 20,000
     Redelivered Messages: 0
     Unprocessed Messages: 0
            Waiting Pulls: 70 of maximum 512

Interesting. I have 70 waiting pulls. What does this mean? Let's do another next:

> nats consumer next STREAM WORKER
nats.exe: error: no message received: nats: timeout

> nats consumer info STREAM WORKER
Information for Consumer STREAM > WORKER created REDACTED

Configuration:

        Durable Name: WORKER
           Pull Mode: true
      Filter Subject: a.b.>
          Ack Policy: Explicit
       Replay Policy: Instant
     Max Ack Pending: 20,000
   Max Waiting Pulls: 512

State:

   Last Delivered Message: Consumer sequence: 142 Stream sequence: 869
     Acknowledgment floor: Consumer sequence: 142 Stream sequence: 869
         Outstanding Acks: 0 out of maximum 20,000
     Redelivered Messages: 0
     Unprocessed Messages: 0
            Waiting Pulls: 72 of maximum 512

I only performed one next so why does it show 2 "waiting pulls"?

Exagram avatar Jun 20 '22 17:06 Exagram