Re: nosh: service-dt-scanner gets repeatedly killed by SIGABRT

From: Guillermo <gdiazhartusch_at_gmail.com>
Date: Sun, 12 Jul 2015 18:19:26 -0300

2015-07-12 9:45 GMT-03:00 Jonathan de Boyne Pollard:
>
> The problem here is that inotify is waking kevent() up because you listed
> the directory.

The exact same thing (wakeup and read() with EINVAL error) happens if
service-control, service-show, service-is-ok and other service-*
commands are used on the service. And if the bundle directory has a
proper service/ subdirectory; no user action required to trigger it in
this last case.

> This will be a tricky one for the libkqueue people to fix

The libkqueue people might be just Mark Heily :-/

> But it is a libkqueue problem to be fixed. All that
> service-dt-scanner is doing is registering just one event of interest, and
> calling kevent() in a fairly tight loop that's in fact doing nothing else
> (apart from dumping the value of the spurious event).

That's... unfortunate :-( Have you ever considered just writing a BSD
backend using kqueue / kevent, and a Linux backend using epoll /
inotify or whatever native Linux mechanism is available to suit nosh's
needs? I believe you mentioned there's quite a few conditional
compilation already to work around libkqueue issues, and you also
already have "`uname` = FreeBSD" and "`uname` = Linux" tests in the
.do files.

Anyway, thank you for your time :-)
G.
Received on Sun Jul 12 2015 - 21:19:26 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC