[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#999589: marked as done (ITP: catatonit -- Lightweight init implementation for containers)



Your message dated Fri, 12 Nov 2021 18:27:54 -0500
with message-id <CAJ0cceYi1NxLBefMMu6Wf21TqXjsrpFshjBBQYpWAt-2VnWZwQ@mail.gmail.com>
and subject line Re: Bug#999589: ITP: catatonit -- Lightweight init implementation for containers
has caused the Debian Bug report #999589,
regarding ITP: catatonit -- Lightweight init implementation for containers
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
999589: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=999589
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: wnpp
Owner: Reinhard Tartler <siretart@tauware.de>
Severity: wishlist

* Package name    : catatonit
  Version         : 0.1.7
  Upstream Author : 2018 SUSE LLC
* URL or Web page : https://github.com/openSUSE/catatonit
* License         : GPLv3
  Description     : Lightweight init implementation for containers

A container init that is so simple it's effectively brain-dead. This is a
rewrite of [initrs][initrs] in C, because we found that it is not possible to
statically compile Rust binaries without using musl. That was, in turn, a
reimplementation of other container inits like `tini` and `dumb-init`.

The reason for re-implementing `docker-init` is because it appears as though
all of the other implementations do not handle signals as correctly as they
should. In particular, they all appear to make use of `sigwait(2)` (`tini` does
a `sigtimedwait(2)` for an interval and then will do a `waitpid(2)` even if it
didn't detect a `SIGCHLD`). `catatonit` uses `signalfd(2)`, which [has its own
warts][signalfd-broken], but the improvements over `sigwait(2)` are significant
in terms of stability. Ideally we would just write a patch for the other
projects to use `signalfd(2)` rather than creating a new project, but after
some time spent looking at `tini` and `dumb-init` we felt that such patches
would be closer to full rewrites.

In addition, the purpose of `catatonit` is to only support the key usage by
`docker-init` which is `/dev/init -- <your program>`. With few exceptions, no
other features will be added.

Co-maintainers welcome!

--- End Message ---
--- Begin Message ---
please ignore, already in debian.

On Fri, Nov 12, 2021 at 4:48 PM Reinhard Tartler <siretart@tauware.de> wrote:
Package: wnpp
Owner: Reinhard Tartler <siretart@tauware.de>
Severity: wishlist

* Package name    : catatonit
  Version         : 0.1.7
  Upstream Author : 2018 SUSE LLC
* URL or Web page : https://github.com/openSUSE/catatonit
* License         : GPLv3
  Description     : Lightweight init implementation for containers

A container init that is so simple it's effectively brain-dead. This is a
rewrite of [initrs][initrs] in C, because we found that it is not possible to
statically compile Rust binaries without using musl. That was, in turn, a
reimplementation of other container inits like `tini` and `dumb-init`.

The reason for re-implementing `docker-init` is because it appears as though
all of the other implementations do not handle signals as correctly as they
should. In particular, they all appear to make use of `sigwait(2)` (`tini` does
a `sigtimedwait(2)` for an interval and then will do a `waitpid(2)` even if it
didn't detect a `SIGCHLD`). `catatonit` uses `signalfd(2)`, which [has its own
warts][signalfd-broken], but the improvements over `sigwait(2)` are significant
in terms of stability. Ideally we would just write a patch for the other
projects to use `signalfd(2)` rather than creating a new project, but after
some time spent looking at `tini` and `dumb-init` we felt that such patches
would be closer to full rewrites.

In addition, the purpose of `catatonit` is to only support the key usage by
`docker-init` which is `/dev/init -- <your program>`. With few exceptions, no
other features will be added.

Co-maintainers welcome!



--
regards,
    Reinhard

--- End Message ---

Reply to: