Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGk4W-000RI8-FG for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 19:21:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tGk4T-000uhs-TP for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 19:21:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGk4T-000uhk-EX for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 19:21:02 +0000 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tGk4N-0001Kp-5g for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 19:21:02 +0000 Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-7b66ea49407so103615285a.0 for ; Thu, 28 Nov 2024 11:20:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732821654; x=1733426454; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=JuGO0YRyD3yJCGmFPTKUrxsoc0xNsU+H3ELHXcTXpe0=; b=OrPMIj+6TiwODPzbDsLhBaYd5FnVW0LlxzGfcyHMg+bvMM7BSWckLIyQuuCxjZTI+a wd6RlgI+CSig1w8P2bCwun4WosflVWAxnQRGlKCFM+OYStYUIbUIjub6jZ2RA/ajgm0T nsuI8ESVYtyt9Yt8rYtYza0KwrgLGXxWhKZXFqIN9u3z9ErRkmQw4fsv9+f+khhRMKWk 3/2u/UWzO20j9zCU4j2NvuN+dB2fXQjthZNS6iuwVxs22cGRWmDL2T3L8Cu04uazLrji XblL4zJTA5/GvXusJgIBODSYro3UXE9H7Fo/UKYkY8KJPRPGNoeqKBkEkFX+MhbgLLZU C/xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732821654; x=1733426454; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JuGO0YRyD3yJCGmFPTKUrxsoc0xNsU+H3ELHXcTXpe0=; b=HRhaF1pLcdMsjsV+khI83BdxILXKi3FiiQnhhzWZTbA8WIH7wVkWIQ8vte89WDUN6v yvmLYuG39SuBtSeiM3l73zSwbdKj1GZTylpk5TvXlUh3haeWguMq6ngUs45TB42kaEBM i8cX+4w9IWpVxtUoiblmr5TXzGeHwBQQXXiuO9sU8ZdZOegJpEP8mZ7Wr/gY8b/y0ry3 wH/Zar8SZ5OiK5zYCqLwsxArIZaWOTyWtCmmOAyd+Yy7/G5GBl4bLJR470JUD9WNCKTE yohLso1EVg7bts+OuR+wP8QC26swGdy0N8CvV0KrJteNvh9m5fkJr9zvUaGT4bHcih1Q 1vsQ== X-Forwarded-Encrypted: i=1; AJvYcCVXfiTmMXgJVxfpvsalAwb3uQdKhbBr2t2H6YNaz8zzBMrOKoU55CG70q1HjyhzcSGL5A0YQ8avw9SFNd8X@lists.postgresql.org X-Gm-Message-State: AOJu0YwnfMFAKhn9pKArLLonsCh67vHazinBmIrcRFBjmYjbD8s3Lzdg +IX38wP9nDqkLLmwc9xtpFenNhfnGSDBuzOBSVI1FMHtqPWnJ1UMJoROp6EhtD4tlzLC49UH4FY ETPts8OZNs+Z4SllzwOlzSjDK3OM= X-Gm-Gg: ASbGncvKmPJuC4r2yj2Wsm1YoWt5gjCyPwggzf8lt3C7OYMRbxnhe0yUWl6vhsSzjvc VIpxbbhw28sloW9KLYMDtIRs3AcdzfkWKrvva7/8I X-Google-Smtp-Source: AGHT+IG4jjwpJ3ee7eAI+/My6MJs5mcXy72oF81Yx9PFszbp+2etaYn+5QlDsWfzZ85nsWb0Z9nrdoPcl2bUSwHTiGM= X-Received: by 2002:a05:620a:1a1b:b0:7b6:6e9e:21da with SMTP id af79cd13be357-7b683a28aafmr716359385a.19.1732821654055; Thu, 28 Nov 2024 11:20:54 -0800 (PST) MIME-Version: 1.0 References: <94d53a41-d1f5-4fd1-8d1e-ff36ac569848@app.fastmail.com> <4DA5A159-39FD-47DB-95E5-A4F65BC5782A@yandex-team.ru> <53e96b5a-cc77-4afa-8103-79c69afef1a6@uni-muenster.de> <748a7ec0-9126-4f27-a2a7-e3e449d6fdd7@uni-muenster.de> In-Reply-To: <748a7ec0-9126-4f27-a2a7-e3e449d6fdd7@uni-muenster.de> From: Kirill Gavrilov Date: Thu, 28 Nov 2024 22:20:42 +0300 Message-ID: Subject: Re: Truncate logs by max_log_size To: Jim Jones Cc: Kirill Reshke , "Andrey M. Borodin" , Euler Taveira , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000026a77f0627fdfbdd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000026a77f0627fdfbdd Content-Type: multipart/alternative; boundary="00000000000026a77e0627fdfbdb" --00000000000026a77e0627fdfbdb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 28, 2024 at 5:23=E2=80=AFPM Jim Jones wrote: > > > On 25.11.24 17:52, Kirill Reshke wrote: > > Hello! Please deliver the most recent patch version and fix the issues > > Jim identified [0] as the current commitfest draws to a close. > > Do not forget to include both parts of this patch (This was actually > > developed off-list, and we are now using this on our cloud PostgreSQL > > distribution on versions 12=E2=80=9317). > > > > [0] > https://www.postgresql.org/message-id/35096a36-04d4-480b-a7cd-a2d8151fb73= 7%40uni-muenster.de > > In addition to these points, this feature seems to fail with queries > containing special characters (more than one byte): > > With this "max_log_size".. > > postgres=3D# SHOW max_log_size; > max_log_size > -------------- > 20 > (1 row) > > ... and this query .. > > postgres=3D# SELECT "=C3=84=C3=9C=C3=96" FROM t; > ERROR: relation "t" does not exist > LINE 1: SELECT "=C3=84=C3=9C=C3=96" FROM t; > > .. this is the [truncated] log entry we get .. > > 2024-11-28 14:58:57.912 CET [2258876] ERROR: relation "t" does not > exist at character 19 > 2024-11-28 14:58:57.912 CET [2258876] STATEMENT: SELECT "=C3=84=C3=9C=C3= =96" FROM > > ... although the query originally had exactly 20 characters: > > postgres=3D# SELECT length('SELECT "=C3=84=C3=9C=C3=96" FROM t;'); > length > -------- > 20 > (1 row) > > > postgres=3D# SELECT length('=C3=84=C3=9C=C3=96'::bytea), length('AUO'::by= tea); > length | length > --------+-------- > 6 | 3 > (1 row) > > If it is supposed to be like this, it should be clearly stated so in the > docs. > > -- > Jim > > Here is version 3 of this patch. I found another place where this setting can be applied. Also added some documentation and specified that this setting truncates queries by size in bytes. --00000000000026a77e0627fdfbdb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Thu, Nov 28, 2024 at 5:23=E2=80=AFPM J= im Jones <jim.jones@uni-mue= nster.de> wrote:


On 25.11.24 17:52, Kirill Reshke wrote:
> Hello! Please deliver the most recent patch version and fix the issues=
> Jim identified [0] as the current commitfest draws to a close.
> Do not forget to include both parts of this patch (This was actually > developed off-list, and we are now using this on our cloud PostgreSQL<= br> > distribution on versions 12=E2=80=9317).
>
> [0] https://www.postgresql.org/message-id/35096a36-04d4-480b-a7cd-a2d8151fb737= %40uni-muenster.de

In addition to these points, this feature seems to fail with queries
containing special characters (more than one byte):

With this "max_log_size"..

postgres=3D# SHOW max_log_size;
=C2=A0max_log_size
--------------
=C2=A020
(1 row)

... and this query ..

postgres=3D# SELECT "=C3=84=C3=9C=C3=96" FROM t;
ERROR:=C2=A0 relation "t" does not exist
LINE 1: SELECT "=C3=84=C3=9C=C3=96" FROM t;

.. this is the [truncated] log entry we get ..

2024-11-28 14:58:57.912 CET [2258876] ERROR:=C2=A0 relation "t" d= oes not
exist at character 19
2024-11-28 14:58:57.912 CET [2258876] STATEMENT:=C2=A0 SELECT "=C3=84= =C3=9C=C3=96" FROM

... although the query originally had exactly 20 characters:

postgres=3D# SELECT length('SELECT "=C3=84=C3=9C=C3=96" FROM = t;');
=C2=A0length
--------
=C2=A0=C2=A0=C2=A0=C2=A0 20
(1 row)


postgres=3D# SELECT length('=C3=84=C3=9C=C3=96'::bytea), length(= 9;AUO'::bytea);
=C2=A0length | length
--------+--------
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 6 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 3
(1 row)

If it is supposed to be like this, it should be clearly stated so in the docs.

--
Jim

=C2=A0 Here is version 3 of this patch. I found anoth= er place where this setting can be applied.=C2=A0
=C2=A0 Also add= ed some documentation and specified that this setting truncates queries by = size in bytes.
--00000000000026a77e0627fdfbdb-- --00000000000026a77f0627fdfbdd Content-Type: application/octet-stream; name="V3-0001-parameter-max_log_size-to-truncate-logs.patch" Content-Disposition: attachment; filename="V3-0001-parameter-max_log_size-to-truncate-logs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m41p8vpo0 RnJvbSA5NDM5ZWIxYzVjMTk0ZDM4YTZhYTM4OGQ4ZDhjYTM0MzUwYWUzMDBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBkaXBoYW50eG0gPGRpcGhhbnR4bUB5YW5kZXgtdGVhbS5ydT4K RGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAyMToyNDo1OSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIHBh cmFtZXRlciBtYXhfbG9nX3NpemUgdG8gdHJ1bmNhdGUgbG9ncwoKVGhlcmUgaXMgbm8gbmVlZCB0 byBsb2cgdGhlIGVudGlyZSBxdWVyeSwgYmVjYXVzZSBpdCBtYXkgYmUgbGFyZ2UgYW5kIHRha2Ug bG90cyBvZiBzcGFjZSBvbiBkaXNrLiBQYXJhbWV0ZXIgbWF4X2xvZ19zaXplIHNldCB0aGUgbWF4 aW11bSBsZW5ndGggZm9yIGxvZ2dlZCBxdWVyeS4gRXZlcnl0aGluZyBiZXlvbmQgdGhhdCBsZW5n dGggaXMgdHJ1bmNhdGVkLiBWYWx1ZSAwIGRpc2FibGVzIHRoZSBwYXJhbWV0ZXIuCi0tLQogZG9j L3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysK IHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8IDEwICsrKyst CiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMgICAgICAgICAgICAgICAgfCAzOCArKysr KysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAg ICAgICAgfCAxMSArKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZSB8ICAyICsKIHNyYy9iaW4vcGdfY3RsL3QvMDA0X2xvZ3JvdGF0ZS5wbCAgICAgICAg ICAgICB8IDE1ICsrKysrKysrCiBzcmMvaW5jbHVkZS91dGlscy9lbG9nLmggICAgICAgICAgICAg ICAgICAgICAgfCAgMiArCiA3IGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDc2YWI3MmRiOTYuLjUxMTBiNjFiYTUgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTc5MTMsNiArNzkxMywyMSBAQCBsb2dfbGluZV9wcmVmaXggPSAnJW0gWyVwXSAlcSV1 QCVkLyVhICcKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1tYXgtbG9nLXNpemUiIHhyZWZsYWJlbD0ibWF4X2xvZ19z aXplIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPm1heF9sb2dfc2l6ZTwvdmFybmFtZT4gKDx0eXBl PmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5tYXhfbG9nX3NpemU8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmlt YXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIElmIGdyZWF0ZXIgdGhhbiB6ZXJvLCBlYWNoIHF1ZXJ5 IGxvZ2dlZCBpcyB0cnVuY2F0ZWQgdG8gdGhpcyBtYW55IGJ5dGVzLgorICAgICAgICBaZXJvIGRp c2FibGVzIHRoZSBzZXR0aW5nLgorICAgICAgICBEZWZhdWx0IHZhbHVlIGlzIDVrQi4KKyAgICAg ICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogICAgICA8c2VjdDIgaWQ9InJ1bnRpbWUt Y29uZmlnLWxvZ2dpbmctY3N2bG9nIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA0Yjk4NWJkMDU2Li41 NDliZTEzZTViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAi dGNvcC9wcXVlcnkuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidGNv cC91dGlsaXR5LmgiCisjaW5jbHVkZSAidXRpbHMvZWxvZy5oIgogI2luY2x1ZGUgInV0aWxzL2d1 Y19ob29rcy5oIgogI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTAyOSwxMSArMTAzMCwxNCBAQCBleGVjX3NpbXBsZV9x dWVyeShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcpCiAJYm9vbAkJd2FzX2xvZ2dlZCA9IGZhbHNl OwogCWJvb2wJCXVzZV9pbXBsaWNpdF9ibG9jazsKIAljaGFyCQltc2VjX3N0clszMl07CisJY2hh ciogCQlxdWVyeV9sb2c7CiAKIAkvKgogCSAqIFJlcG9ydCBxdWVyeSB0byB2YXJpb3VzIG1vbml0 b3JpbmcgZmFjaWxpdGllcy4KIAkgKi8KIAlkZWJ1Z19xdWVyeV9zdHJpbmcgPSBxdWVyeV9zdHJp bmc7CisJYm9vbCBjb3BpZWQgPSBmYWxzZTsKKwlxdWVyeV9sb2cgPSBidWlsZF9xdWVyeV9sb2co cXVlcnlfc3RyaW5nLCAmY29waWVkKTsKIAogCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVf UlVOTklORywgcXVlcnlfc3RyaW5nKTsKIApAQCAtMTA3OCw3ICsxMDgyLDcgQEAgZXhlY19zaW1w bGVfcXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nKQogCWlmIChjaGVja19sb2dfc3RhdGVt ZW50KHBhcnNldHJlZV9saXN0KSkKIAl7CiAJCWVyZXBvcnQoTE9HLAotCQkJCShlcnJtc2coInN0 YXRlbWVudDogJXMiLCBxdWVyeV9zdHJpbmcpLAorCQkJCShlcnJtc2coInN0YXRlbWVudDogJXMi LCBxdWVyeV9sb2cpLAogCQkJCSBlcnJoaWRlc3RtdCh0cnVlKSwKIAkJCQkgZXJyZGV0YWlsX2V4 ZWN1dGUocGFyc2V0cmVlX2xpc3QpKSk7CiAJCXdhc19sb2dnZWQgPSB0cnVlOwpAQCAtMTM3Nyw3 ICsxMzgxLDcgQEAgZXhlY19zaW1wbGVfcXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nKQog CQljYXNlIDI6CiAJCQllcmVwb3J0KExPRywKIAkJCQkJKGVycm1zZygiZHVyYXRpb246ICVzIG1z ICBzdGF0ZW1lbnQ6ICVzIiwKLQkJCQkJCQltc2VjX3N0ciwgcXVlcnlfc3RyaW5nKSwKKwkJCQkJ CQltc2VjX3N0ciwgcXVlcnlfbG9nKSwKIAkJCQkJIGVycmhpZGVzdG10KHRydWUpLAogCQkJCQkg ZXJyZGV0YWlsX2V4ZWN1dGUocGFyc2V0cmVlX2xpc3QpKSk7CiAJCQlicmVhazsKQEAgLTEzODgs NiArMTM5Miw4IEBAIGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZykK IAogCVRSQUNFX1BPU1RHUkVTUUxfUVVFUllfRE9ORShxdWVyeV9zdHJpbmcpOwogCisJaWYgKHF1 ZXJ5X2xvZyAmJiBjb3BpZWQpCisJCXBmcmVlKHF1ZXJ5X2xvZyk7CiAJZGVidWdfcXVlcnlfc3Ry aW5nID0gTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxv Zy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDI4OTA1OTQzNWEuLmFh OTcxMmJhNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAgLTExMSw2ICsxMTEsNyBAQCBpbnQJ CQlMb2dfZGVzdGluYXRpb24gPSBMT0dfREVTVElOQVRJT05fU1RERVJSOwogY2hhcgkgICAqTG9n X2Rlc3RpbmF0aW9uX3N0cmluZyA9IE5VTEw7CiBib29sCQlzeXNsb2dfc2VxdWVuY2VfbnVtYmVy cyA9IHRydWU7CiBib29sCQlzeXNsb2dfc3BsaXRfbWVzc2FnZXMgPSB0cnVlOworaW50CQkJbWF4 X2xvZ19zaXplID0gMDsKIAogLyogUHJvY2Vzc2VkIGZvcm0gb2YgYmFja3RyYWNlX2Z1bmN0aW9u cyBHVUMgKi8KIHN0YXRpYyBjaGFyICpiYWNrdHJhY2VfZnVuY3Rpb25fbGlzdDsKQEAgLTE2OTMs NiArMTY5NCwxMCBAQCBFbWl0RXJyb3JSZXBvcnQodm9pZCkKIAlDSEVDS19TVEFDS19ERVBUSCgp OwogCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZWRhdGEtPmFzc29jX2NvbnRl eHQpOwogCisJY29uc3QgY2hhciogb2xkX3F1ZXJ5X3N0cmluZyA9IGRlYnVnX3F1ZXJ5X3N0cmlu ZzsKKwlib29sIGNvcGllZCA9IGZhbHNlOworCWRlYnVnX3F1ZXJ5X3N0cmluZyA9IGJ1aWxkX3F1 ZXJ5X2xvZyhkZWJ1Z19xdWVyeV9zdHJpbmcsICZjb3BpZWQpOworCiAJLyoKIAkgKiBSZXNldCB0 aGUgZm9ybWF0dGVkIHRpbWVzdGFtcCBmaWVsZHMgYmVmb3JlIGVtaXR0aW5nIGFueSBsb2dzLiAg VGhpcwogCSAqIGluY2x1ZGVzIGFsbCB0aGUgbG9nIGRlc3RpbmF0aW9ucyBhbmQgZW1pdF9sb2df aG9vaywgYXMgdGhlIGxhdHRlcgpAQCAtMTczMyw2ICsxNzM4LDEyIEBAIEVtaXRFcnJvclJlcG9y dCh2b2lkKQogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCXJlY3Vyc2lv bl9kZXB0aC0tOworCisJaWYgKGRlYnVnX3F1ZXJ5X3N0cmluZyAmJiBjb3BpZWQpCisJeworCQlw ZnJlZShkZWJ1Z19xdWVyeV9zdHJpbmcpOworCQlkZWJ1Z19xdWVyeV9zdHJpbmcgPSBvbGRfcXVl cnlfc3RyaW5nOworCX0KIH0KIAogLyoKQEAgLTM3NzMsMyArMzc4NCwzMCBAQCB3cml0ZV9zdGRl cnIoY29uc3QgY2hhciAqZm10LC4uLikKICNlbmRpZgogCXZhX2VuZChhcCk7CiB9CisKKy8qCisg KglBcHBseSB0cnVuY2F0aW9uIHRvIGJ1aWxkIHF1ZXJ5IHRoYXQgd2lsbCBiZSBsb2dnZWQuCisg KgorICoJSWYgcXVlcnkgbmVlZHMgdG8gYmUgdHJ1bmNhdGVkLCBjb3BpZWQgd2lsbCBiZSBzZXQg dG8gdHJ1ZSAKKyAqCWFuZCByZXR1cm5lZCBzdHJpbmcgbXVzdCBiZSBmcmVlZAorKi8KK2NoYXIq CitidWlsZF9xdWVyeV9sb2coY29uc3QgY2hhciogcXVlcnksIGJvb2wgKmNvcGllZCkKK3sKKwkq Y29waWVkID0gZmFsc2U7CisJaWYgKCFxdWVyeSkKKwkJcmV0dXJuIE5VTEw7CisKKwlzaXplX3Qg cXVlcnlfbGVuID0gc3RybGVuKHF1ZXJ5KTsKKwlpZiAobWF4X2xvZ19zaXplID09IDAgfHwgcXVl cnlfbGVuIDwgbWF4X2xvZ19zaXplKQorCXsKKwkJcmV0dXJuIHF1ZXJ5OworCX0KKworCSpjb3Bp ZWQgPSB0cnVlOworCXNpemVfdCBxdWVyeV9sb2dfbGVuID0gcGdfbWJjbGlwbGVuKHF1ZXJ5LCBx dWVyeV9sZW4sIG1heF9sb2dfc2l6ZSk7CisJY2hhciogcXVlcnlfbG9nID0gKGNoYXIqKXBhbGxv YyhxdWVyeV9sb2dfbGVuKzEpOworCW1lbWNweShxdWVyeV9sb2csIHF1ZXJ5LCBxdWVyeV9sb2df bGVuKTsKKwlxdWVyeV9sb2dbcXVlcnlfbG9nX2xlbl0gPSAnXDAnOworCXJldHVybiBxdWVyeV9s b2c7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDk4NDVhYmQ2OTMuLjY0 ZjIxMzc3YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0zNzI0LDYgKzM3 MjQsMTcgQEAgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJbnRbXSA9CiAJCU5VTEws IE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7Im1heF9sb2dfc2l6ZSIsIFBHQ19TVVNFVCwgTE9H R0lOR19XSEFULAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIG1heCBzaXplIGluIGJ5dGVzIG9mIGxv Z2dlZCBzdGF0ZW1lbnQuIiksCisJCQlOVUxMCisJCX0sCisJCSZtYXhfbG9nX3NpemUsCisJCTUg KiAoMTAyNCAqIDEwMjQpLAorCQkwLCBJTlRfTUFYLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwK KwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5V TEx9LCBOVUxMLCAwLCAwLCAwLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggNDA3Y2QxZTA4Yy4uNDQ5NzFjZWNj NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpA QCAtNjE3LDYgKzYxNyw4IEBACiAJCQkJCSMgYmluZC1wYXJhbWV0ZXIgdmFsdWVzIHRvIE4gYnl0 ZXM7CiAJCQkJCSMgLTEgbWVhbnMgcHJpbnQgaW4gZnVsbCwgMCBkaXNhYmxlcwogI2xvZ19zdGF0 ZW1lbnQgPSAnbm9uZScJCQkjIG5vbmUsIGRkbCwgbW9kLCBhbGwKKyNtYXhfbG9nX3NpemUgPSAw IAkJCQkjIG1heCBzaXplIG9mIGxvZ2dlZCBzdGF0ZW1lbnRfdGltZW91dCAoaW4gYnl0ZXMpCisJ CQkJICAgICMgMCBkaXNhYmxlcyB0aGUgZmVhdHVyZQogI2xvZ19yZXBsaWNhdGlvbl9jb21tYW5k cyA9IG9mZgogI2xvZ190ZW1wX2ZpbGVzID0gLTEJCQkjIGxvZyB0ZW1wb3JhcnkgZmlsZXMgZXF1 YWwgb3IgbGFyZ2VyCiAJCQkJCSMgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUgaW4ga2lsb2J5dGVz OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwvdC8wMDRfbG9ncm90YXRlLnBsIGIvc3JjL2Jp bi9wZ19jdGwvdC8wMDRfbG9ncm90YXRlLnBsCmluZGV4IGVhY2NhMWE2NTIuLjFjMWY4OWNiMGEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY3RsL3QvMDA0X2xvZ3JvdGF0ZS5wbAorKysgYi9zcmMv YmluL3BnX2N0bC90LzAwNF9sb2dyb3RhdGUucGwKQEAgLTY5LDYgKzY5LDcgQEAgbG9nX2Rlc3Rp bmF0aW9uID0gJ3N0ZGVyciwgY3N2bG9nLCBqc29ubG9nJwogIyB0aGVzZSBlbnN1cmUgc3RhYmls aXR5IG9mIHRlc3QgcmVzdWx0czoKIGxvZ19yb3RhdGlvbl9hZ2UgPSAwCiBsY19tZXNzYWdlcyA9 ICdDJworbWF4X2xvZ19zaXplID0gMzIKICkpOwogCiAkbm9kZS0+c3RhcnQoKTsKQEAgLTEzNSw2 ICsxMzYsMjAgQEAgY2hlY2tfbG9nX3BhdHRlcm4oJ3N0ZGVycicsICRuZXdfY3VycmVudF9sb2dm aWxlcywgJ3N5bnRheCBlcnJvcicsICRub2RlKTsKIGNoZWNrX2xvZ19wYXR0ZXJuKCdjc3Zsb2cn LCAkbmV3X2N1cnJlbnRfbG9nZmlsZXMsICdzeW50YXggZXJyb3InLCAkbm9kZSk7CiBjaGVja19s b2dfcGF0dGVybignanNvbmxvZycsICRuZXdfY3VycmVudF9sb2dmaWxlcywgJ3N5bnRheCBlcnJv cicsICRub2RlKTsKIAorJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgJ0lOU0VSVCBJTlRPIFNPTUVf Tk9OX0VYSVNUQU5UX1RBQkxFIFZBTFVFUyAoVEVTVCknKTsKK2ZvciAobXkgJGF0dGVtcHRzID0g MDsgJGF0dGVtcHRzIDwgJG1heF9hdHRlbXB0czsgJGF0dGVtcHRzKyspCit7CisJZXZhbCB7CisJ CSRjdXJyZW50X2xvZ2ZpbGVzID0gc2x1cnBfZmlsZSgkbm9kZS0+ZGF0YV9kaXIgLiAnL2N1cnJl bnRfbG9nZmlsZXMnKTsKKwl9OworCWxhc3QgdW5sZXNzICRAOworCXVzbGVlcCgxMDBfMDAwKTsK K30KK2RpZSAkQCBpZiAkQDsKK2NoZWNrX2xvZ19wYXR0ZXJuKCdzdGRlcnInLCAgJGN1cnJlbnRf bG9nZmlsZXMsICdJTlNFUlQgSU5UTyBTT01FX05PTl9FWElTVEFOVF9UQSg/IShCTEUgVkFMVUVT IFwoVEVTVFwpKSknLCAkbm9kZSk7CitjaGVja19sb2dfcGF0dGVybignY3N2bG9nJywgICRjdXJy ZW50X2xvZ2ZpbGVzLCAnSU5TRVJUIElOVE8gU09NRV9OT05fRVhJU1RBTlRfVEEoPyEoQkxFIFZB TFVFUyBcKFRFU1RcKSkpJywgJG5vZGUpOworY2hlY2tfbG9nX3BhdHRlcm4oJ2pzb25sb2cnLCAk Y3VycmVudF9sb2dmaWxlcywgJ0lOU0VSVCBJTlRPIFNPTUVfTk9OX0VYSVNUQU5UX1RBKD8hKEJM RSBWQUxVRVMgXChURVNUXCkpKScsICRub2RlKTsKKwogJG5vZGUtPnN0b3AoKTsKIAogZG9uZV90 ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmggYi9zcmMvaW5j bHVkZS91dGlscy9lbG9nLmgKaW5kZXggZTU0ZWNhNWI0OC4uZjY2ODk3OTZhNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Vsb2cu aApAQCAtNTAyLDYgKzUwMiw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTG9nX2Rlc3RpbmF0 aW9uOwogZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKkxvZ19kZXN0aW5hdGlvbl9zdHJpbmc7CiBl eHRlcm4gUEdETExJTVBPUlQgYm9vbCBzeXNsb2dfc2VxdWVuY2VfbnVtYmVyczsKIGV4dGVybiBQ R0RMTElNUE9SVCBib29sIHN5c2xvZ19zcGxpdF9tZXNzYWdlczsKK2V4dGVybiBQR0RMTElNUE9S VCBpbnQgbWF4X2xvZ19zaXplOwogCiAvKiBMb2cgZGVzdGluYXRpb24gYml0bWFwICovCiAjZGVm aW5lIExPR19ERVNUSU5BVElPTl9TVERFUlIJIDEKQEAgLTUxNiw2ICs1MTcsNyBAQCBleHRlcm4g dm9pZCBsb2dfc3RhdHVzX2Zvcm1hdChTdHJpbmdJbmZvIGJ1ZiwgY29uc3QgY2hhciAqZm9ybWF0 LAogZXh0ZXJuIHZvaWQgRGVidWdGaWxlT3Blbih2b2lkKTsKIGV4dGVybiBjaGFyICp1bnBhY2tf c3FsX3N0YXRlKGludCBzcWxfc3RhdGUpOwogZXh0ZXJuIGJvb2wgaW5fZXJyb3JfcmVjdXJzaW9u X3Ryb3VibGUodm9pZCk7CitleHRlcm4gY2hhciogYnVpbGRfcXVlcnlfbG9nKGNvbnN0IGNoYXIq IHF1ZXJ5LCBib29sICpjb3BpZWQpOwogCiAvKiBDb21tb24gZnVuY3Rpb25zIHNoYXJlZCBhY3Jv c3MgZGVzdGluYXRpb25zICovCiBleHRlcm4gdm9pZCByZXNldF9mb3JtYXR0ZWRfc3RhcnRfdGlt ZSh2b2lkKTsKLS0gCjIuMzkuMiAoQXBwbGUgR2l0LTE0MykKCg== --00000000000026a77f0627fdfbdd--