Tarantool development patches archive
 help / color / mirror / Atom feed
From: Konstantin Osipov <kostja.osipov@gmail.com>
To: Olga Arkhangelskaia <arkholga@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH rfc v2] memtx: fix out of memory handling for rtree
Date: Mon, 9 Dec 2019 17:07:28 +0300	[thread overview]
Message-ID: <20191209140728.GC8196@atlas> (raw)
In-Reply-To: <20191209134851.14462-1-arkholga@tarantool.org>

* Olga Arkhangelskaia <arkholga@tarantool.org> [19/12/09 16:49]:
> When tarantool tries to recover rtree from a snapshot and memtx_memory value is
> lower than it has been when the snapshot was created, server suffers from
> segmentation fault. This happens because there is no out of memory error
> handling in rtree lib. In another words, we do not check the result of
> malloc operation.
> To prevent this behaviour we simply reserve memory before replace operation for
> rtree. And if there is not enough memory to be reserved - server will fail
> gently with the "Failed to allocate" error message.

It seems you're on track. You don't explain, however, why you had
to add an additional reserve() which is on the side of the main
execution flow (which is box_process1): during snapshot recovery 
the secondary keys are built in batches, not using box_process1,
so the check sitting on the main execution track is not invoked.

This begs the question: shouldn't you add the check to
memtx_*_build_next() instead?


-- 
Konstantin Osipov, Moscow, Russia

  reply	other threads:[~2019-12-09 14:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-09 13:48 Olga Arkhangelskaia
2019-12-09 14:07 ` Konstantin Osipov [this message]
2019-12-19  9:06   ` Olga Arkhangelskaia

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=20191209140728.GC8196@atlas \
    --to=kostja.osipov@gmail.com \
    --cc=arkholga@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH rfc v2] memtx: fix out of memory handling for rtree' \
    /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