From: Gaute Hope Date: Thu, 21 Aug 2014 09:01:09 +0000 (+0200) Subject: Re: DatabaseModifiedErrors causing troubles X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=da1a141c73bf526d30bf932d4ce22e5d89ed89df;p=notmuch-archives.git Re: DatabaseModifiedErrors causing troubles --- diff --git a/64/a809e2a0c4355971d612155483683a3b1ef851 b/64/a809e2a0c4355971d612155483683a3b1ef851 new file mode 100644 index 000000000..27d55b296 --- /dev/null +++ b/64/a809e2a0c4355971d612155483683a3b1ef851 @@ -0,0 +1,175 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 10AF6431FBC + for ; Thu, 21 Aug 2014 02:01:20 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id wczr6v2KOVrd for ; + Thu, 21 Aug 2014 02:01:12 -0700 (PDT) +Received: from mail-qg0-f49.google.com (mail-qg0-f49.google.com + [209.85.192.49]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 0E6A7431FAF + for ; Thu, 21 Aug 2014 02:01:12 -0700 (PDT) +Received: by mail-qg0-f49.google.com with SMTP id j107so8374294qga.8 + for ; Thu, 21 Aug 2014 02:01:10 -0700 (PDT) +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:mime-version:in-reply-to:references:date + :message-id:subject:from:to:content-type; + bh=SY6FH7tiBKDH4pivZs4H+O65nntus9ylO39RjGKHvhQ=; + b=T2OHJUxE5C6aK+0+M7lZuEz/n6QOXN6McGsg6jZ/CW+K924ppkeQn3BaxBIpf7NZPH + eWb++cNUQyfGrNB9P/KOYIQ74Mp3x4/p9oiENIAQ/uO/tWyZsKElR/tzw5feBk9u+hdJ + 9k4cieF4QdPgHAKOuqQ5NDvWbR95w9aS5O8s/g7VPNSETI85/Z5fQqonvs8W8eDPl3mF + qDB3FautXuMorRxqe5yfon/VUsM6kGaI2o2E6ytZEIC5+TSgdqlHjs+xKxUhm9TzZzl5 + 3TccgL62NgsOSFts5U0fUpTMeBA0R834uvEIHmCFtSt2Rfu1ZJYjWjDFR0gdh8oQQYKb + esyg== +X-Gm-Message-State: + ALoCoQkV5uApY+27YOdlv+ttx04Fgp2EP8yFm6FDk0hFcGlBatrPD0AyNAvcr6AOhx6aD/+95CcI +MIME-Version: 1.0 +X-Received: by 10.140.102.142 with SMTP id w14mr80976220qge.101.1408611670062; + Thu, 21 Aug 2014 02:01:10 -0700 (PDT) +Received: by 10.96.88.40 with HTTP; Thu, 21 Aug 2014 02:01:09 -0700 (PDT) +In-Reply-To: <1408610770-astroid-0-4on2jlyj8n-28086@strange> +References: + + <1408610770-astroid-0-4on2jlyj8n-28086@strange> +Date: Thu, 21 Aug 2014 11:01:09 +0200 +Message-ID: + +Subject: Re: DatabaseModifiedErrors causing troubles +From: Gaute Hope +To: notmuch +Content-Type: multipart/mixed; boundary=001a11c163e038ca1a05011ff64a +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +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: Thu, 21 Aug 2014 09:01:20 -0000 + +--001a11c163e038ca1a05011ff64a +Content-Type: text/plain; charset=UTF-8 + +On Thu, Aug 21, 2014 at 10:59 AM, Gaute Hope wrote: +> For portability I would suggest starting to move towards the GError +> scheme provided by glib (also used by gmime). This is a somewhat major +> effort though since ensuring that error propagation is done right [0] is +> somewhat tricky. It provides more or less the same functionality as +> exceptions do in C++. +> +> There is also the problem of having to change the API - one way to avoid +> that is to create wrappers that behave like the old API, but don't +> handle errors that good. This requires the addition of addiontal _error +> variations of the current set of functions. It will be a mess. +> +> [0] https://developer.gnome.org/glib/stable/glib-Error-Reporting.html + +Here's a quick mockup of how that could look. + +Cheers, Gaute + +--001a11c163e038ca1a05011ff64a +Content-Type: text/x-patch; charset=US-ASCII; + name="0001-mockup-Illustration-of-GError-for-error-reporting.patch" +Content-Disposition: attachment; + filename="0001-mockup-Illustration-of-GError-for-error-reporting.patch" +Content-Transfer-Encoding: base64 +X-Attachment-Id: f_hz3v0kjf0 + +RnJvbSBlYjQ5ZTMxMWUzMTJhNWM5NTEwY2EyNGRlYzI0YWQxYzYwYWVkZWU5IE1vbiBTZXAgMTcg +MDA6MDA6MDAgMjAwMQpGcm9tOiBHYXV0ZSBIb3BlIDxlZ0BnYXV0ZS52ZXRzai5jb20+CkRhdGU6 +IFRodSwgMjEgQXVnIDIwMTQgMTA6NTY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBtb2NrdXA6 +IElsbHVzdHJhdGlvbiBvZiBHRXJyb3IgZm9yIGVycm9yIHJlcG9ydGluZwoKLS0tCiBsaWIvZGF0 +YWJhc2UuY2MgfCAyMyArKysrKysrKysrKysrKysrKysrKystLQogbGliL25vdG11Y2guaCAgIHwg +NDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp +bGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 +IGEvbGliL2RhdGFiYXNlLmNjIGIvbGliL2RhdGFiYXNlLmNjCmluZGV4IDljMDk1MmEuLjA4NTE1 +MmYgMTAwNjQ0Ci0tLSBhL2xpYi9kYXRhYmFzZS5jYworKysgYi9saWIvZGF0YWJhc2UuY2MKQEAg +LTQyLDYgKzQyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIGNvbnN0IGNoYXIgKnByZWZpeDsK +IH0gcHJlZml4X3Q7CiAKK0dRdWFyayBub3RtdWNoX2Vycm9yX3F1YXJrOworCiAjZGVmaW5lIE5P +VE1VQ0hfREFUQUJBU0VfVkVSU0lPTiAyCiAKICNkZWZpbmUgU1RSSU5HSUZZKHMpIF9TVUJfU1RS +SU5HSUZZKHMpCkBAIC0zNjcsMTYgKzM2OSwyOCBAQCBfbWVzc2FnZV9pZF9jb21wcmVzc2VkICh2 +b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQpCiAgICAgcmV0dXJuIGNvbXByZXNzZWQ7 +CiB9CiAKKy8qIGRlcHJlY2F0ZWQgd3JhcHBlciAqLwogbm90bXVjaF9zdGF0dXNfdAogbm90bXVj +aF9kYXRhYmFzZV9maW5kX21lc3NhZ2UgKG5vdG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwKIAkJ +CSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlX2lkLAogCQkJICAgICAgIG5vdG11Y2hfbWVzc2Fn +ZV90ICoqbWVzc2FnZV9yZXQpCiB7CisgIHJldHVybiBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVz +c2FnZV9lcnIgKG5vdG11Y2gsIG1lc3NhZ2VfaWQsIG1lc3NhZ2VfcmV0LCBOVUxMKTsKK30KKwor +bm90bXVjaF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3Rt +dWNoX2RhdGFiYXNlX3QgKm5vdG11Y2gsCisJCQkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZV9p +ZCwKKwkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2VfcmV0LAorICAgICAgICAg +ICAgIEdFcnJvciAqKmVycikKK3sKICAgICBub3RtdWNoX3ByaXZhdGVfc3RhdHVzX3Qgc3RhdHVz +OwogICAgIHVuc2lnbmVkIGludCBkb2NfaWQ7CiAKLSAgICBpZiAobWVzc2FnZV9yZXQgPT0gTlVM +TCkKLQlyZXR1cm4gTk9UTVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSOworICAgIGlmIChtZXNzYWdl +X3JldCA9PSBOVUxMKSB7CisgICAgICBnX3NldF9lcnJvciAoZXJyLCBOT1RNVUNIX0VSUk9SLCBO +T1RNVUNIX1NUQVRVU19OVUxMX1BPSU5URVIsIG5vdG11Y2hfc3RhdHVzX3RvX3N0cmluZyAoTk9U +TVVDSF9TVEFUVVNfTlVMTF9QT0lOVEVSKSk7CisgICAgICByZXR1cm4gTk9UTVVDSF9TVEFUVVNf +TlVMTF9QT0lOVEVSOworICAgIH0KIAogICAgIGlmIChzdHJsZW4gKG1lc3NhZ2VfaWQpID4gTk9U +TVVDSF9NRVNTQUdFX0lEX01BWCkKIAltZXNzYWdlX2lkID0gX21lc3NhZ2VfaWRfY29tcHJlc3Nl +ZCAobm90bXVjaCwgbWVzc2FnZV9pZCk7CkBAIC02MzMsNiArNjQ3LDExIEBAIG5vdG11Y2hfZGF0 +YWJhc2Vfb3BlbiAoY29uc3QgY2hhciAqcGF0aCwKICAgICB1bnNpZ25lZCBpbnQgaSwgdmVyc2lv +bjsKICAgICBzdGF0aWMgaW50IGluaXRpYWxpemVkID0gMDsKIAorICAgIC8qIEluaXRpYWxpemUg +R0Vycm9yIHN5c3RlbSAqLworICAgIGlmICghIGluaXRpYWxpemVkKSB7CisgICAgICBub3RtdWNo +X2Vycm9yX3F1YXJrID0gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJub3RtdWNoIik7Cisg +ICAgfQorCiAgICAgaWYgKHBhdGggPT0gTlVMTCkgewogCWZwcmludGYgKHN0ZGVyciwgIkVycm9y +OiBDYW5ub3Qgb3BlbiBhIGRhdGFiYXNlIGZvciBhIE5VTEwgcGF0aC5cbiIpOwogCXN0YXR1cyA9 +IE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjsKZGlmZiAtLWdpdCBhL2xpYi9ub3RtdWNoLmgg +Yi9saWIvbm90bXVjaC5oCmluZGV4IDNjNWVjOTguLmFmMjhlMDkgMTAwNjQ0Ci0tLSBhL2xpYi9u +b3RtdWNoLmgKKysrIGIvbGliL25vdG11Y2guaApAQCAtNDIsNiArNDIsNyBAQAogTk9UTVVDSF9C +RUdJTl9ERUNMUwogCiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KIAogI2lm +bmRlZiBGQUxTRQogI2RlZmluZSBGQUxTRSAwCkBAIC0xNTksNiArMTYwLDEyIEBAIHR5cGVkZWYg +ZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgICAqIFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv +cnRlZC4KICAgICAgKi8KICAgICBOT1RNVUNIX1NUQVRVU19VTlNVUFBPUlRFRF9PUEVSQVRJT04s +CisKKyAgICAvKiBBbiBYYXBpYW46OkRhdGFiYXNlTW9kaWZpZWRFcnJvciBoYXMgb2NjdXJyZWQs +IGFsbCBkZWNlbmRhbnRzIG9mCisgICAgICogZGF0YWJhc2UgYXJlIGludmFsaWQgYW5kIHRoZSBk +YXRhYmFzZSBtdXN0IGJlIHJlb3BlbmVkLgorICAgICAqLworICAgIE5PVE1VQ0hfU1RBVFVTX1hB +UElBTl9EQVRBQkFTRV9NT0RJRklFRF9FUlJPUiwKKwogICAgIC8qKgogICAgICAqIE5vdCBhbiBh +Y3R1YWwgc3RhdHVzIHZhbHVlLiBKdXN0IGEgd2F5IHRvIGZpbmQgb3V0IGhvdyBtYW55CiAgICAg +ICogdmFsaWQgc3RhdHVzIHZhbHVlcyB0aGVyZSBhcmUuCkBAIC0xNjYsNiArMTczLDE4IEBAIHR5 +cGVkZWYgZW51bSBfbm90bXVjaF9zdGF0dXMgewogICAgIE5PVE1VQ0hfU1RBVFVTX0xBU1RfU1RB +VFVTCiB9IG5vdG11Y2hfc3RhdHVzX3Q7CiAKKworLyogZXJyb3JzICovCitleHRlcm4gR1F1YXJr +IG5vdG11Y2hfZXJyb3JfcXVhcms7CisKKworLyoqCisgKiBOT1RNVUNIX0VSUk9SOgorICoKKyAq +IFRoZSBOb3RtdWNoIGVycm9yIGRvbWFpbiBHUXVhcmsgdmFsdWUuCisgKiovCisjZGVmaW5lIE5P +VE1VQ0hfRVJST1Igbm90bXVjaF9lcnJvcl9xdWFyaworCiAvKioKICAqIEdldCBhIHN0cmluZyBy +ZXByZXNlbnRhdGlvbiBvZiBhIG5vdG11Y2hfc3RhdHVzX3QgdmFsdWUuCiAgKgpAQCAtNTU0LDYg +KzU3MywzNSBAQCBub3RtdWNoX2RhdGFiYXNlX2ZpbmRfbWVzc2FnZSAobm90bXVjaF9kYXRhYmFz +ZV90ICpkYXRhYmFzZSwKIAkJCSAgICAgICBub3RtdWNoX21lc3NhZ2VfdCAqKm1lc3NhZ2UpOwog +CiAvKioKKyAqIEZpbmQgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQuCisgKgor +ICogSWYgYSBtZXNzYWdlIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2VfaWQgaXMgZm91bmQgdGhlbiwg +b24gc3VjY2Vzc2Z1bCByZXR1cm4KKyAqIChOT1RNVUNIX1NUQVRVU19TVUNDRVNTKSAnKm1lc3Nh +Z2UnIHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gYSBtZXNzYWdlCisgKiBvYmplY3QuICBUaGUgY2Fs +bGVyIHNob3VsZCBjYWxsIG5vdG11Y2hfbWVzc2FnZV9kZXN0cm95IHdoZW4gZG9uZSB3aXRoIHRo +ZQorICogbWVzc2FnZS4KKyAqCisgKiBPbiBhbnkgZmFpbHVyZSBvciB3aGVuIHRoZSBtZXNzYWdl +IGlzIG5vdCBmb3VuZCwgdGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcworICogJyptZXNzYWdlJyB0 +byBOVUxMLiBUaGlzIG1lYW5zLCB3aGVuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1MgaXMgcmV0dXJu +ZWQsIHRoZQorICogY2FsbGVyIGlzIHN1cHBvc2VkIHRvIGNoZWNrICcqbWVzc2FnZScgZm9yIE5V +TEwgdG8gZmluZCBvdXQgd2hldGhlciB0aGUKKyAqIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gbWVz +c2FnZV9pZCB3YXMgZm91bmQuCisgKgorICogUmV0dXJuIHZhbHVlOgorICoKKyAqIE5PVE1VQ0hf +U1RBVFVTX1NVQ0NFU1M6IFN1Y2Nlc3NmdWwgcmV0dXJuLCBjaGVjayAnKm1lc3NhZ2UnLgorICoK +KyAqIE5PVE1VQ0hfU1RBVFVTX05VTExfUE9JTlRFUjogVGhlIGdpdmVuICdtZXNzYWdlJyBhcmd1 +bWVudCBpcyBOVUxMCisgKgorICogTk9UTVVDSF9TVEFUVVNfT1VUX09GX01FTU9SWTogT3V0IG9m +IG1lbW9yeSwgY3JlYXRpbmcgbWVzc2FnZSBvYmplY3QKKyAqCisgKiBOT1RNVUNIX1NUQVRVU19Y +QVBJQU5fRVhDRVBUSU9OOiBBIFhhcGlhbiBleGNlcHRpb24gb2NjdXJyZWQKKyAqLworbm90bXVj +aF9zdGF0dXNfdAorbm90bXVjaF9kYXRhYmFzZV9maW5kX21lc3NhZ2VfZXJyIChub3RtdWNoX2Rh +dGFiYXNlX3QgKmRhdGFiYXNlLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2VfaWQsCisJ +CQkgICAgICAgbm90bXVjaF9tZXNzYWdlX3QgKiptZXNzYWdlLAorICAgICAgICAgICAgIEdFcnJv +ciAqKmVycik7CisKKy8qKgogICogRmluZCBhIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gZmlsZW5h +bWUuCiAgKgogICogSWYgdGhlIGRhdGFiYXNlIGNvbnRhaW5zIGEgbWVzc2FnZSB3aXRoIHRoZSBn +aXZlbiBmaWxlbmFtZSB0aGVuLCBvbgotLSAKMi4wLjQKCg== +--001a11c163e038ca1a05011ff64a--