BewareMyPower commented on issue #14372:
URL: https://github.com/apache/pulsar/issues/14372#issuecomment-1044415183


   > The last line acknowledge_cumulative() throws RuntimeError: 
bad_function_call.
   
   C++ consumer doesn't support cumulative ACK for multiple topics, see 
https://github.com/apache/pulsar/blob/0facd24e8eec2df56f6f241ce2cf87eb98590a7e/pulsar-client-cpp/lib/MultiTopicsConsumerImpl.cc#L558-L560
   
   I tried to add the support long days ago, see #6796, but the feature seems 
to be controversial.
   
   I modified your script to
   
   ```python
   import pulsar
   from _pulsar import InitialPosition
   
   client = pulsar.Client(service_url='pulsar://localhost:6650')
   
   consumer = client.subscribe(['topic1', 'topic2'], subscription_name='test', 
initial_position=InitialPosition.Earliest)
   msg = consumer.receive()
   
   try:
       consumer.acknowledge_cumulative(msg)
   except Exception as e:
       print("ack failed: {}".format(e))
   
   client.close()
   ```
   
   and produced one message to `topic1`, the output is:
   
   ```
   2022-02-18 20:00:22.871 INFO  [0x1119d1600] ClientConnection:182 | [<none> 
-> pulsar://localhost:6650] Create ClientConnection, timeout=10000
   2022-02-18 20:00:22.871 INFO  [0x1119d1600] ConnectionPool:96 | Created 
connection for pulsar://localhost:6650
   2022-02-18 20:00:22.873 INFO  [0x70000325b000] ClientConnection:368 | 
[127.0.0.1:50215 -> 127.0.0.1:6650] Connected to broker
   2022-02-18 20:00:22.876 INFO  [0x70000325b000] HandlerBase:64 | 
[persistent://public/default/topic1, test, 0] Getting connection from pool
   2022-02-18 20:00:22.876 INFO  [0x70000325b000] HandlerBase:64 | 
[persistent://public/default/topic2, test, 1] Getting connection from pool
   2022-02-18 20:00:22.878 INFO  [0x70000325b000] ConsumerImpl:224 | 
[persistent://public/default/topic1, test, 0] Created consumer on broker 
[127.0.0.1:50215 -> 127.0.0.1:6650] 
   2022-02-18 20:00:22.879 INFO  [0x70000325b000] ConsumerImpl:224 | 
[persistent://public/default/topic2, test, 1] Created consumer on broker 
[127.0.0.1:50215 -> 127.0.0.1:6650] 
   2022-02-18 20:00:22.879 INFO  [0x70000325b000] MultiTopicsConsumerImpl:95 | 
Successfully Subscribed to Topics
   ack failed: std::exception
   2022-02-18 20:00:22.901 INFO  [0x1119d1600] ClientImpl:496 | Closing Pulsar 
client with 0 producers and 1 consumers
   2022-02-18 20:00:22.901 INFO  [0x1119d1600] ConsumerImpl:999 | 
[persistent://public/default/topic1, test, 0] Closing consumer for topic 
persistent://public/default/topic1
   2022-02-18 20:00:22.901 INFO  [0x1119d1600] ConsumerImpl:999 | 
[persistent://public/default/topic2, test, 1] Closing consumer for topic 
persistent://public/default/topic2
   2022-02-18 20:00:22.902 INFO  [0x70000325b000] ConsumerImpl:1055 | 
[persistent://public/default/topic1, test, 0] Closed consumer 0
   2022-02-18 20:00:22.903 INFO  [0x70000325b000] ConsumerImpl:1055 | 
[persistent://public/default/topic2, test, 1] Closed consumer 1
   2022-02-18 20:00:22.903 INFO  [0x70000325b000] ClientConnection:1548 | 
[127.0.0.1:50215 -> 127.0.0.1:6650] Connection closed
   2022-02-18 20:00:22.903 INFO  [0x70000325b000] ClientConnection:256 | 
[127.0.0.1:50215 -> 127.0.0.1:6650] Destroyed connection
   ```
   
   It looks like this issue is related to the close process, not the cumulative 
acknowledgement.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to