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.96) (envelope-from ) id 1wACXq-002A1a-1A for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2026 19:57:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wACXo-002Crz-1h for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Apr 2026 19:57:04 +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.96) (envelope-from <3danissimo@gmail.com>) id 1wACXo-002Crq-0W for pgsql-hackers@lists.postgresql.org; Tue, 07 Apr 2026 19:57:04 +0000 Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from <3danissimo@gmail.com>) id 1wACXm-00000001AlH-0fV1 for pgsql-hackers@postgresql.org; Tue, 07 Apr 2026 19:57:04 +0000 Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-799001d73bdso40586367b3.0 for ; Tue, 07 Apr 2026 12:57:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775591820; cv=none; d=google.com; s=arc-20240605; b=hQntF1fIg/g2ozE42zdMRSAG8PizNAb0AOap33EPNPwSqZ5xH3fHvkmqd7pyRyHsLY ZM5Sbos1A6oD50XCRRuIX9ge9Vf19GUqs9lKTdqATYiVX2Hf5DOu1eowcfJjZcEBspJ8 DHCuuvMWjnSFToGSgktdGALgUqbh+dEWRpgQz4+7kLrIoom9IbNuktzcurOjChsS8ag6 /90bl4MeT2vBr+daZ/MVfJRH2/dT72FQrofmLHHAm+if8eEra8XwXeqTZAz2Vp5WL8ay wT9NMVU2DWqiMBLeVr1gkbL9BD/iL9NeXRBrWNYVyMAc31sV6xspFsf57bhtUHDYjMMp 3BiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Y4A1az4XFbzgV/9nazLHYtlhU51LrjcR9vhXJi8GkDw=; fh=seSdiuF+G/GBkxwxxEYwKBJduqYnd6iVmfa09YHJi3I=; b=KjrRUX+KvEp2UvMFOY0CHQ3cQnY/bUkLTr8rglyBNvpoiAw4Tf5d2RzLdTa64U8xrh Yvqcf1BkPbIRuD1PLkzEXfiHS7LWfWajCcicBq3P6Vi/xrER7kGRQ7HOT75dcfqAJ4k+ YS+10j7m3XruCXdzi51kd6kDLBYM8fbzCm9A6DrHBjtNQ5/IpOF0eeoxI9UBSBdYOn8G LrYzrhZjHENz5WnMStFjipJrPspHAb0ra0p9OuxdR25MQvpX2KYD2Aw2pkv8grH0m6ID 9OtJtTjXx3P1VmHWYSxvFJ892ytKGsr12WdImVgNSrUsmmXsuWacA+AXyWZb5RxoYfCg ffKw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775591820; x=1776196620; darn=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=Y4A1az4XFbzgV/9nazLHYtlhU51LrjcR9vhXJi8GkDw=; b=pghNgSkPR18Rj4yOg/W5LjWVn0pye7j0W1zVD0lJMKGCMQ9fC/jSUZkhbgKahe96t6 K26ypCKkfqx3CVpHUGODV3Xa+Gdx6amsqniTKUhpUmR+Bv73hTgFduSbUH1ri97EwKd1 tqxyKC3E+o16ZIn0JWS5iNRR5ooBUPnu8l011cyvedVBABCyibchhp4fb1V7Fc0KoAYo SsLMD4j8WEo6UmGdm6KP7HLxiY36Q3aGps9jRtGbpOgd7cvmEQkBXgn4x1N6D+XJFw2Q CiomQR5//YgBTo2f8FH8c+cHER7B+GUax/W1jVQBOvESb2AuRosO7OJcyRq9BSN3/uz1 JoWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775591820; x=1776196620; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Y4A1az4XFbzgV/9nazLHYtlhU51LrjcR9vhXJi8GkDw=; b=bcYH+6MjoLukx/JEp7+DF8lPDT/6GuQC+2EysKwggBUzWb13CAP9/JcE0n9NUBZVuB VR4jNDvxEwKho4+l1tpjvLk00o0g464zKEZveq6Dh0bjsw5IfYClvOcXR0j3oTI0x3gE fuQJgVxEw2pOed401SefDgCWPvQ0Rsq5BntUHSph0lmpgZonnlTCzCv5ykgEu/l2lYBS AgE57KM+FyUDf9F4zX5jl1poyCZRXvkrlpCrjPNLVBrMCqTJkpfHWO+hKDFcXA1t4zh4 TGw9dn+0HYBgo3PkhtgU/qVSdOZy5+3oMw6Vf+pWwsyX+ML8eQL0fFsTtyLas/jfoCzo sxhg== X-Forwarded-Encrypted: i=1; AJvYcCUfdcDQLx51m3qKuJOj37+rSkrexyUzcDaA0FWq8P4nkMG5OD7c3AcAMIjTYQ6Pf9s8eGH1ugzn4TChirpC@postgresql.org X-Gm-Message-State: AOJu0YxCoZSEGjV13FoS9zDAZTIpxt9dgbx+4bGuIg1CUtir1WhG2NH7 WtDZkucjbhzXexb4IvNfpV5yLYRMznJzUAsGyXdbEQe781hXchILCMpe3g8GqZDHEt46uy3WhfJ teyYn9scx/xqsj6I/pa+SDCohShxOAL4= X-Gm-Gg: AeBDietvOT68TSPRzaxU46lIuHds1CHnLU3uQxT13Mk0/6r5pSKzScN40wjaLXlklws TobXcE+cyF33TxgzI8K7C9dB4w8Qs05/Ggn5NSHuCrr/Kn/Yiw5Oo/GzkOWbaGTrZjZiH0/PxJo geQriVPplGlNaWcJDv0mpgU2yPO+cjytI16WQV7FcVhrpItAdaXFfSKYm5BQOQkn6/VrvOqYhQo NpCCunapR2Xzy7BeKeq3pD7KOIwV2qTW/QFZTTl3jPVHFtcToHEsjiJrvQl0WyZPZjMGh6ydCM9 ofB7CBE= X-Received: by 2002:a05:690c:c36e:b0:79a:dae4:5848 with SMTP id 00721157ae682-7a4d3ec9a5bmr151382817b3.20.1775591820383; Tue, 07 Apr 2026 12:57:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Wed, 8 Apr 2026 02:56:48 +0700 X-Gm-Features: AQROBzDsN_TMGVR2VC1BNEbvkPqb3kNCkg7tJME5bmxgIuvymkwcASZFaaPmnNI Message-ID: Subject: Re: test_autovacuum/001_parallel_autovacuum is broken To: Sami Imseih Cc: Masahiko Sawada , pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000b89163064ee42f2c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b89163064ee42f2c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Wed, Apr 8, 2026 at 1:03=E2=80=AFAM Sami Imseih wr= ote: > > > I am afraid that this would be too rough a workaround for this problem.= . > > Perhaps, but I don't see it being unreasonable for injection points. > > I guess we can also think about expanding InjectionPointCondition to > handle other types of conditions, maybe OID??, to filter when running > the point. > Hm, sounds reasonable. I am thinking about how to make it less invasive. For example, we can write= an extension for this test (like many other tests do). The extension could all= ow us to specify the oid of the table we are interested in. See attached patch that demonstrates my idea. What do you think? > > > We also have an "autovacuum_parallel_workers" reloption that can additi= onally > > limit the number of parallel workers for the table. Default value of th= e > > reloption is "-1" which means "use the GUC parameter's value". I.e. whe= n we are > > setting the GUC parameter to N, then every table automatically allows N > > parallel a/v workers. If autovacuum_max_parallel_workers =3D 0 then no = one can > > launch parallel workers for autovacuum, even if reloption is > 0. Thus, > > autovacuum_max_parallel_workers is the main limiter during the number o= f > > parallel workers calculation. > > autovacuum_max_parallel_workers being the limiter is a desirable > attribute, otherwise > it will allow users to disable the GUC and set whatever they want on a > per table level, > only guarded by max_parallel_workers. That to me sounds pretty easy to > misconfigure > and manage. Yes, this is the main argument against this idea. However, in the thread th= at I mentioned I tried to give arguments why this might be extremely convenien= t for users with large databases. -- Best regards, Daniil Davydov --000000000000b89163064ee42f2c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improvements-for-parallel-autovacuum-testing.patch" Content-Disposition: attachment; filename="0001-Improvements-for-parallel-autovacuum-testing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnp1if7p0 RnJvbSA2OGExNjRmZjRjNDRkZGFjNjRmOGEyYzNhMWZlN2ZiM2YwZjE2ZGEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBXZWQsIDggQXByIDIwMjYgMDI6NTU6NDggKzA3MDAKU3ViamVjdDogW1BBVENI XSBJbXByb3ZlbWVudHMgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0gdGVzdGluZwoKLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDIgKy0KIHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlICAgICB8ICAgOCArCiBzcmMvdGVz dC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNvbi5idWlsZCAgfCAgMjEgKysrCiAuLi4vdC8w MDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbCAgICAgICAgICAgICAgfCAgMTkgKystCiAuLi4vdGVz dF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbCAgfCAgMTkgKysrCiAuLi4vbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmMgfCAxNTggKysrKysrKysrKysr KysrKysrCiAuLi4vdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jb250cm9sICAgfCAg IDMgKwogNyBmaWxlcyBjaGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0 X2F1dG92YWN1dW0tLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jb250cm9sCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDM5Mzk1YWVkMGQ1Li4zNjU1OGYx OWM3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtODcxLDcgKzg3MSw3 IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyAqcGFy YW1zLAogCSAqIHdvcmtlcnMuCiAJICovCiAJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3Mo KSAmJiBQYXJhbGxlbFZhY3V1bUlzQWN0aXZlKHZhY3JlbCkpCi0JCUlOSkVDVElPTl9QT0lOVCgi YXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0iLCBOVUxMKTsKKwkJSU5KRUNUSU9OX1BP SU5UKCJhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bSIsICZyZWwtPnJkX2lkKTsKICNl bmRpZgogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUKaW5k ZXggMTVlODMwMTBjMWMuLjFjYmU3MTI1YmFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQpAQCAtMiw2ICsyLDE0IEBACiAKIFBHRklMRURFU0MgPSAidGVzdF9h dXRvdmFjdXVtIC0gdGVzdCBjb2RlIGZvciBhdXRvdmFjdXVtIgogCitNT0RVTEVfYmlnID0gdGVz dF9hdXRvdmFjdXVtCitPQkpTID0gXAorCSQoV0lOMzJSRVMpIFwKKwl0ZXN0X2F1dG92YWN1dW0u bworCitFWFRFTlNJT04gPSB0ZXN0X2F1dG92YWN1dW0KK0RBVEEgPSB0ZXN0X2F1dG92YWN1dW0t LTEuMC5zcWwKKwogVEFQX1RFU1RTID0gMQogCiBFWFRSQV9JTlNUQUxMID0gc3JjL3Rlc3QvbW9k dWxlcy9pbmplY3Rpb25fcG9pbnRzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L21lc29uLmJ1aWxkCmluZGV4IDg2ZTM5MmJjMGRlLi5mOWYzMTA4NGI1NCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKQEAgLTEsNSArMSwyNiBAQAog IyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKIAordGVzdF9hdXRvdmFjdXVtX3NvdXJjZXMgPSBmaWxlcygKKyAgJ3Rlc3RfYXV0b3Zh Y3V1bS5jJywKKykKKworaWYgaG9zdF9zeXN0ZW0gPT0gJ3dpbmRvd3MnCisgIHRlc3RfYXV0b3Zh Y3V1bV9zb3VyY2VzICs9IHJjX2xpYl9nZW4ucHJvY2Vzcyh3aW4zMnZlcl9yYywgZXh0cmFfYXJn czogWworICAgICctLU5BTUUnLCAndGVzdF9hdXRvdmFjdXVtJywKKyAgICAnLS1GSUxFREVTQycs ICd0ZXN0X2F1dG92YWN1dW0gLSB0ZXN0IGNvZGUgZm9yIGF1dG92YWN1dW0nLF0pCitlbmRpZgor Cit0ZXN0X2F1dG92YWN1dW0gPSBzaGFyZWRfbW9kdWxlKCd0ZXN0X2F1dG92YWN1dW0nLAorICB0 ZXN0X2F1dG92YWN1dW1fc291cmNlcywKKyAga3dhcmdzOiBwZ190ZXN0X21vZF9hcmdzLAorKQor dGVzdF9pbnN0YWxsX2xpYnMgKz0gdGVzdF9hdXRvdmFjdXVtCisKK3Rlc3RfaW5zdGFsbF9kYXRh ICs9IGZpbGVzKAorICAndGVzdF9hdXRvdmFjdXVtLmNvbnRyb2wnLAorICAndGVzdF9hdXRvdmFj dXVtLS0xLjAuc3FsJywKKykKKwogdGVzdHMgKz0gewogICAnbmFtZSc6ICd0ZXN0X2F1dG92YWN1 dW0nLAogICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0u cGwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRv dmFjdXVtLnBsCmluZGV4IGM1YTJlNzgyNDZhLi5lNWNlMWExMmNlZiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5w bAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9h dXRvdmFjdXVtLnBsCkBAIC02Myw2ICs2Myw3IEBAIGxvZ19taW5fbWVzc2FnZXMgPSBkZWJ1ZzIK IGF1dG92YWN1dW1fbmFwdGltZSA9ICcxcycKIG1pbl9wYXJhbGxlbF9pbmRleF9zY2FuX3NpemUg PSAwCiBsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAtMQorc2hhcmVkX3ByZWxvYWRfbGli cmFyaWVzID0gJ3Rlc3RfYXV0b3ZhY3V1bScKIH0pOwogJG5vZGUtPnN0YXJ0OwogCkBAIC03OCw2 ICs3OSw3IEBAIGlmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9uX3BvaW50cycp KQogJG5vZGUtPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcXsKIAlDUkVBVEUgRVhURU5TSU9O IGluamVjdGlvbl9wb2ludHM7CisJQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2F1dG92YWN1dW07CiB9 KTsKIAogbXkgJGluZGV4ZXNfbnVtID0gMzsKQEAgLTE0MSwxNiArMTQzLDE5IEBAIG9rKCAkbm9k ZS0+bG9nX2NvbnRhaW5zKAogJGF2X2NvdW50ID0gcHJlcGFyZV9mb3JfbmV4dF90ZXN0KCRub2Rl LCAyKTsKICRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7CiAKK215ICR0YWJsZW9pZCA9 ICRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiU0VMRUNUICd0ZXN0X2F1dG92YWMn OjpyZWdjbGFzczo6b2lkIik7CisKICRub2RlLT5zYWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywgcXF7 Ci0JU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFs bGVsLXZhY3V1bScsICd3YWl0Jyk7Ci0KKwlTRUxFQ1QgaW5qX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1 bV9hdHRhY2goJHRhYmxlb2lkKTsKIAlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRv dmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAxLCBhdXRvdmFjdXVtX2VuYWJsZWQgPSB0cnVlKTsK IH0pOwogCi0jIFdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBpbml0ZWQKLSRub2Rl LT53YWl0X2Zvcl9ldmVudCgnYXV0b3ZhY3V1bSB3b3JrZXInLAotCSdhdXRvdmFjdXVtLXN0YXJ0 LXBhcmFsbGVsLXZhY3V1bScpOworIyAhIUhhcmRjb2RlZCBiYWRuZXNzISEKKyMgT2YgY291cmNl LCB3ZSBuZWVkIGFub3RoZXIgbWVjaGFuaXMgdG8gd2FpdCB1bnRpbCBwYXJhbGxlbCB2YWN1dW0g aXMgc3RhcnRlZAorc2xlZXAoNSk7CiAKICMgVXBkYXRlIHRoZSBzaGFyZWQgY29zdC1iYXNlZCBk ZWxheSBwYXJhbWV0ZXJzLgogJG5vZGUtPnNhZmVfcHNxbCgKQEAgLTE2OCw3ICsxNzMsNyBAQCAk bm9kZS0+c2FmZV9wc3FsKAogIyBiZWZvcmUgdmFjdXVtaW5nIGluZGV4ZXMgZHVlIHRvIHRoZSBp bmplY3Rpb24gcG9pbnQuCiAkbm9kZS0+c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxewotCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12 YWN1dW0nKTsKKwlTRUxFQ1QgaW5qX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1bV93YWtldXAoKTsKIH0p OwogCiAjIENoZWNrIHdoZXRoZXIgcGFyYWxsZWwgd29ya2VyIHN1Y2Nlc3NmdWxseSB1cGRhdGVk IGFsbCBwYXJhbWV0ZXJzIGR1cmluZwpAQCAtMTgyLDcgKzE4Nyw3IEBAIHdhaXRfZm9yX2F1dG92 YWN1dW1fY29tcGxldGUoJG5vZGUsICRhdl9jb3VudCk7CiAjIENsZWFudXAKICRub2RlLT5zYWZl X3BzcWwoCiAJJ3Bvc3RncmVzJywgcXF7Ci0JU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScpOworCVNFTEVDVCBpbmpfc3RhcnRf cGFyYWxsZWxfdmFjdXVtX2RldGFjaCgpOwogfSk7CiAKICRub2RlLT5zdG9wOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLS0xLjAu c3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLS0x LjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZDIyZTRkZGM4 YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rl c3RfYXV0b3ZhY3V1bS0tMS4wLnNxbApAQCAtMCwwICsxLDE5IEBACisvKiBzcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwgKi8KKworLS0gY29t cGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNxbCwgcmF0aGVyIHRoYW4gdmlhIENSRUFU RSBFWFRFTlNJT04KK1xlY2hvIFVzZSAiQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2F1dG92YWN1dW0i IHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCisvKgorICogSW5qZWN0aW9uIHBvaW50IHJlbGF0 ZWQgZnVuY3Rpb25zCisgKi8KK0NSRUFURSBGVU5DVElPTiBpbmpfc3RhcnRfcGFyYWxsZWxfdmFj dXVtX2F0dGFjaCh0YWJsZV9vaWQgb2lkKQorUkVUVVJOUyBWT0lEIFNUUklDVAorQVMgJ01PRFVM RV9QQVRITkFNRScgTEFOR1VBR0UgQzsKKworQ1JFQVRFIEZVTkNUSU9OIGlual9zdGFydF9wYXJh bGxlbF92YWN1dW1fd2FrZXVwKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFU SE5BTUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfc3RhcnRfcGFyYWxsZWxf dmFjdXVtX2RldGFjaCgpCitSRVRVUk5TIFZPSUQgU1RSSUNUCitBUyAnTU9EVUxFX1BBVEhOQU1F JyBMQU5HVUFHRSBDOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vdGVzdF9hdXRvdmFjdXVtLmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90 ZXN0X2F1dG92YWN1dW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NmExZDIxOGQ3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uYwpAQCAtMCwwICsxLDE1OCBAQAorLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogdGVzdF9hdXRvdmFjdXVtLmMKKyAqCQlIZWxwZXJzIHRvIHdyaXRlIHRl c3RzIGZvciBhdXRvdmFjdXVtCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI2LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNy Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jCisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJmbWdyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9h dXRvdmFjdXVtLmgiCisjaW5jbHVkZSAic3RvcmFnZS9zaG1lbS5oIgorI2luY2x1ZGUgInN0b3Jh Z2UvaXBjLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sd2xvY2suaCIKKyNpbmNsdWRlICJzdG9yYWdl L2NvbmRpdGlvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCisjaW5jbHVkZSAidXRpbHMvd2FpdF9ldmVu dF90eXBlcy5oIgorCitQR19NT0RVTEVfTUFHSUM7CisKK3R5cGVkZWYgc3RydWN0IElualBvaW50 U3RhdGUKK3sKKwlDb25kaXRpb25WYXJpYWJsZQljdjsKKwlPaWQJCQkJCXRhcmdldF9vaWQ7CisJ Ym9vbAkJCQllbmFibGVkX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1bTsKK30JCQlJbmpQb2ludFN0YXRl OworCitzdGF0aWMgSW5qUG9pbnRTdGF0ZSAqIGlual9wb2ludF9zdGF0ZTsKKworLyogU2hhcmVk IG1lbW9yeSBpbml0IGNhbGxiYWNrcyAqLworc3RhdGljIHNobWVtX3JlcXVlc3RfaG9va190eXBl IHByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gTlVMTDsKK3N0YXRpYyBzaG1lbV9zdGFydHVwX2hv b2tfdHlwZSBwcmV2X3NobWVtX3N0YXJ0dXBfaG9vayA9IE5VTEw7CisKK3N0YXRpYyB2b2lkCit0 ZXN0X2F1dG92YWN1dW1fc2htZW1fcmVxdWVzdCh2b2lkKQoreworCWlmIChwcmV2X3NobWVtX3Jl cXVlc3RfaG9vaykKKwkJcHJldl9zaG1lbV9yZXF1ZXN0X2hvb2soKTsKKworCVJlcXVlc3RBZGRp blNobWVtU3BhY2Uoc2l6ZW9mKElualBvaW50U3RhdGUpKTsKK30KKworc3RhdGljIHZvaWQKK3Rl c3RfYXV0b3ZhY3V1bV9zaG1lbV9zdGFydHVwKHZvaWQpCit7CisJYm9vbAkJZm91bmQ7CisKKwlp ZiAocHJldl9zaG1lbV9zdGFydHVwX2hvb2spCisJCXByZXZfc2htZW1fc3RhcnR1cF9ob29rKCk7 CisKKwkvKiBDcmVhdGUgb3IgYXR0YWNoIHRvIHRoZSBzaGFyZWQgbWVtb3J5IHN0YXRlICovCisJ TFdMb2NrQWNxdWlyZShBZGRpblNobWVtSW5pdExvY2ssIExXX0VYQ0xVU0lWRSk7CisKKwlpbmpf cG9pbnRfc3RhdGUgPSBTaG1lbUluaXRTdHJ1Y3QoImluamVjdGlvbl9wb2ludHMgZm9yIGF1dG92 YWN1dW0gdGVzdGluZyIsCisJCQkJCQkJCQkgIHNpemVvZihJbmpQb2ludFN0YXRlKSwKKwkJCQkJ CQkJCSAgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQkvKiBGaXJzdCB0aW1lIHRocm91 Z2gsIGluaXRpYWxpemUgKi8KKwkJaW5qX3BvaW50X3N0YXRlLT5lbmFibGVkX3N0YXJ0X3BhcmFs bGVsX3ZhY3V1bSA9IGZhbHNlOworCQlpbmpfcG9pbnRfc3RhdGUtPnRhcmdldF9vaWQgPSBJbnZh bGlkT2lkOworCisJCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmaW5qX3BvaW50X3N0YXRlLT5jdik7 CisKKwkJSW5qZWN0aW9uUG9pbnRBdHRhY2goImF1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFj dXVtIiwKKwkJCQkJCQkgInRlc3RfYXV0b3ZhY3V1bSIsCisJCQkJCQkJICJpbmpfc3RhcnRfcGFy YWxsZWxfdmFjdXVtIiwKKwkJCQkJCQkgTlVMTCwKKwkJCQkJCQkgMCk7CisJfQorCisJTFdMb2Nr UmVsZWFzZShBZGRpblNobWVtSW5pdExvY2spOworfQorCit2b2lkCitfUEdfaW5pdCh2b2lkKQor eworCWlmICghcHJvY2Vzc19zaGFyZWRfcHJlbG9hZF9saWJyYXJpZXNfaW5fcHJvZ3Jlc3MpCisJ CXJldHVybjsKKworCXByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gc2htZW1fcmVxdWVzdF9ob29r OworCXNobWVtX3JlcXVlc3RfaG9vayA9IHRlc3RfYXV0b3ZhY3V1bV9zaG1lbV9yZXF1ZXN0Owor CXByZXZfc2htZW1fc3RhcnR1cF9ob29rID0gc2htZW1fc3RhcnR1cF9ob29rOworCXNobWVtX3N0 YXJ0dXBfaG9vayA9IHRlc3RfYXV0b3ZhY3V1bV9zaG1lbV9zdGFydHVwOworfQorCitleHRlcm4g UEdETExFWFBPUlQgdm9pZCBpbmpfc3RhcnRfcGFyYWxsZWxfdmFjdXVtKGNvbnN0IGNoYXIgKm5h bWUsCisJCQkJCQkJCQkJCQkgIGNvbnN0IHZvaWQgKnByaXZhdGVfZGF0YSwKKwkJCQkJCQkJCQkJ CSAgdm9pZCAqYXJnKTsKKworLyoKKyAqIFNldCBudW1iZXIgb2YgY3VycmVudGx5IGF2YWlsYWJs ZSBwYXJhbGxlbCBhL3Ygd29ya2Vycy4gVGhpcyB2YWx1ZSBtYXkKKyAqIGNoYW5nZSBhZnRlciBy ZXNlcnZpbmcgb3IgcmVsZWFzaW5nIHN1Y2ggd29ya2Vycy4KKyAqCisgKiBGdW5jdGlvbiBjYWxs ZWQgZnJvbSBwYXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlci4KKyAqLwordm9pZAoraW5qX3N0YXJ0 X3BhcmFsbGVsX3ZhY3V1bShjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICpwcml2YXRlX2Rh dGEsIHZvaWQgKmFyZykKK3sKKwlpZiAoIWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9zdGFydF9w YXJhbGxlbF92YWN1dW0pCisJCXJldHVybjsKKworCUFzc2VydChhcmcgIT0gTlVMTCk7CisKKwlp ZiAoaW5qX3BvaW50X3N0YXRlLT50YXJnZXRfb2lkICE9ICooT2lkICopIGFyZykKKwkJcmV0dXJu OworCisJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVlcCgmaW5qX3BvaW50X3N0YXRlLT5j dik7CisJQ29uZGl0aW9uVmFyaWFibGVTbGVlcCgmaW5qX3BvaW50X3N0YXRlLT5jdiwKKwkJCQkJ CSAgIFdBSVRfRVZFTlRfQVJDSElWRV9DT01NQU5EKTsgLyogYW5vdGhlciB3YWl0IGV2ZW50IG5l ZWRlZCAqLworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGlual9zdGFydF9wYXJhbGxlbF92YWN1 dW1fYXR0YWNoKTsKK0RhdHVtCitpbmpfc3RhcnRfcGFyYWxsZWxfdmFjdXVtX2F0dGFjaChQR19G VU5DVElPTl9BUkdTKQoreworI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJaW5qX3BvaW50 X3N0YXRlLT5lbmFibGVkX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1bSA9IHRydWU7CisJaW5qX3BvaW50 X3N0YXRlLT50YXJnZXRfb2lkID0gUEdfQVJHSVNOVUxMKDApID8gSW52YWxpZE9pZCA6IFBHX0dF VEFSR19PSUQoMCk7CisjZWxzZQorCWVsb2coRVJST1IsICJpbmplY3Rpb24gcG9pbnRzIG5vdCBz dXBwb3J0ZWQiKTsKKyNlbmRpZgorCVBHX1JFVFVSTl9WT0lEKCk7Cit9CisKK1BHX0ZVTkNUSU9O X0lORk9fVjEoaW5qX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1bV93YWtldXApOworRGF0dW0KK2lual9z dGFydF9wYXJhbGxlbF92YWN1dW1fd2FrZXVwKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjaWZkZWYg VVNFX0lOSkVDVElPTl9QT0lOVFMKKwlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmaW5qX3Bv aW50X3N0YXRlLT5jdik7CisjZWxzZQorCWVsb2coRVJST1IsICJpbmplY3Rpb24gcG9pbnRzIG5v dCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCVBHX1JFVFVSTl9WT0lEKCk7Cit9CisKK1BHX0ZVTkNU SU9OX0lORk9fVjEoaW5qX3N0YXJ0X3BhcmFsbGVsX3ZhY3V1bV9kZXRhY2gpOworRGF0dW0KK2lu al9zdGFydF9wYXJhbGxlbF92YWN1dW1fZGV0YWNoKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjaWZk ZWYgVVNFX0lOSkVDVElPTl9QT0lOVFMKKwlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfc3RhcnRf cGFyYWxsZWxfdmFjdXVtID0gZmFsc2U7CisJaW5qX3BvaW50X3N0YXRlLT50YXJnZXRfb2lkID0g SW52YWxpZE9pZDsKKyNlbHNlCisJZWxvZyhFUlJPUiwgImluamVjdGlvbiBwb2ludHMgbm90IHN1 cHBvcnRlZCIpOworI2VuZGlmCisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jb250cm9sIGIv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmNvbnRyb2wK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyYmM2ZTUzZTI5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRv dmFjdXVtLmNvbnRyb2wKQEAgLTAsMCArMSwzIEBACitjb21tZW50ID0gJ1Rlc3QgY29kZSBmb3Ig YXV0b3ZhY3V1bScKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCittb2R1bGVfcGF0aG5hbWUgPSAn JGxpYmRpci90ZXN0X2F1dG92YWN1dW0nClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAK Mi40My4wCgo= --000000000000b89163064ee42f2c--