From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; Fri, 10 Jan 2020 03:36:57 +0300 (MSK) From: Ilya Kosarev Date: Fri, 10 Jan 2020 03:36:51 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH v2 0/2] Safe truncation and deletion List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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