Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nAZuX-0008UW-Tq for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jan 2022 16:03:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nAZuW-0002cZ-IK for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Jan 2022 16:03:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nAZuW-0002cO-64 for pgsql-hackers@lists.postgresql.org; Thu, 20 Jan 2022 16:03:40 +0000 Received: from mail-il1-x134.google.com ([2607:f8b0:4864:20::134]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nAZuT-0005mr-FW for pgsql-hackers@postgresql.org; Thu, 20 Jan 2022 16:03:39 +0000 Received: by mail-il1-x134.google.com with SMTP id d14so5393903ila.1 for ; Thu, 20 Jan 2022 08:03:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jA6Ghk8S+f+Y8b1BqMKKv9VQ27kuR2zZLUW7vMweX54=; b=ZDWR3X29dZUBVB7/UTWx8Qf/R5b32e7mxv0OSVU5OKGXqi9DkA5hBTVKCNhG/JqvAF Hn9lyhF7+CEpqOCVOJq3s6ZA/3bxKGzUHaS27GyHFvuf5IOWdYzc1XwjeizN4JVsuzDo YIAqrYxkGDah+tq7lpDZoWxlEKLQwyI4eYvEzZNqp2n+voP7aMfaF8imO/dIugEiV48w vK4lWdtzPxC1Mucs3RVEGmDwhemwjGjkQsEfWAmNVpJHIpc06lXbB70BUV6TGsnUeu8N XhTlf7IuVVbnHqjrK7eT38qTLtw+vPGAvY+1FYIB1JBaXKXgunucx1vytTYgVy5UGv75 aarg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jA6Ghk8S+f+Y8b1BqMKKv9VQ27kuR2zZLUW7vMweX54=; b=x33uh991tr11nMXGI9rUrh7S+5GaZWBazLVy9Z6dLjZSCF9o2VGzpFnG1Gao1GKFrX DrfK54tXPhDSQ+AyUtPkLY8paUTKp0hBD3vi9VoeOPbupBABHeYOX6An2zOcSFVhx+xa 8DvCouJ7oxK8g+fCqqlzbJSb3KBj2CX5tRfu/dLuGK3QKrHaqm4Q0881rwnhXLmy43AP LTfWp4kHSM5jZjYIhsrRGVOl6Evf2jT0i9FwAIp1bxapv0pSDfPbly4i34xYIkcf65jQ JVPKctTmRa0fVZK7u4dIpn8WIR27CpgHfZHaA6LEIgu6ArD9h19UrTjd3nZIZcKVFlkZ +MKQ== X-Gm-Message-State: AOAM533BJKbFi9eXyPbaQgku1xdH/Mci8Up+4javSIuUqX/sWuDmqfDj uSsoX38morWgSiYJuVzDsy2o9TmcumkibbxEt0M= X-Google-Smtp-Source: ABdhPJynFtjOXccxI4bz5pO3ZGs3e1SOXi0wda0i0QAVvXeLdwHWsLr1Cvc8l/iMHiZSOW8md7YVGm69Vh26RiZ49As= X-Received: by 2002:a05:6e02:1985:: with SMTP id g5mr13771130ilf.183.1642694614453; Thu, 20 Jan 2022 08:03:34 -0800 (PST) MIME-Version: 1.0 References: <20220115054719.yeqoy2mdllbc7wq2@jrouhaud> In-Reply-To: From: Shruthi Gowda Date: Thu, 20 Jan 2022 21:33:23 +0530 Message-ID: Subject: Re: preserving db/ts/relfilenode OIDs across pg_upgrade (was Re: storing an explicit nonce) To: Robert Haas Cc: Julien Rouhaud , Sadhuprasad Patro , Stephen Frost , Bruce Momjian , Andres Freund , Alvaro Herrera , Masahiko Sawada , Tom Kincaid , Amit Kapila , Thomas Munro , PostgreSQL Development , Masahiko Sawada , Tom Lane Content-Type: multipart/mixed; boundary="000000000000f82e8905d605a4d5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f82e8905d605a4d5 Content-Type: text/plain; charset="UTF-8" On Thu, Jan 20, 2022 at 7:57 PM Robert Haas wrote: > > On Thu, Jan 20, 2022 at 7:09 AM Shruthi Gowda wrote: > > > Here's an updated version in which I've reverted the changes to gram.y > > > and tried to improve the comments and documentation. Could you have a > > > look at implementing (2) above? > > > > Attached is the patch that implements comment (2). > > This probably needs minor rebasing on account of the fact that I just > pushed the patch to remove datlastsysoid. I intended to do that before > you posted a new version to save you the trouble, but I was too slow > (or you were too fast, however you want to look at it). I have rebased the patch. Kindly have a look at it. > + errmsg("Invalid value for option \"%s\"", defel->defname), > > Per the "error message style" section of the documentation, primary > error messages neither begin with a capital letter nor end with a > period, while errdetail() messages are complete sentences and thus > both begin with a capital letter and end with a period. But what I > think you should really do here is get rid of the error detail and > convey all the information in a primary error message. e.g. "OID %u is > a system OID", or maybe better, "OIDs less than %u are reserved for > system objects". Fixed > + errmsg("database oid %u is already used by database %s", > + errmsg("data directory exists for database oid %u", dboid)); > > Usually we write "OID" rather than "oid" in error messages. I think > maybe it would be best to change the text slightly too. I suggest: > > database OID %u is already in use by database \"%s\" > data directory already exists for database with OID %u The second error message will be reported when the data directory with the given OID exists in the data path but the corresponding DB does not exist. This could happen only if the user creates directories in the data folder which is indeed not an invalid usage. I have updated the error message to "data directory with the specified OID %u already exists" because the error message you recommended gives a slightly different meaning. > + * it would fail. To avoid that, assign a fixed OID to template0 and > + * postgres rather than letting the server choose one. > > a fixed OID -> fixed OIDs > one -> them > > Or maybe put this comment back the way I had it and just talk about > postgres, and then change the comment in make_postgres to say "Assign > a fixed OID to postgres, for the same reasons as template0." Fixed > + /* > + * Make sure that binary upgrade propagate the database OID to the new > + * cluster > + */ > > This comment doesn't really seem necessary. It's sort of self-explanatory. Removed > +# Push the OID that is reserved for template0 database. > +my $Template0ObjectId = > + Catalog::FindDefinedSymbol('access/transam.h', '..', 'Template0ObjectId'); > +push @{$oids}, $Template0ObjectId; > > Don't you need to do this for PostgresObjectId also? It is not required for PostgresObjectId. The unused_oids script provides a list of unused oids in the manually-assignable OIDs range (1-9999). Shruthi KC EnterpriseDB: http://www.enterprisedb.com --000000000000f82e8905d605a4d5 Content-Type: application/octet-stream; name="v11-0001-pg_upgrade-perserve-database-OID-patch.patch" Content-Disposition: attachment; filename="v11-0001-pg_upgrade-perserve-database-OID-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kyn5wpkb0 RnJvbSA4MDhlNGQ0M2Q3ZTI4MmZhOThlYmE3ZDcwODRhMDkyN2I1Y2FmYzkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaHJ1dGhpa2MtZ293ZGEgPHNocnV0aGkua2NAZW50ZXJwcmlz ZWRiLmNvbT4KRGF0ZTogVGh1LCAyMCBKYW4gMjAyMiAyMToxNTo0NiArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjExXSBwZ191cGdyYWRlIHBlcnNlcnZlIGRhdGFiYXNlIE9JRCBwYXRjaAoKLS0tCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sIHwgMTggKysrKysrKysrKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYyAgICAgfCA1NyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQogc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgICAgICAgICAgICAg ICB8IDIyICsrKysrKysrKysrKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAg ICAgIHwgMTIgKysrKysrLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9JTVBMRU1FTlRBVElPTiAgICAg fCAgMiArLQogc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyAgICAgICAgICAgICB8ICA5ICsrLS0t LQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAgICAgICB8ICAzICstCiBzcmMvYmlu L3BnX3VwZ3JhZGUvcmVsZmlsZW5vZGUuYyAgICAgIHwgIDQgKy0tCiBzcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2Ft LmggICAgICAgICAgfCAgNCArKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvdW51c2VkX29pZHMgICAg ICAgfCAgNSArKysKIDExIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAyMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbAppbmRleCA0MWNiNDA2 Li5mMjJlMjhkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKQEAgLTMxLDcg KzMxLDggQEAgQ1JFQVRFIERBVEFCQVNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4KICAgICAgICAgICAgWyBUQUJMRVNQQUNFIFs9XSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzcGFjZV9uYW1lPC9yZXBsYWNlYWJsZT4gXQogICAg ICAgICAgICBbIEFMTE9XX0NPTk5FQ1RJT05TIFs9XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YWxsb3djb25uPC9yZXBsYWNlYWJsZT4gXQogICAgICAgICAgICBbIENPTk5FQ1RJT04g TElNSVQgWz1dIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25ubGltaXQ8L3JlcGxh Y2VhYmxlPiBdCi0gICAgICAgICAgIFsgSVNfVEVNUExBVEUgWz1dIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5pc3RlbXBsYXRlPC9yZXBsYWNlYWJsZT4gXSBdCisgICAgICAgICAgIFsg SVNfVEVNUExBVEUgWz1dIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pc3RlbXBsYXRl PC9yZXBsYWNlYWJsZT4gXQorICAgICAgICAgICBbIE9JRCBbPV0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm9pZDwvcmVwbGFjZWFibGU+IF0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC0yMDMsNiArMjA0LDIxIEBAIENSRUFURSBEQVRBQkFTRSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICAgIDwvcGFy YT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm9pZDwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBh cmE+CisgICAgICAgICBUaGUgb2JqZWN0IGlkZW50aWZpZXIgdG8gYmUgdXNlZCBmb3IgdGhlIG5l dyBkYXRhYmFzZS4gSWYgdGhpcworICAgICAgICAgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQs IHRoZSBkYXRhYmFzZSB3aWxsIGNob29zZSBhIHN1aXRhYmxlCisgICAgICAgICBPSUQgYXV0b21h dGljYWxseS4gVGhpcyBwYXJhbWV0ZXIgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciBpbnRlcm5h bAorICAgICAgICAgdXNlIGJ5IDxhcHBsaWNhdGlvbj5wZ191cGdyYWRlPC9hcHBsaWNhdGlvbj4s IGFuZCBvbmx5CisgICAgICAgICA8YXBwbGljYXRpb24+cGdfdXBncmFkZTwvYXBwbGljYXRpb24+ IGNhbiBzcGVjaWZ5IGEgdmFsdWUgbGVzcworICAgICAgICAgdGhhbiAxNjM4NC4KKyAgICAgICAg PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg IDwvdmFyaWFibGVsaXN0PgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZGJjb21tYW5kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmlu ZGV4IGRhODM0NTUuLjAyNTI5ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ri Y29tbWFuZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAgLTEx NSw3ICsxMTUsNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRi U3RtdCAqc3RtdCkKIAlIZWFwVHVwbGUJdHVwbGU7CiAJRGF0dW0JCW5ld19yZWNvcmRbTmF0dHNf cGdfZGF0YWJhc2VdOwogCWJvb2wJCW5ld19yZWNvcmRfbnVsbHNbTmF0dHNfcGdfZGF0YWJhc2Vd OwotCU9pZAkJCWRib2lkOworCU9pZAkJCWRib2lkID0gSW52YWxpZE9pZDsKIAlPaWQJCQlkYXRk YmE7CiAJTGlzdENlbGwgICAqb3B0aW9uOwogCURlZkVsZW0gICAgKmR0YWJsZXNwYWNlbmFtZSA9 IE5VTEw7CkBAIC0yMTUsNiArMjE1LDMwIEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Y29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQkJCQkgZXJyaGludCgiQ29uc2lkZXIgdXNpbmcg dGFibGVzcGFjZXMgaW5zdGVhZC4iKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGRlZmVsLT5sb2NhdGlvbikpKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5h bWUsICJvaWQiKSA9PSAwKQorCQl7CisJCQlkYm9pZCA9IGRlZkdldEludDMyKGRlZmVsKTsKKwor CQkJLyoKKwkJCSAqIFdlIGRvbid0IG5vcm1hbGx5IHBlcm1pdCBuZXcgZGF0YWJhc2VzIHRvIGJl IGNyZWF0ZWQgd2l0aAorCQkJICogc3lzdGVtLWFzc2lnbmVkIE9JRHMuIHBnX3VwZ3JhZGUgdHJp ZXMgdG8gcHJlc2VydmUgZGF0YWJhc2UKKwkJCSAqIE9JRHMsIGFuZCB3ZSBkb24ndCB3YW50IGFu eSBPSURzIHRoYXQgYXJlIHVzZWQgaW4gdGhpcyBkYXRhYmFzZQorCQkJICogY2x1c3RlciB0byBi ZSBPSURzIHRoYXQgbWlnaHQgYmUgdXNlZCBmb3Igc29tZSBvdGhlciBjbHVzdGVyIGluCisJCQkg KiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFBvc3RncmVTUUwuIFdlIGFzc3VtZSBhbGwgc3VjaCBPSURz IHdpbGwgYmUKKwkJCSAqIGZyb20gdGhlIHN5c3RlbS1tYW5hZ2VkIE9JRCByYW5nZS4KKwkJCSAq CisJCQkgKiBBcyBhbiBleGNlcHRpb24sIGhvd2V2ZXIsIHdlIHBlcm1pdCBhbnkgT0lEIHRvIGJl IGFzc2lnbmVkIHdoZW4KKwkJCSAqIGFsbG93X3N5c3RlbV90YWJsZV9tb2RzPW9uIChzbyB0aGF0 IGluaXRkYiBjYW4gYXNzaWduIHN5c3RlbQorCQkJICogT0lEcyB0byB0ZW1wbGF0ZTAgYW5kIHBv c3RncmVzKSBvciB3aGVuIHBlcmZvcm1pbmcgYSBiaW5hcnkKKwkJCSAqIHVwZ3JhZGUgKHNvIHRo YXQgcGdfdXBncmFkZSBjYW4gcHJlc2VydmUgd2hhdGV2ZXIgT0lEcyBpdCBmaW5kcworCQkJICog aW4gdGhlIHNvdXJjZSBjbHVzdGVyKS4KKwkJCSAqLworCQkJaWYgKGRib2lkIDwgRmlyc3ROb3Jt YWxPYmplY3RJZCAmJgorCQkJCSFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiAhSXNCaW5hcnlVcGdy YWRlKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSksCisJCQkJCQllcnJtc2coIk9JRHMgbGVzcyB0aGFuICV1IGFyZSBy ZXNlcnZlZCBmb3Igc3lzdGVtIG9iamVjdHMiLCBGaXJzdE5vcm1hbE9iamVjdElkKSk7CisJCX0K IAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLApAQCAtNTAyLDExICs1MjYsMzQgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJICovCiAJcGdfZGF0YWJhc2VfcmVsID0gdGFi bGVfb3BlbihEYXRhYmFzZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCi0JZG8KKwkv KgorCSAqIElmIGRhdGFiYXNlIE9JRCBpcyBjb25maWd1cmVkLCBjaGVjayBpZiB0aGUgT0lEIGlz IGFscmVhZHkgaW4gdXNlIG9yCisJICogZGF0YSBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMuCisJ ICovCisJaWYgKE9pZElzVmFsaWQoZGJvaWQpKQogCXsKLQkJZGJvaWQgPSBHZXROZXdPaWRXaXRo SW5kZXgocGdfZGF0YWJhc2VfcmVsLCBEYXRhYmFzZU9pZEluZGV4SWQsCi0JCQkJCQkJCSAgIEFu dW1fcGdfZGF0YWJhc2Vfb2lkKTsKLQl9IHdoaWxlIChjaGVja19kYl9maWxlX2NvbmZsaWN0KGRi b2lkKSk7CisJCWNoYXIJICAgKmV4aXN0aW5nX2RibmFtZSA9IGdldF9kYXRhYmFzZV9uYW1lKGRi b2lkKTsKKworCQlpZiAoZXhpc3RpbmdfZGJuYW1lICE9IE5VTEwpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSksCisJCQkJ CWVycm1zZygiZGF0YWJhc2UgT0lEICV1IGlzIGFscmVhZHkgaW4gdXNlIGJ5IGRhdGFiYXNlIFwi JXNcIiIsCisJCQkJCQkgICBkYm9pZCwgZXhpc3RpbmdfZGJuYW1lKSk7CisKKwkJaWYgKGNoZWNr X2RiX2ZpbGVfY29uZmxpY3QoZGJvaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSkpLAorCQkJCQllcnJtc2coImRhdGEg ZGlyZWN0b3J5IHdpdGggdGhlIHNwZWNpZmllZCBPSUQgJXUgYWxyZWFkeSBleGlzdHMiLCBkYm9p ZCkpOworCX0KKwllbHNlCisJeworCQkvKiBTZWxlY3QgYW4gT0lEIGZvciB0aGUgbmV3IGRhdGFi YXNlIGlmIGlzIG5vdCBleHBsaWNpdGx5IGNvbmZpZ3VyZWQuICovCisJCWRvCisJCXsKKwkJCWRi b2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHBnX2RhdGFiYXNlX3JlbCwgRGF0YWJhc2VPaWRJbmRl eElkLAorCQkJCQkJCQkJICAgQW51bV9wZ19kYXRhYmFzZV9vaWQpOworCQl9IHdoaWxlIChjaGVj a19kYl9maWxlX2NvbmZsaWN0KGRib2lkKSk7CisJfQogCiAJLyoKIAkgKiBJbnNlcnQgYSBuZXcg dHVwbGUgaW50byBwZ19kYXRhYmFzZS4gIFRoaXMgZXN0YWJsaXNoZXMgb3VyIG93bmVyc2hpcCBv ZgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgYi9zcmMvYmluL2luaXRkYi9p bml0ZGIuYwppbmRleCAwYTJkYmE3Li43ZTAzYjUxIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRk Yi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtNTksNiArNTksNyBA QAogI2luY2x1ZGUgInN5cy9tbWFuLmgiCiAjZW5kaWYKIAorI2luY2x1ZGUgImFjY2Vzcy90cmFu c2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jbGFzc19kLmgiIC8qIHBn cm1pbmNsdWRlIGlnbm9yZSAqLwpAQCAtMTgzOCw4ICsxODM5LDIzIEBAIHN0YXRpYyB2b2lkCiBt YWtlX3RlbXBsYXRlMChGSUxFICpjbWRmZCkKIHsKIAljb25zdCBjaGFyICpjb25zdCAqbGluZTsK KworCS8qCisJICogcGdfdXBncmFkZSB0cmllcyB0byBwcmVzZXJ2ZSBkYXRhYmFzZSBPSURzIGFj cm9zcyB1cGdyYWRlcy4gSXQncyBzbWFydAorCSAqIGVub3VnaCB0byBkcm9wIGFuZCByZWNyZWF0 ZSBhIGNvbmZsaWN0aW5nIGRhdGFiYXNlIHdpdGggdGhlIHNhbWUgbmFtZSwKKwkgKiBidXQgaWYg dGhlIHNhbWUgT0lEIHdlcmUgdXNlZCBmb3Igb25lIHN5c3RlbS1jcmVhdGVkIGRhdGFiYXNlIGlu IHRoZQorCSAqIG9sZCBjbHVzdGVyIGFuZCBhIGRpZmZlcmVudCBzeXN0ZW0tY3JlYXRlZCBkYXRh YmFzZSBpbiB0aGUgbmV3IGNsdXN0ZXIsCisJICogaXQgd291bGQgZmFpbC4gVG8gYXZvaWQgdGhh dCwgYXNzaWduIGEgZml4ZWQgT0lEIHRvIHRlbXBsYXRlMCByYXRoZXIKKwkgKiB0aGFuIGxldHRp bmcgdGhlIHNlcnZlciBjaG9vc2Ugb25lLgorCSAqCisJICogKE5vdGUgdGhhdCwgd2hpbGUgdGhl IHVzZXIgY291bGQgaGF2ZSBkcm9wcGVkIGFuZCByZWNyZWF0ZWQgdGhlc2UKKwkgKiBvYmplY3Rz IGluIHRoZSBvbGQgY2x1c3RlciwgdGhlIHByb2JsZW0gc2NlbmFyaW8gb25seSBleGlzdHMgaWYg dGhlIE9JRAorCSAqIHRoYXQgaXMgaW4gdXNlIGluIHRoZSBvbGQgY2x1c3RlciBpcyBhbHNvIHVz ZWQgaW4gdGggbmV3IGNsdXN0ZXIgLSBhbmQKKwkgKiB0aGUgbmV3IGNsdXN0ZXIgc2hvdWxkIGJl IHRoZSByZXN1bHQgb2YgYSBmcmVzaCBpbml0ZGIuKQorCSAqLwogCXN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCB0ZW1wbGF0ZTBfc2V0dXBbXSA9IHsKLQkJIkNSRUFURSBEQVRBQkFTRSB0ZW1wbGF0 ZTAgSVNfVEVNUExBVEUgPSB0cnVlIEFMTE9XX0NPTk5FQ1RJT05TID0gZmFsc2U7XG5cbiIsCisJ CSJDUkVBVEUgREFUQUJBU0UgdGVtcGxhdGUwIElTX1RFTVBMQVRFID0gdHJ1ZSBBTExPV19DT05O RUNUSU9OUyA9IGZhbHNlIE9JRCA9ICIKKwkJQ3BwQXNTdHJpbmcyKFRlbXBsYXRlME9iamVjdElk KSAiO1xuXG4iLAogCiAJCS8qCiAJCSAqIEV4cGxpY2l0bHkgcmV2b2tlIHB1YmxpYyBjcmVhdGUt c2NoZW1hIGFuZCBjcmVhdGUtdGVtcC10YWJsZQpAQCAtMTg2OSw4ICsxODg1LDEwIEBAIHN0YXRp YyB2b2lkCiBtYWtlX3Bvc3RncmVzKEZJTEUgKmNtZGZkKQogewogCWNvbnN0IGNoYXIgKmNvbnN0 ICpsaW5lOworCisJLyogQXNzaWduIGEgZml4ZWQgT0lEIHRvIHBvc3RncmVzLCBmb3IgdGhlIHNh bWUgcmVhc29ucyBhcyB0ZW1wbGF0ZTAgKi8KIAlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcG9z dGdyZXNfc2V0dXBbXSA9IHsKLQkJIkNSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcztcblxuIiwKKwkJ IkNSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcyBPSUQgPSAiIENwcEFzU3RyaW5nMihQb3N0Z3Jlc09i amVjdElkKSAiO1xuXG4iLAogCQkiQ09NTUVOVCBPTiBEQVRBQkFTRSBwb3N0Z3JlcyBJUyAnZGVm YXVsdCBhZG1pbmlzdHJhdGl2ZSBjb25uZWN0aW9uIGRhdGFiYXNlJztcblxuIiwKIAkJTlVMTAog CX07CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwppbmRleCA3YzJmMWQzLi5kMjg0N2M3IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTI4 MzgsOCArMjgzOCwxNiBAQCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAqZm91dCkKIAkgKiBhcmUgbGVm dCB0byB0aGUgREFUQUJBU0UgUFJPUEVSVElFUyBlbnRyeSwgc28gdGhhdCB0aGV5IGNhbiBiZSBh cHBsaWVkCiAJICogYWZ0ZXIgcmVjb25uZWN0aW5nIHRvIHRoZSB0YXJnZXQgREIuCiAJICovCi0J YXBwZW5kUFFFeHBCdWZmZXIoY3JlYVFyeSwgIkNSRUFURSBEQVRBQkFTRSAlcyBXSVRIIFRFTVBM QVRFID0gdGVtcGxhdGUwIiwKLQkJCQkJICBxZGF0bmFtZSk7CisJaWYgKGRvcHQtPmJpbmFyeV91 cGdyYWRlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoY3JlYVFyeSwgIkNSRUFURSBEQVRBQkFT RSAlcyBXSVRIIFRFTVBMQVRFID0gdGVtcGxhdGUwIE9JRCA9ICV1IiwKKwkJCQkJCSAgcWRhdG5h bWUsIGRiQ2F0SWQub2lkKTsKKwl9CisJZWxzZQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoY3Jl YVFyeSwgIkNSRUFURSBEQVRBQkFTRSAlcyBXSVRIIFRFTVBMQVRFID0gdGVtcGxhdGUwIiwKKwkJ CQkJCSAgcWRhdG5hbWUpOworCX0KIAlpZiAoc3RybGVuKGVuY29kaW5nKSA+IDApCiAJewogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiIEVOQ09ESU5HID0gIik7CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3VwZ3JhZGUvSU1QTEVNRU5UQVRJT04gYi9zcmMvYmluL3BnX3VwZ3JhZGUv SU1QTEVNRU5UQVRJT04KaW5kZXggNjlmY2Q3MC4uMzg0ODM0YSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ191cGdyYWRlL0lNUExFTUVOVEFUSU9OCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9JTVBM RU1FTlRBVElPTgpAQCAtODQsNyArODQsNyBAQCBjbHVzdGVyIHVzaW5nIHRoZSBmaXJzdCBwYXJ0 IG9mIHRoZSBwZ19kdW1wYWxsIG91dHB1dC4KIE5leHQsIHBnX3VwZ3JhZGUgZXhlY3V0ZXMgdGhl IHJlbWFpbmRlciBvZiB0aGUgc2NyaXB0IHByb2R1Y2VkIGVhcmxpZXIKIGJ5IHBnX2R1bXBhbGwg LS0tIHRoaXMgc2NyaXB0IGVmZmVjdGl2ZWx5IGNyZWF0ZXMgdGhlIGNvbXBsZXRlCiB1c2VyLWRl ZmluZWQgbWV0YWRhdGEgZnJvbSB0aGUgb2xkIGNsdXN0ZXIgdG8gdGhlIG5ldyBjbHVzdGVyLiAg SXQKLXByZXNlcnZlcyB0aGUgcmVsZmlsZW5vZGUgbnVtYmVycyBzbyBUT0FTVCBhbmQgb3RoZXIg cmVmZXJlbmNlcworcHJlc2VydmVzIHRoZSBEQiwgdGFibGVzcGFjZSwgcmVsZmlsZW5vZGUgT0lE cyBzbyBUT0FTVCBhbmQgb3RoZXIgcmVmZXJlbmNlcwogdG8gcmVsZmlsZW5vZGVzIGluIHVzZXIg ZGF0YSBpcyBwcmVzZXJ2ZWQuICAoU2VlIGJpbmFyeS11cGdyYWRlIHVzYWdlCiBpbiBwZ19kdW1w KS4KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyBiL3NyYy9iaW4vcGdf dXBncmFkZS9pbmZvLmMKaW5kZXggZjdmYTA4Mi4uNjllZjIzMSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCkBAIC0x OTAsMTAgKzE5MCw4IEBAIGNyZWF0ZV9yZWxfZmlsZW5hbWVfbWFwKGNvbnN0IGNoYXIgKm9sZF9k YXRhLCBjb25zdCBjaGFyICpuZXdfZGF0YSwKIAkJbWFwLT5uZXdfdGFibGVzcGFjZV9zdWZmaXgg PSBuZXdfY2x1c3Rlci50YWJsZXNwYWNlX3N1ZmZpeDsKIAl9CiAKLQltYXAtPm9sZF9kYl9vaWQg PSBvbGRfZGItPmRiX29pZDsKLQltYXAtPm5ld19kYl9vaWQgPSBuZXdfZGItPmRiX29pZDsKLQot CS8qIHJlbGZpbGVub2RlIGlzIHByZXNlcnZlZCBhY3Jvc3Mgb2xkIGFuZCBuZXcgY2x1c3RlciAq LworCS8qIERCIG9pZCBhbmQgcmVsZmlsZW5vZGVzIGFyZSBwcmVzZXJ2ZWQgYmV0d2VlbiBvbGQg YW5kIG5ldyBjbHVzdGVyICovCisJbWFwLT5kYl9vaWQgPSBvbGRfZGItPmRiX29pZDsKIAltYXAt PnJlbGZpbGVub2RlID0gb2xkX3JlbC0+cmVsZmlsZW5vZGU7CiAKIAkvKiB1c2VkIG9ubHkgZm9y IGxvZ2dpbmcgYW5kIGVycm9yIHJlcG9ydGluZywgb2xkL25ldyBhcmUgaWRlbnRpY2FsICovCkBA IC0zMjQsOCArMzIyLDcgQEAgZ2V0X2RiX2luZm9zKENsdXN0ZXJJbmZvICpjbHVzdGVyKQogCQkJ ICIgTEVGVCBPVVRFUiBKT0lOIHBnX2NhdGFsb2cucGdfdGFibGVzcGFjZSB0ICIKIAkJCSAiIE9O IGQuZGF0dGFibGVzcGFjZSA9IHQub2lkICIKIAkJCSAiV0hFUkUgZC5kYXRhbGxvd2Nvbm4gPSB0 cnVlICIKLQkvKiB3ZSBkb24ndCBwcmVzZXJ2ZSBwZ19kYXRhYmFzZS5vaWQgc28gd2Ugc29ydCBi eSBuYW1lICovCi0JCQkgIk9SREVSIEJZIDIiKTsKKwkJCSAiT1JERVIgQlkgMSIpOwogCiAJcmVz ID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIiVzIiwgcXVlcnkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAppbmRleCBkYTY3NzBkLi4xZGI4ZTNmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgK QEAgLTE0NSw4ICsxNDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCWNvbnN0IGNoYXIgKm5ld190YWJs ZXNwYWNlOwogCWNvbnN0IGNoYXIgKm9sZF90YWJsZXNwYWNlX3N1ZmZpeDsKIAljb25zdCBjaGFy ICpuZXdfdGFibGVzcGFjZV9zdWZmaXg7Ci0JT2lkCQkJb2xkX2RiX29pZDsKLQlPaWQJCQluZXdf ZGJfb2lkOworCU9pZAkJCWRiX29pZDsKIAlPaWQJCQlyZWxmaWxlbm9kZTsKIAkvKiB0aGUgcmVz dCBhcmUgdXNlZCBvbmx5IGZvciBsb2dnaW5nIGFuZCBlcnJvciByZXBvcnRpbmcgKi8KIAljaGFy CSAgICpuc3BuYW1lOwkJLyogbmFtZXNwYWNlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191 cGdyYWRlL3JlbGZpbGVub2RlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcmVsZmlsZW5vZGUuYwpp bmRleCA2ZTAyNTNjLi4yZjRkZWIzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcmVs ZmlsZW5vZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcmVsZmlsZW5vZGUuYwpAQCAtMTkz LDE0ICsxOTMsMTQgQEAgdHJhbnNmZXJfcmVsZmlsZShGaWxlTmFtZU1hcCAqbWFwLCBjb25zdCBj aGFyICp0eXBlX3N1ZmZpeCwgYm9vbCB2bV9tdXN0X2FkZF9mcm8KIAkJc25wcmludGYob2xkX2Zp bGUsIHNpemVvZihvbGRfZmlsZSksICIlcyVzLyV1LyV1JXMlcyIsCiAJCQkJIG1hcC0+b2xkX3Rh Ymxlc3BhY2UsCiAJCQkJIG1hcC0+b2xkX3RhYmxlc3BhY2Vfc3VmZml4LAotCQkJCSBtYXAtPm9s ZF9kYl9vaWQsCisJCQkJIG1hcC0+ZGJfb2lkLAogCQkJCSBtYXAtPnJlbGZpbGVub2RlLAogCQkJ CSB0eXBlX3N1ZmZpeCwKIAkJCQkgZXh0ZW50X3N1ZmZpeCk7CiAJCXNucHJpbnRmKG5ld19maWxl LCBzaXplb2YobmV3X2ZpbGUpLCAiJXMlcy8ldS8ldSVzJXMiLAogCQkJCSBtYXAtPm5ld190YWJs ZXNwYWNlLAogCQkJCSBtYXAtPm5ld190YWJsZXNwYWNlX3N1ZmZpeCwKLQkJCQkgbWFwLT5uZXdf ZGJfb2lkLAorCQkJCSBtYXAtPmRiX29pZCwKIAkJCQkgbWFwLT5yZWxmaWxlbm9kZSwKIAkJCQkg dHlwZV9zdWZmaXgsCiAJCQkJIGV4dGVudF9zdWZmaXgpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDZi ZDMzYTAuLjUwMmI1YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwor KysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTI2MzMsNyArMjYzMyw3IEBAIHBz cWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNP TVBMRVRFX1dJVEgoIk9XTkVSIiwgIlRFTVBMQVRFIiwgIkVOQ09ESU5HIiwgIlRBQkxFU1BBQ0Ui LAogCQkJCQkgICJJU19URU1QTEFURSIsCiAJCQkJCSAgIkFMTE9XX0NPTk5FQ1RJT05TIiwgIkNP Tk5FQ1RJT04gTElNSVQiLAotCQkJCQkgICJMQ19DT0xMQVRFIiwgIkxDX0NUWVBFIiwgIkxPQ0FM RSIpOworCQkJCQkgICJMQ19DT0xMQVRFIiwgIkxDX0NUWVBFIiwgIkxPQ0FMRSIsICJPSUQiKTsK IAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJEQVRBQkFTRSIsIE1hdGNoQW55LCAiVEVN UExBVEUiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90ZW1wbGF0 ZV9kYXRhYmFzZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKaW5kZXggMzM4ZGZjYS4uYTljMjVmYyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvdHJhbnNhbS5oCkBAIC0xOTYsNiArMTk2LDEwIEBAIEZ1bGxUcmFuc2FjdGlvbklkQWR2 YW5jZShGdWxsVHJhbnNhY3Rpb25JZCAqZGVzdCkKICNkZWZpbmUgRmlyc3RVbnBpbm5lZE9iamVj dElkCTEyMDAwCiAjZGVmaW5lIEZpcnN0Tm9ybWFsT2JqZWN0SWQJCTE2Mzg0CiAKKy8qIE9JRHMg b2YgVGVtcGxhdGUwIGFuZCBQb3N0Z3JlcyBkYXRhYmFzZSBhcmUgZml4ZWQgKi8KKyNkZWZpbmUg VGVtcGxhdGUwT2JqZWN0SWQJCTQKKyNkZWZpbmUgUG9zdGdyZXNPYmplY3RJZAkJMTYwMDAKKwog LyoKICAqIFZhcmlhYmxlQ2FjaGUgaXMgYSBkYXRhIHN0cnVjdHVyZSBpbiBzaGFyZWQgbWVtb3J5 IHRoYXQgaXMgdXNlZCB0byB0cmFjawogICogT0lEIGFuZCBYSUQgYXNzaWdubWVudCBzdGF0ZS4g IEZvciBsYXJnZWx5IGhpc3RvcmljYWwgcmVhc29ucywgdGhlcmUgaXMKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvdW51c2VkX29pZHMgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3VudXNl ZF9vaWRzCmluZGV4IGU1NWJjNmYuLjMxNDIwOGIgMTAwNzU1Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvdW51c2VkX29pZHMKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy91bnVzZWRfb2lkcwpA QCAtMzIsNiArMzIsMTEgQEAgbXkgQGlucHV0X2ZpbGVzID0gZ2xvYigicGdfKi5oIik7CiAKIG15 ICRvaWRzID0gQ2F0YWxvZzo6RmluZEFsbE9pZHNGcm9tSGVhZGVycyhAaW5wdXRfZmlsZXMpOwog CisjIFB1c2ggdGhlIE9JRCB0aGF0IGlzIHJlc2VydmVkIGZvciB0ZW1wbGF0ZTAgZGF0YWJhc2Uu CitteSAkVGVtcGxhdGUwT2JqZWN0SWQgPQorICBDYXRhbG9nOjpGaW5kRGVmaW5lZFN5bWJvbCgn YWNjZXNzL3RyYW5zYW0uaCcsICcuLicsICdUZW1wbGF0ZTBPYmplY3RJZCcpOworcHVzaCBAeyRv aWRzfSwgJFRlbXBsYXRlME9iamVjdElkOworCiAjIEFsc28gcHVzaCBGaXJzdEdlbmJraU9iamVj dElkIHRvIHNlcnZlIGFzIGEgdGVybWluYXRvciBmb3IgdGhlIGxhc3QgZ2FwLgogbXkgJEZpcnN0 R2VuYmtpT2JqZWN0SWQgPQogICBDYXRhbG9nOjpGaW5kRGVmaW5lZFN5bWJvbCgnYWNjZXNzL3Ry YW5zYW0uaCcsICcuLicsICdGaXJzdEdlbmJraU9iamVjdElkJyk7Ci0tIAoxLjguMy4xCgo= --000000000000f82e8905d605a4d5--