apache / apache/eventmesh

[Bug] The eventMesh server delivers messages to multiple node consumers through grpc, and manually kills the listening process, resulting in message loss

Open
#5,228 7 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
1.8k
Forks
658
Avg merge
11h 29m
Merged PRs (30d)
52

Description

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found no similar issues.

### Environment

Linux

### EventMesh version

1.10.0

### What happened

Problem description: The server executes updateOffset, and the client ReceiveMsgHook.handle() does not receive the data on the stream.

Code link: On the gRPC stream push path, the runtime is after the server emitter.onNext succeeds in updateOffset (in StreamPushRequest). In the client, ReceiveMsgHook.handle() is executed after receiving the data on the gRPC stream, and is not included in the updateOffset decision condition.

Test scenario: version 1.10.0;
The scenario is dual consumer + Eventmesh pushed by gRPC; One of the processes was manually killed and restarted about a minute; The phenomenon is that the sum of the two consumers received < the number of Eventmesh sent, which is manifested as a lost message.

### How to reproduce

### Debug logs

```Java

```

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) *

Contributor guide

Open the contributing guide

Research direction

Start by tracing the gRPC stream push path around StreamPushRequest and the server's updateOffset call, then compare it with the client's ReceiveMsgHook.handle() flow. Reproduce the dual-consumer scenario on EventMesh 1.10.0 by restarting one consumer during delivery. Done means messages are not lost and offset updates reflect successful client receipt.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, java
Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.