Tarantool development patches archive
 help / color / mirror / Atom feed
From: Konstantin Osipov <kostja@tarantool.org>
To: tarantool-patches@freelists.org
Cc: Max Melentiev <m.melentiev@corp.mail.ru>
Subject: [tarantool-patches] Re: [PATCH] Make `tarantoolctl start` work withiout box.cfg in init script
Date: Fri, 9 Aug 2019 16:42:51 +0300	[thread overview]
Message-ID: <20190809134251.GA6081@atlas> (raw)
In-Reply-To: <20190809081022.1237-1-m.melentiev@corp.mail.ru>

* Max Melentiev <dmarc-noreply@freelists.org> [19/08/09 11:12]:
> `box.cfg` may not be called inside init script and tarantool
> will not be daemonized (forcing `background = true` in hijacked `box.cfg`),
> so we need to fork tarantool before running this script.
> 
> To find out the moment when tarantool finishes startup it waits for `READY=1`
> message on NOTIFY_SOCKET which is emitted after init script is finished.

Thanks for the patch.

Most of this patch has to be done on the server level.

Please prepare a patch that allows a user to override box.cfg with
environment variables. Since this is a user-visible change, it
needs an issue at github.


Basically I should be able to say: 

setenv TARANTOOL_WAL_DIR="path" and this would override box.cfg
setting, if any.

The same is true for all variables which are overrides in
/etc/default:

https://github.com/tarantool/tarantool/blob/master/extra/dist/default/tarantool.in

Alternatively, you could have a single environment variable to
force box.cfg to look at /etc/default/tarantool file, or some
other file, for these defaults:

TARANTOOL_DEFAULT_FILE=

Please check with the solutions team which approach is better - I
prefer the second one, since it requires less maintenance when new
defaults are added to /etc/default.

Once this patch is in place, tarantoolctl should be changed to
exec() instance file, not dofile() it.

This will solve most of the problems reflected this patch tries to
address (and a few more).

The next patch should split daemon features away from box.cfg, so
that it would be possible to become daemon before calling box.cfg.
We already can configure logger before box.cfg, and on the road of
making listen independent of box.cfg. Daemon is an easy step in
the same direction. This patch is also against the core server,not
against tarantoolctl.

It is easy to do, take a look here:

https://github.com/tarantool/tarantool/blob/master/src/main.cc#L387

This function needs to become available via
io.daemon(pid_file_path).

io.daemon() should fail and do nothing if the logging subsystem is
not initialized.

There should be a test case in app-tap.

Please feel free to solicit help from the core team for this
patch.

If io.daemon() has been called, box.cfg.background=true/false
should be ignored when box.cfg is called. 


io.daemon() should respect sysctl events if sysctl socket is
provided.


-- 
Konstantin Osipov, Moscow, Russia

  reply	other threads:[~2019-08-09 13:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-09  8:10 [tarantool-patches] " Max Melentiev
2019-08-09 13:42 ` Konstantin Osipov [this message]
2019-08-09 18:38   ` [tarantool-patches] " Maxim Melentiev
2019-08-12 10:31     ` Konstantin Osipov
2019-08-12 13:01       ` Georgy Kirichenko
2019-08-12 13:24         ` Konstantin Osipov
2019-08-12 13:24         ` Konstantin Osipov
2019-08-12 16:10           ` Георгий Кириченко
2019-08-12 21:42             ` Konstantin Osipov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190809134251.GA6081@atlas \
    --to=kostja@tarantool.org \
    --cc=m.melentiev@corp.mail.ru \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH] Make `tarantoolctl start` work withiout box.cfg in init script' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox