apache / apache/kvrocks

FeedSlaveThread uses blocking connection in libevent improperly

Open
#3,113 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
4.4k
Forks
658
Avg merge
1d 20h
Merged PRs (30d)
10

Description

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/kvrocks/issues) and found no similar issues.

### Motivation

Let's created a separate issue to track: https://github.com/apache/kvrocks/issues/3097#issuecomment-3153004778

In theory, we should only use non-blocking socket in bufferevent. However, we are now essentially using a blocking socket in the read callback for `FeedSlaveThread`

### Solution

_No response_

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating FeedSlaveThread and its libevent bufferevent read callback, then review the discussion in issue #3097. Trace how the socket is configured and used during the callback; done means the FeedSlaveThread path no longer performs blocking socket operations through bufferevent.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.