The GitHub Actions job "Build" on 
rocketmq-clients.git/feat/rust-lite-simple-consumer has failed.
Run started by GitHub user zhaohai666 (triggered by zhaohai666).

Head commit for run:
8d6f16b00c419d2292aa5567fb237c2d18c6d321 / zhaohaihzb <[email protected]>
[rust] Add LiteSimpleConsumer with tests and example

Implement the lite-topic variant of SimpleConsumer for the Rust client,
mirroring the Java reference implementation.

Implementation
- LiteSimpleConsumer: a consumer bound to a single parent (bind) topic that
  dynamically (un)subscribes lite topics through SyncLiteSubscription and pulls
  messages explicitly with receive()/ack()/change_invisible_duration(). It
  wraps a SimpleConsumer plus a lightweight cloned client shared with
  LiteSubscriptionManager, and forwards NotifyUnsubscribeLiteCommand / Settings
  telemetry commands to the manager.
- ClientType: add LiteSimpleConsumer (=6) and a clone_for_lite_simple_consumer()
  variant of the lite client clone.
- build_lite_simple_consumer_settings(): simple consumer settings carrying
  client type LITE_SIMPLE_CONSUMER and the bind topic with a SUB_ALL filter.
- prune_lite_route(): keep only the first readable master queue of a route, as
  LiteSimpleConsumerImpl#updateSubscriptionLoadBalancer does in Java.
- SimpleConsumer: add new_with_client(), start_with_telemetry(),
  check_started(), shutdown_ref() and receive_lite() so the lite consumer can
  reuse the simple consumer plumbing.

Defect fix: missing liteTopic in ack
- AckMessageEntry now exposes lite_topic() and the ack / change invisible
  duration requests carry it. Without it the proxy cannot resolve the LMQ
  receipt handle and answers 50001 INTERNAL_SERVER_ERROR.

Defect fix: unsubscribeLite always failed
- LiteSubscriptionManager::unsubscribe_lite() validated the running state on the
  lightweight client clone, whose shutdown_tx is intentionally None, so it
  always answered "client is not started". The state check now belongs to the
  public API of the owning consumer, like subscribeLite already did.

Tests
- tests/lite_simple_consumer_test.rs: 4 offline tests (builder validation,
  accessors, life cycle checks).
- src/util.rs: unit tests for the lite settings, the route pruning and the
  liteTopic carried in the ack entry.
- tests/lite_simple_consumer_integration_test.rs: 2 real-cluster tests guarded
  by ROCKETMQ_RUST_LITE_ENDPOINTS. Verified against a local RocketMQ 5.5.1
  cluster (broker enableLmq/enableMultiDispatch, proxy in CLUSTER mode,
  message.type=LITE parent topic, group with +lite.bind.topic): 2/2 passed.
- Offline suites: cargo test --lib 93 passed, lite_simple_consumer_test 4
  passed; cargo fmt --check and cargo clippy --all-features -- -D warnings
  clean.

Example
- examples/lite_simple_consumer.rs plus a "Lite Topic" section in README.md.
  The example was also run against the local cluster end to end: subscribe,
  receive 3 lite messages, ack, unsubscribe, shutdown.

Report URL: https://github.com/apache/rocketmq-clients/actions/runs/35052693763

With regards,
GitHub Actions via GitBox

Reply via email to