You are viewing a plain text version of this content. The canonical link for it is here.
Posted to builds@kvrocks.apache.org by GitBox <gi...@apache.org> on 2026/10/16 09:23:58 UTC

[GH] (kvrocks/feat/libuv-eventloop-phase1): Workflow run "CI" failed!

The GitHub Actions job "CI" on kvrocks.git/feat/libuv-eventloop-phase1 has failed.
Run started by GitHub user Asthenia0412 (triggered by jihuayu).

Head commit for run:
205fc23965c2ff3f64d0b58ff8dc6e56d4f8e8d9 / Asthenia0412 <As...@users.noreply.github.com>
feat(server): Phase 1 libuv replacement -- build system + event loop

Introduce CMake option KVROCKS_USE_LIBUV (default OFF). When enabled,
replaces libevent event_new/evconnlistener with libuv uv_timer_t
and uv_tcp_t + uv_listen. bufferevent/evbuffer remain libevent
(Phase 2 will swap them). The existing RAII wrappers in event_util.h
gain #ifdef branches that keep the public interface stable.

What Phase 1 changes:
* CMakeLists.txt: option(KVROCKS_USE_LIBUV OFF) + conditional switch
* cmake/libuv.cmake: find_package first, FetchContent v1.49.0 fallback
* event_util.h: UniqueEvent, EventCallbackBase, EvconnlistenerBase
  gain libuv-backed alternatives under #ifdef KVROCKS_USE_LIBUV
* worker.h/.cc: Worker owns uv_loop_t* alongside event_base*
  (bufferevent stays libevent); listenFD/listenTCP/ListenUnixSocket
  construct uv_tcp_t listeners with per-handle tags; Run() drives
  both loops side-by-side; Stop() closes libuv handles

This is Phase 1 of replacing libevent with libuv (issue #3004).
Subsequent phases will replace bufferevent/evbuffer (Phase 2),
cluster replication (Phase 3), and blocking stream commands (Phase 4).

Tested: compiles with KVROCKS_USE_LIBUV=OFF (default, no-op).
KVROCKS_USE_LIBUV=ON requires libuv headers (apt-get install libuv1-dev
or FetchContent fallback).

Refs: #3004

Report URL: https://github.com/apache/kvrocks/actions/runs/38848916507

With regards,
GitHub Actions via GitBox