I wonder what would I have seen in the logs if someone had done something like this:
bin/pulsar-admin persistent reset-cursor --time 3h persistent://tenant/namespace/topic On Thu, Mar 17, 2022 at 1:54 PM Tecno Brain <cerebrotecnolog...@gmail.com> wrote: > Hi Penghui, > No, we are not seeing messages "disappear" because of TTL. > What we observed is that messages from 3 out of 20 topics were > reprocessed. > We initially thought that the messages were written again into the topic > by our own applications, but we did not find any evidence of that > happening. Our applications logs are pretty good and we would have found > some evidence. > We couldn't find the reason. > Our hypothesis was that the cursor was lost and I was trying to find a > way to verify that hypothesis through the Pulsar logs...looking if we had > lost a broker or a bookie. > Initially, I thought that perhaps those 3 topics belonged to the same > "bundle" and whenever the broker changed, the cursor was lost. > But Pulsar stores the cursor in the bookies, not the broker....so, a > broker change shouldn't affect the cursor for the subscription (a shared > subscription) > We haven't observed the same issue again. > > > > On Sat, Mar 12, 2022 at 7:21 AM PengHui Li <peng...@apache.org> wrote: > >> If you have TTL, the messages will be expired. >> You mean "cursor was lost", how do you verify this? >> to list subscriptions or not able to consume the message? >> If it is the latter, I think it should be related to the message TTL. >> >> And how about the "brokerDeleteInactiveTopicsMode" in your broker >> settings? >> If you are using "delete_when_subscriptions_caught_up", after all the >> message >> been expired, the topic will be deleted automatically by default. >> >> Penghui >> >> On Sat, Mar 12, 2022 at 5:28 AM Tecno Brain <cerebrotecnolog...@gmail.com> >> wrote: >> >>> We do have a backlog quota and messageTTL >>> >>> Our namespace is configured as follows: >>> >>> Backlog quota: >>> >>> >>> *"message_age BacklogQuotaImpl(limit=-1, limitSize=-1, >>> limitTime=180000, policy=consumer_backlog_eviction)"* >>> Retention: >>> >>> >>> >>> >>> *{ "retentionTimeInMinutes" : 0, "retentionSizeInMB" : 0}* >>> >>> Message TTL: >>> >>> *172800* >>> >>> All topics are partitioned. >>> >>> *{ >>> "partitions" : 3 >>> }* >>> >>> >>> On Thu, Mar 10, 2022 at 11:24 PM PengHui Li <codelipeng...@gmail.com> >>> wrote: >>> >>>> Have you changed the backlog quota policy or enabled the message TTL? >>>> Pulsar will not remove any cursors or skip messages by default. >>>> >>>> Penghui >>>> On Mar 11, 2022, 1:25 PM +0800, Tecno Brain < >>>> cerebrotecnolog...@gmail.com>, wrote: >>>> >>>> Hello, >>>> I have an application using Pulsar just as JMS (we get single >>>> messages, acknowledge them when we are done processing it) >>>> The entire system, composed of several types of apps, uses about 40 >>>> different topics. >>>> >>>> Yesterday, an application that subscribes to about 20 queues, suddenly >>>> was inundated with thousands of messages from two of the queues but I could >>>> not track those messages to an application producing them. We found that >>>> the messages were *duplicates*. >>>> So it seems that the cursor to these two topics was lost, and >>>> messages from 3 hours earlier were consumed again. I found the following >>>> paragraph : >>>> >>>> "Each subscription stores a cursor. The cursor is the current offset >>>> in the log. Subscriptions store their cursor in BookKeeper in ledgers. This >>>> makes cursor tracking scalable just like topics." >>>> ( >>>> https://jack-vanlightly.com/blog/2018/10/2/understanding-how-apache-pulsar-works >>>> ) >>>> >>>> My guess is that the cursor was lost. >>>> How could I verify that this was the case? I can't find anything >>>> relevant in the logs. >>>> >>>> The only message I found occurring around the same time is >>>> >>>> New ensemble: >>>> [pulsar-bookie-2.pulsar-bookie.pulsar.svc.cluster.local:3181, >>>> pulsar-bookie-0.pulsar-bookie.pulsar.svc.cluster.local:3181, >>>> pulsar-bookie-3.pulsar-bookie.pulsar.svc.cluster.local:3181] is not >>>> adhering to Placement Policy >>>> >>>> Any pointers are appreciated. >>>> >>>> >>>> >>>>