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