Slackbot
08/05/2023, 8:59 AMMichał Cukierman
08/05/2023, 9:39 AMMichał Cukierman
08/05/2023, 12:37 PMAsaf Mesika
08/06/2023, 6:55 AMMichał Cukierman
08/07/2023, 12:48 PMPenghui
08/07/2023, 2:59 PMPenghui
08/07/2023, 3:00 PMsijieg
08/07/2023, 3:34 PMMichał Cukierman
08/07/2023, 4:45 PM-1 :
https://github.com/websight-io/pulsar-chaos-test/blob/main/run_prepare_topic.sh#L88
bin/pulsar-admin topics set-retention persistent://${tenant}/${namespace}/monolog --size -1 --time -1
Consumer is created after the producer, but it’s possible to read all the messages including `verification-message`:
https://github.com/websight-io/pulsar-chaos-test/blob/main/run.sh#L21C1-L21C42
I am receiving:
"OK 'verification-message' was present in 'monolog' topic before restart"
from the:
https://github.com/websight-io/pulsar-chaos-test/blob/main/run_verify.sh#L18
So yes, all the messages and the subscription were on the topic while reading. And retention worked before the restart.
@sijieg
I’ll correct that. I don’t think that the result will change, since all of the partitions are removed after restart
I get: Partitions need to create XMichał Cukierman
08/07/2023, 4:46 PMGrafana))Michał Cukierman
08/07/2023, 4:47 PMEarliest , but again I should not loose the ledgers and dataMichał Cukierman
08/07/2023, 5:14 PMbin/pulsar-admin topics delete-partitioned-topic <persistent://websight/dxp/monolog> --force
I also removed the subscriptions, but it didn’t help.
I get no errors in the log files.Michał Cukierman
08/07/2023, 5:25 PMMichał Cukierman
08/07/2023, 5:27 PMMichał Cukierman
08/07/2023, 6:35 PMReceived message: 'b'verification-message''
Received message: 'b'hello-pulsar-0''
Received message: 'b'hello-pulsar-1''
Received message: 'b'hello-pulsar-2''
Received message: 'b'hello-pulsar-3''
Received message: 'b'hello-pulsar-4''
Received message: 'b'hello-pulsar-5''
Received message: 'b'hello-pulsar-6''
Received message: 'b'hello-pulsar-7''
Received message: 'b'hello-pulsar-8''
Received message: 'b'hello-pulsar-9''
Received message: 'b'hello-pulsar-10''
...
2. Messages received after restart:
Received message: 'b'hello-pulsar-0''
Received message: 'b'hello-pulsar-4''
Received message: 'b'hello-pulsar-12''
Received message: 'b'hello-pulsar-24''
Received message: 'b'hello-pulsar-36''
Received message: 'b'hello-pulsar-48''
Received message: 'b'hello-pulsar-60''
Received message: 'b'hello-pulsar-72''
Received message: 'b'hello-pulsar-84''
Received message: 'b'hello-pulsar-96''
Received message: 'b'hello-pulsar-108''
Received message: 'b'hello-pulsar-120''
Received message: 'b'hello-pulsar-132''
Received message: 'b'hello-pulsar-144''
Received message: 'b'hello-pulsar-156''
Received message: 'b'hello-pulsar-168''
Received message: 'b'hello-pulsar-180''
Received message: 'b'hello-pulsar-192''
Received message: 'b'hello-pulsar-204''
Received message: 'b'hello-pulsar-216''
Received message: 'b'hello-pulsar-228''
Received message: 'b'hello-pulsar-240''
Received message: 'b'hello-pulsar-252''
Received message: 'b'hello-pulsar-264''
Received message: 'b'hello-pulsar-276''
Received message: 'b'hello-pulsar-288''
Received message: 'b'hello-pulsar-300''
Received message: 'b'hello-pulsar-312''
Received message: 'b'hello-pulsar-324''
Received message: 'b'hello-pulsar-336''
Received message: 'b'hello-pulsar-348''
Received message: 'b'hello-pulsar-360''
Received message: 'b'hello-pulsar-372''
Received message: 'b'hello-pulsar-384''
Received message: 'b'hello-pulsar-16''
Received message: 'b'hello-pulsar-28''
Received message: 'b'hello-pulsar-40''
Received message: 'b'hello-pulsar-52''
Received message: 'b'hello-pulsar-64''
Received message: 'b'hello-pulsar-76''
Received message: 'b'hello-pulsar-88''
Received message: 'b'hello-pulsar-100''
Received message: 'b'hello-pulsar-112''
Received message: 'b'hello-pulsar-124''
Received message: 'b'hello-pulsar-136''
Received message: 'b'hello-pulsar-148''
Received message: 'b'hello-pulsar-160''
Received message: 'b'hello-pulsar-172''
Received message: 'b'hello-pulsar-184''
Received message: 'b'hello-pulsar-196''
Received message: 'b'hello-pulsar-208''
Received message: 'b'hello-pulsar-220''
Received message: 'b'hello-pulsar-232''
Received message: 'b'hello-pulsar-244''
Received message: 'b'hello-pulsar-256''
Received message: 'b'hello-pulsar-268''
Received message: 'b'hello-pulsar-280''
Received message: 'b'hello-pulsar-292''
Received message: 'b'hello-pulsar-304''
Received message: 'b'hello-pulsar-316''
Received message: 'b'hello-pulsar-328''
Received message: 'b'hello-pulsar-340''
Received message: 'b'hello-pulsar-352''
Received message: 'b'hello-pulsar-364''
Received message: 'b'hello-pulsar-376''
Received message: 'b'hello-pulsar-388''
Received message: 'b'hello-pulsar-8''
Received message: 'b'hello-pulsar-20''
Received message: 'b'hello-pulsar-32''
Received message: 'b'hello-pulsar-44''
Received message: 'b'hello-pulsar-56''
Received message: 'b'hello-pulsar-68''
Received message: 'b'hello-pulsar-80''
Received message: 'b'hello-pulsar-92''
Received message: 'b'hello-pulsar-104''
Received message: 'b'hello-pulsar-116''
Received message: 'b'hello-pulsar-128''
Received message: 'b'hello-pulsar-140''
Received message: 'b'hello-pulsar-152''
Received message: 'b'hello-pulsar-164''
Received message: 'b'hello-pulsar-176''
Received message: 'b'hello-pulsar-188''
Received message: 'b'hello-pulsar-200''
Received message: 'b'hello-pulsar-212''
Received message: 'b'hello-pulsar-224''
Received message: 'b'hello-pulsar-236''
Received message: 'b'hello-pulsar-248''
Received message: 'b'hello-pulsar-260''
Received message: 'b'hello-pulsar-272''
Received message: 'b'hello-pulsar-284''
Received message: 'b'hello-pulsar-296''
Received message: 'b'hello-pulsar-308''
Received message: 'b'hello-pulsar-320''
Received message: 'b'hello-pulsar-332''
Received message: 'b'hello-pulsar-344''
Received message: 'b'hello-pulsar-356''
Received message: 'b'hello-pulsar-368''
Received message: 'b'hello-pulsar-380''
Received message: 'b'hello-pulsar-392''
Traceback (most recent call last):
File "/Users/michalcukierman/dev/pulsar/chaos_test/consumer_verify.py", line 9, in <module>
msg = consumer.receive(5000)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pulsar/__init__.py", line 1277, in receive
msg = self._consumer.receive(timeout_millis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_pulsar.Timeout: Pulsar error: TimeOutMichał Cukierman
08/07/2023, 6:42 PMMichał Cukierman
08/07/2023, 6:42 PMMichał Cukierman
08/07/2023, 6:52 PMbin/pulsar-admin topics get-retention <persistent://websight/dxp/chaos-test>
{
"retentionTimeInMinutes": -1,
"retentionSizeInMB": -1
}Michał Cukierman
08/07/2023, 7:05 PM➜ out git:(main) ✗ cat consumer.log | grep "hello-pulsar" | wc -l
1420
➜ out git:(main) ✗ cat verification.log | grep "hello-pulsar" | wc -l
1460
I’ve got more messages during the verification, but that may happen.
The data loss is happening when I am restarting 3 brokers out of 3 at the same time.Michał Cukierman
08/07/2023, 7:07 PMMichał Cukierman
08/07/2023, 7:09 PMMichał Cukierman
08/07/2023, 7:28 PMMichał Cukierman
08/08/2023, 8:05 PMResults:
NOK Missing partitions found
OK 'verification-message' was present in 'chaos-test' topic before restart
OK 'verification-message' is present in 'chaos-test' topic after restart
Messages available before restart:
2614
Messages available after restart:
1160
The retention is set:
{
"retentionTimeInMinutes": -1,
"retentionSizeInMB": -1
}
I am reading the topics using Earliest position.
The whole scenario can be easily reproduced using given repository. There is no external dependencies other than Pulsar 3.0.sijieg
08/09/2023, 1:54 AMvolumes:
persistence: false
In Kubernetes, it will uses emptyDir. So once the bookie or zk pod is restarted, the data is gone.Michał Cukierman
08/09/2023, 11:19 AMMichał Cukierman
08/09/2023, 11:19 AMMichał Cukierman
08/09/2023, 11:19 AMMichał Cukierman
08/09/2023, 11:21 AMMichał Cukierman
08/09/2023, 11:22 AMsijieg
08/09/2023, 3:14 PMverification.log , consumer.log?Michał Cukierman
08/09/2023, 4:34 PMMichał Cukierman
08/09/2023, 4:34 PMMichał Cukierman
08/09/2023, 4:35 PMMichał Cukierman
08/09/2023, 4:36 PMMichał Cukierman
08/09/2023, 4:38 PMMichał Cukierman
08/09/2023, 4:47 PMsijieg
08/09/2023, 4:53 PMcat consumer.log | grep "Received message" | grep "hello-pulsar" | awk '{ print $3 }' | sort | uniq > consume_messages.txt
cat verification.log | grep "Received message" | grep "hello-pulsar" | awk '{ print $3 }' | sort | uniq > unique_messages.txt
if you compare the results, you will see will have both consumers received the messages up to hello-pulsar-6326 and the verify consumer received the messages up to hello-pulsar-6334 (I assumed the consumer was killed later).sijieg
08/09/2023, 4:53 PMMichał Cukierman
08/09/2023, 4:56 PMMichał Cukierman
08/09/2023, 4:56 PMMichał Cukierman
08/09/2023, 4:57 PMMichał Cukierman
08/09/2023, 4:57 PMsijieg
08/09/2023, 4:59 PMsijieg
08/09/2023, 5:00 PMMichał Cukierman
08/09/2023, 5:00 PMsijieg
08/09/2023, 5:00 PMMichał Cukierman
08/09/2023, 5:02 PMsijieg
08/09/2023, 5:02 PMsijieg
08/09/2023, 5:02 PMMichał Cukierman
08/09/2023, 5:02 PMverirication-message messages as wellMichał Cukierman
08/09/2023, 5:02 PMMichał Cukierman
08/09/2023, 5:02 PMMichał Cukierman
08/09/2023, 5:03 PMsijieg
08/09/2023, 5:04 PMMichał Cukierman
08/09/2023, 5:05 PMMichał Cukierman
08/09/2023, 5:05 PMsijieg
08/09/2023, 5:14 PMMichał Cukierman
08/09/2023, 7:22 PMResults:
NOK Missing partitions found
OK 'verification-message' was present in 'chaos-topic' topic before restart
NOK 'verification-message' is not present in 'chaos-topic' topic after restart
Messages available before restart:
205
Messages available after restart:
88
I am using your scripts to sort unique keys. I am now able to connect to the partition using new subscription and I always receive 88 items.Michał Cukierman
08/09/2023, 7:22 PMMichał Cukierman
08/09/2023, 7:24 PMMichał Cukierman
08/09/2023, 7:27 PMimport pulsar
client = pulsar.Client('<pulsar://localhost:6650>')
consumer = client.subscribe('websight/dxp/chaos-topic',
subscription_name='NEW-SUBSCRIPTION_HERE',
initial_position=pulsar.InitialPosition.Earliest)
while True:
msg = consumer.receive(5000)
print("Received message: '%s'" % msg.data())
consumer.acknowledge(msg)
client.close()Michał Cukierman
08/09/2023, 7:28 PMMichał Cukierman
08/09/2023, 7:30 PMMichał Cukierman
08/09/2023, 7:33 PMMichał Cukierman
08/09/2023, 7:35 PM[NEW-SUBSCRIPTION_HERE-777] Current position 209:-1 is ahead of last position 155:29"Michał Cukierman
08/09/2023, 7:36 PMsijieg
08/09/2023, 7:40 PMTraceback (most recent call last):
File "/Users/michalcukierman/IdeaProjects/websight-io/chaos_test/consumer_verify.py", line 9, in <module>
msg = consumer.receive(5000)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pulsar/__init__.py", line 1277, in receive
msg = self._consumer.receive(timeout_millis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_pulsar.Timeout: Pulsar error: TimeOut
Can you try to change receive(5000) to receive()?
while True:
msg = consumer.receive(5000)
print("Received message: '%s'" % msg.data())
consumer.acknowledge(msg)Michał Cukierman
08/09/2023, 7:49 PMMichał Cukierman
08/09/2023, 7:50 PMMichał Cukierman
08/09/2023, 7:50 PMsijieg
08/09/2023, 7:50 PMMichał Cukierman
08/09/2023, 7:51 PMMichał Cukierman
08/09/2023, 7:51 PMMichał Cukierman
08/09/2023, 7:52 PM[NEW-SUBSCRIPTION_HERE-777] Current position 209:-1 is ahead of last position 155:29"Michał Cukierman
08/09/2023, 7:52 PMMichał Cukierman
08/09/2023, 7:53 PMsijieg
08/09/2023, 7:54 PMMichał Cukierman
08/09/2023, 7:54 PMMichał Cukierman
08/09/2023, 7:59 PMMichał Cukierman
08/09/2023, 8:00 PMMichał Cukierman
08/09/2023, 8:02 PMMichał Cukierman
08/09/2023, 8:02 PMbin/pulsar-admin topics partitioned-stats-internal websight/dxp/chaos-topicMichał Cukierman
08/10/2023, 11:42 AMYu Wei Sung
08/10/2023, 3:41 PMYu Wei Sung
08/10/2023, 3:43 PMMichał Cukierman
08/11/2023, 7:12 AMMichał Cukierman
08/11/2023, 7:16 AMMichał Cukierman
08/11/2023, 7:17 AMYu Wei Sung
08/11/2023, 1:45 PMYu Wei Sung
08/11/2023, 1:49 PMYu Wei Sung
08/11/2023, 1:55 PMYu Wei Sung
08/11/2023, 2:14 PMYu Wei Sung
08/11/2023, 2:20 PMMichał Cukierman
08/11/2023, 3:06 PMMichał Cukierman
08/11/2023, 3:12 PM