From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <i.kosarev@tarantool.org>
Received: from smtp33.i.mail.ru (smtp33.i.mail.ru [94.100.177.93])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by dev.tarantool.org (Postfix) with ESMTPS id 7662946970E
 for <tarantool-patches@dev.tarantool.org>;
 Fri, 10 Jan 2020 03:36:57 +0300 (MSK)
From: Ilya Kosarev <i.kosarev@tarantool.org>
Date: Fri, 10 Jan 2020 03:36:51 +0300
Message-Id: <cover.1578615748.git.i.kosarev@tarantool.org>
Subject: [Tarantool-patches] [PATCH v2 0/2] Safe truncation and deletion
List-Id: Tarantool development patches <tarantool-patches.dev.tarantool.org>
List-Unsubscribe: <https://lists.tarantool.org/mailman/options/tarantool-patches>, 
 <mailto:tarantool-patches-request@dev.tarantool.org?subject=unsubscribe>
List-Archive: <https://lists.tarantool.org/pipermail/tarantool-patches/>
List-Post: <mailto:tarantool-patches@dev.tarantool.org>
List-Help: <mailto:tarantool-patches-request@dev.tarantool.org?subject=help>
List-Subscribe: <https://lists.tarantool.org/mailman/listinfo/tarantool-patches>, 
 <mailto:tarantool-patches-request@dev.tarantool.org?subject=subscribe>
To: tarantool-patches@dev.tarantool.org
Cc: v.shpilevoy@tarantool.org

space:truncate() and space:delete() could fail on memory allocations
when reaching memtx_memory limit. As far as it is quite an ill
behaviour, it is fixed in this patchset through memtx quota enlargement.
Also possible bps_tree_create_leaf NULL dereference issue is fixed.

Branch: https://github.com/tarantool/tarantool/tree/i.kosarev/gh-3807-safe-alloc-on-truncation
Issue: https://github.com/tarantool/tarantool/issues/3807

Changes in v2:
  Approach changed completely: now we are not trying to allocate
  service tuples in some safe way, but increasing memtx quota so
  that space:truncate() and space:delete() won't fail on allocation.

Ilya Kosarev (2):
  b-tree: return NULL on matras_alloc fail
  memtx: increase the memory quota if needed to truncate or delete

 src/box/box.cc           | 34 +++++++++++++++++++++++++++++++++-
 src/box/memtx_engine.c   | 18 ++++++++++++++++++
 src/box/memtx_engine.h   |  5 +++++
 src/lib/salad/bps_tree.h |  7 +++++--
 4 files changed, 61 insertions(+), 3 deletions(-)

-- 
2.17.1