kc3-lang/kc3/event_poll

Branch :


Log

Author Commit Date CI Message
thodg 8899b96c 2026-08-11 19:52:43 wip error messages
thodg 58858e7b 2026-08-09 16:39:11 kc3_httpd: Thread.interrupt_all()
thodg 4f61326d 2026-07-23 22:26:04 fix marshall/read
thodg e0c3b488 2026-06-04 13:24:15 ws
thodg e3a5d058 2026-06-04 11:54:42 wip
Jeancip 19dadbf5 2026-06-03 16:15:19 [FIX] EVENT_POLL KQUEUE ANNULE LE TIMER ARME SUR READ la branche kqueue de kc3_event_poll_poll n'annulait pas le EVFILT_TIMER encore arme quand un evenement read ou eof tirait, alors que la branche epoll retire le timer sous entries_mutex. sous le pool de threads, un thread qui parse une requete tient le rwlock du buffer pendant que le timer non annule tire sur un autre thread, qui ferme la connexion et libere ce meme rwlock en cours d'utilisation. resultat : heap-use-after-free et double free sous charge, uniquement sur openbsd (masque sur linux par le verrou epoll). fix : sur EVFILT_READ, faire EV_DELETE du EVFILT_TIMER du meme fd, comme epoll. valide en stress concurrent : sans le fix le serveur ne sert aucune requete et accumule les erreurs, avec le fix il passe plus de 50000 requetes sans une seule erreur.
Jeancip 63d66ba5 2026-05-06 12:16:46 [FIX] RACE CONDITION HEAP-USE-AFTER-FREE DANS EVENT_POLL Heap-use-after-free reproduit en stress sur git.kmx.io en ASan: thread T21 lit entry->udata dans kc3_event_poll_poll apres que thread T14 ait free entry via kc3_event_poll_delete. La race vient du fait que ev.data.ptr stockait le pointeur de l'entry. Apres epoll_wait (mutex deverrouille pour bloquer) le pointeur recupere etait deja stale si un autre thread avait delete l'entry entre temps. Fix: stocker le fd dans ev.data.fd au moment du EPOLL_CTL_ADD/MOD, puis dans poll re-acquerir le mutex et faire entry_find par fd. Si l'entry a disparu pendant la fenetre, retour propre tag_init_void au lieu de toucher de la memoire freed. Bug latent hérité du module epoll/ original (meme pattern, pas detecte parce que stress moins agressif sur les autres apps). La branche HAVE_KQUEUE n'est pas affectee, kqueue utilise event.udata natif sans struct user-space.
Jeancip 0b7f3a49 2026-04-22 10:45:29 [FIX] Added some missing file for event module
Jeancip c3428be1 2026-04-22 10:44:20 [ADD] proposition of an event module that would wrap kqueue and epoll