From 91aa1f844fa0e018c792bb4a4e80c94ad9a8077d Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 7 Mar 2016 09:14:00 +0000 Subject: [PATCH] Re: talloc_abort in notmuch_thread_get_tags () when db has been modified --- 71/a09830291a64d6328d6bc09dea773ff57c3294 | 119 ++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 71/a09830291a64d6328d6bc09dea773ff57c3294 diff --git a/71/a09830291a64d6328d6bc09dea773ff57c3294 b/71/a09830291a64d6328d6bc09dea773ff57c3294 new file mode 100644 index 000000000..bbc6aab1d --- /dev/null +++ b/71/a09830291a64d6328d6bc09dea773ff57c3294 @@ -0,0 +1,119 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id 7F60C6DE021D + for ; Mon, 7 Mar 2016 01:14:12 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: -0.604 +X-Spam-Level: +X-Spam-Status: No, score=-0.604 tagged_above=-999 required=5 tests=[AWL=0.307, + DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, + RCVD_IN_MSPIKE_H2=-0.211] autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 7_2lrbajME3u for ; + Mon, 7 Mar 2016 01:14:08 -0800 (PST) +Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com + [209.85.217.176]) + by arlo.cworth.org (Postfix) with ESMTPS id A04D46DE020D + for ; Mon, 7 Mar 2016 01:14:07 -0800 (PST) +Received: by mail-lb0-f176.google.com with SMTP id xr8so26226435lbb.1 + for ; Mon, 07 Mar 2016 01:14:07 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gaute-vetsj-com.20150623.gappssmtp.com; s=20150623; + h=date:from:subject:to:references:in-reply-to:user-agent:message-id + :mime-version:content-transfer-encoding; + bh=IyKCXE+PfUM7ixZxsQi7Cl9HDDLY8FQo1KHuZCo9DQc=; + b=qP4sJaZqR5xHoPWb0cHGynD/6N4YhaxD1vAeN63vDtubFTqzAL2XePO2UgKIL3QyWf + s4bf5iWU3zhlL43s5snK0cTX3DpljH6rLFsWFRzQkoY8119w/NZA0T5QbNpBz8DcHx/H + 0OEypwc608RVI4SbaivY4hi60/JLvfIwsG7pVLrwKGX1N6IsfH/NDLYQfSETha0FVOxm + /4Nbz7h14cMRQj1dmdFghp2YCKRvRsWTdlmKIlSDuT7TV1/mMn+Itovb/ewaHleg0maA + S+1L1E4QB2NEjNDEZEIgMglajS909q75ii7CeyyTfoARvnkYLWXlklSvSPvf4fladEv/ + 7r+g== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:date:from:subject:to:references:in-reply-to + :user-agent:message-id:mime-version:content-transfer-encoding; + bh=IyKCXE+PfUM7ixZxsQi7Cl9HDDLY8FQo1KHuZCo9DQc=; + b=LatXzirL/PyWxFb7zSNLNsDOCKbcbhzOnDduX/Fna/+RZb1PU6i8i66TyxtSneqiXe + 86usxOyc/Srto3YmCAXjRqyNvmLAPgduSP/g5/o8w88UEqZZvSfbgSQuWF+6eWsp51Pw + KNI+X8BdDcqX2SqltxJfoLwvArTaTS53y9yAT5KfppnuH29gTnnPQZEL2sHKDNvKtDvF + m7fGxI15o7FiM+VqFLoejEbqmquWGCaygMyA1UbtwfRY/UrRKMmpMYuLHjjbfpW2D3uL + BJjxo9J1zTtHb0h+WtpG6GJk5R5cxj9d2uICM26gYbNaxnTPltFJkvLJm5j3gYePCuXx + 4HyQ== +X-Gm-Message-State: + AD7BkJKnFH5r7dQ28jZNZexXyS8Q7jQ+sZgoqGXAnvvIi+eONLQ/+BreS9hlQL99/Ze/eQ== +X-Received: by 10.112.201.133 with SMTP id ka5mr7529494lbc.1.1457342042936; + Mon, 07 Mar 2016 01:14:02 -0800 (PST) +Received: from localhost ([128.39.46.106]) + by smtp.gmail.com with ESMTPSA id f134sm2654531lff.34.2016.03.07.01.14.01 + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Mon, 07 Mar 2016 01:14:01 -0800 (PST) +Date: Mon, 07 Mar 2016 09:14:00 +0000 +From: Gaute Hope +Subject: Re: talloc_abort in notmuch_thread_get_tags () when db has been + modified +To: David Bremner , notmuch@notmuchmail.org +References: <1453121100-astroid-2-c62fwcrm91-18877@strange> +In-Reply-To: <1453121100-astroid-2-c62fwcrm91-18877@strange> +User-Agent: astroid/v0.5-84-gb119b4ce (https://github.com/gauteh/astroid) +Message-Id: <1457341792-astroid-0-2wtydh6y1q-15951@strange> +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8; format=flowed +Content-Transfer-Encoding: quoted-printable +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.20 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Mon, 07 Mar 2016 09:14:12 -0000 + +Gaute Hope writes on January 18, 2016 13:45: +> David Bremner writes on January 18, 2016 13:25: +>> The most likely cause of such a crash looks to me like nm_thread is NULL +>> or corrupted when passed in to get_tags. It's used without checking as a +>> talloc context, and that call to talloc never returns. +>> +>=20 +> Ok, I'll check some further. I am checking whether nm_thread is NULL +> though, [...] + +Hi, + +The stack trace that I get is as follows: + +``` + Stack trace of thread 15719: + #0 0x00007fc80cd9f2a8 raise (libc.so.6) + #1 0x00007fc80cda072a abort (libc.so.6) + #2 0x00007fc80c95889c n/a (libtalloc.so.2) + #3 0x00007fc80c95a02d talloc_named_const (libtalloc.so.2) + #4 0x00007fc814d674c5 _notmuch_string_list_create (libnotm= +uch.so.4) + #5 0x00007fc814d75f32 notmuch_thread_get_tags (libnotmuch.= +so.4) + #6 0x00000000004757cb _ZN7Astroid13NotmuchThread8get_tagsE= +P15_notmuch_thread (astroid) + +``` + +this happens when: +1) start a long running query loading in the background +2) modify the db enough for the query to get invalidated. + +as far as I can see, there is _no_ way to catch this error without +completely crashing the application. I would have to isolate this code +in a separate process or trap SIGABRT (which is certainly messy). + +Best regards, Gaute + += -- 2.26.2