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