Download raw body.
CVS: cvs.openbsd.org: ports
On Tue, 22 Sep 2026 20:30:57 +0200,
Kirill A. Korinsky <kirill@korins.ky> wrote:
>
> On Sat, 19 Sep 2026 17:38:12 +0200,
> Stuart Henderson <sthen@cvs.openbsd.org> wrote:
> >
> > CVSROOT: /cvs
> > Module name: ports
> > Changes by: sthen@cvs.openbsd.org 2026/09/19 09:38:12
> >
> > Modified files:
> > devel/libdispatch: Makefile distinfo
> > devel/libdispatch/patches:
> > patch-cmake_modules_DispatchCompilerWarnings_cmake
> > patch-src_CMakeLists_txt
> > Removed files:
> > devel/libdispatch/patches:
> > patch-cmake_modules_SwiftSupport_cmake
> > patch-private_private_h
> > patch-src_event_event_c
> > patch-src_event_event_internal_h
> > patch-src_event_event_kevent_c
> > patch-src_event_workqueue_c
> > patch-src_init_c patch-src_internal_h
> > patch-src_io_c patch-src_queue_c
> > patch-src_shims_lock_c
> > patch-src_shims_lock_h
> > patch-src_swift_Source_swift
> > patch-src_swift_Wrapper_swift
> > patch-tests_CMakeLists_txt
> > patch-tests_bsdtestharness_c
> > patch-tests_dispatch_workqueue_c
> >
> > Log message:
> > update to libdispatch-6.4.0
> >
>
> This introduced regression in both net/64gram and net/tdesktop.
>
> It started to consime 100% CPU on idle.
>
> Inside gdb I see:
>
> (gdb) bt
> #0 kevent () at /tmp/-:2
> #1 0x5479ad231d10bee9 in ?? ()
> #2 0x000001dd874521ab in _dispatch_kq_poll () from /usr/local/lib/libdispatch.so.0.0
> #3 0x000001dd87451b9b in _dispatch_kq_drain () from /usr/local/lib/libdispatch.so.0.0
> #4 0x000001dd87451adb in _dispatch_event_loop_drain () from /usr/local/lib/libdispatch.so.0.0
> #5 0x000001dd87445d02 in _dispatch_mgr_invoke () from /usr/local/lib/libdispatch.so.0.0
> #6 0x000001dd87445c5b in _dispatch_mgr_thread () from /usr/local/lib/libdispatch.so.0.0
> #7 0x000001dd874496fb in _dispatch_worker_thread () from /usr/local/lib/libdispatch.so.0.0
> #8 0x000001de63074aa2 in _rthread_start (v=0x1) at /usr/src/lib/librthread/rthread.c:99
> #9 0x000001ddecf9b88a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87
> (gdb)
>
> and inside ktrace I see a lot of
>
> 24541 Telegram RET kevent 1
> 24541 Telegram CALL kevent(17,0xc65660b3c80,1,0xc65660b3a00,16,0)
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0x13<NOTE_NSECONDS|NOTE_ABSTIME>, data=350184616671211, udata=0xc652f0e8180 }
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0<>, data=1, udata=0xc652f0e8180 }
> 24541 Telegram RET kevent 1
> 24541 Telegram CALL kevent(17,0xc65660b3c80,1,0xc65660b3a00,16,0)
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0x13<NOTE_NSECONDS|NOTE_ABSTIME>, data=350184616671211, udata=0xc652f0e8180 }
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0<>, data=1, udata=0xc652f0e8180 }
> 24541 Telegram RET kevent 1
> 24541 Telegram CALL kevent(17,0xc65660b3c80,1,0xc65660b3a00,16,0)
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0x13<NOTE_NSECONDS|NOTE_ABSTIME>, data=350184616671211, udata=0xc652f0e8180 }
> 24541 Telegram STRU struct kevent { ident=18446744073709551360, filter=EVFILT_TIMER, flags=0x15<EV_ADD|EV_ENABLE|EV_ONESHOT>, fflags=0<>, data=1, udata=0xc652f0e8180 }
>
>
> Thus, seems that bump of SHARED_LIBS was missed on that update, it was good
> for me, and allows to track it fast, but... can differences in ABI be a
> reason of regression?
>
Well, check-shlib-syms states that here no difference... probably
SHARED_LIBS really doesn't need a bump.
Anyway, here a diff which a bit hacky and fixes regression in tdesktop and
64gram, and I think in other similar places.
Thoughts?
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/libdispatch/Makefile,v
diff -u -p -r1.12 Makefile
--- Makefile 20 Sep 2026 15:50:44 -0000 1.12
+++ Makefile 22 Sep 2026 19:02:40 -0000
@@ -2,6 +2,7 @@ COMMENT = support for concurrent code ex
PKGNAME = libdispatch-$V
V = 6.4.0
+REVISION = 0
GH_ACCOUNT = apple
GH_PROJECT = swift-corelibs-libdispatch
Index: patches/patch-src_event_event_config_h
===================================================================
RCS file: patches/patch-src_event_event_config_h
diff -N patches/patch-src_event_event_config_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_event_event_config_h 22 Sep 2026 19:02:40 -0000
@@ -0,0 +1,16 @@
+Index: src/event/event_config.h
+--- src/event/event_config.h.orig
++++ src/event/event_config.h
+@@ -116,9 +116,10 @@
+ # define NOTE_FUNLOCK 0x00000100
+ # endif
+
+-// FreeBSD's kevent does not support those
++// FreeBSD's and OpenBSD's kevent does not support those
++// OpenBSD's NOTE_ABSTIME uses CLOCK_REALTIME
+ # ifndef NOTE_ABSOLUTE
+-# ifdef NOTE_ABSTIME
++# if defined(NOTE_ABSTIME) && !defined(__OpenBSD__)
+ # define NOTE_ABSOLUTE NOTE_ABSTIME
+ # else
+ # define NOTE_ABSOLUTE 0
--
wbr, Kirill
CVS: cvs.openbsd.org: ports