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 1pSrJz-0000YP-Aq for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Feb 2023 03:22:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pSrJw-0004yW-19 for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Feb 2023 03:22:00 +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 1pSrJv-0004yN-Ie for pgsql-hackers@lists.postgresql.org; Fri, 17 Feb 2023 03:21:59 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pSrJo-0000Ix-J4 for pgsql-hackers@postgresql.org; Fri, 17 Feb 2023 03:21:59 +0000 Received: by mail-ed1-x532.google.com with SMTP id ee31so895487edb.3 for ; Thu, 16 Feb 2023 19:21:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=7D4z6XaUmh/6fSTyhoVwLN2oxlO2dOmXK69deF/aQZc=; b=R/facflL3EzLqcAGI79ZEAvfPRY7hMIcQNUnsTMWX2huYF0xukfk8PF2rYYMHI1Vml WRmrlfZynNLduVxSu1LV6Os9wzgiTH8nHFv2/2Vpi2a5lJPg5qPuCpP7G6G4s4hZPvQH oZ6org0Ozbm9b4jLOLiFKNDSNl0cVm9rUWcfOtGLloIwuhSrPuLzTX58nTeQ1fMh/7a5 9Idt/KRCBDdvX5PApvheGL+8zD71CU4g8LBQYWwndjYXiVgEO6cjQySIDDLZLDYZhJ/s rWsZ3YeMQm+hz28JYU/tnnQWlf6uLkOA6pQHQF3pRpTyaYWCiVzEgIP+xmAW4kT3AkiA otVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=7D4z6XaUmh/6fSTyhoVwLN2oxlO2dOmXK69deF/aQZc=; b=iHqsl/Qy+t9cRDNYLeqC1SCiRWvudA8Y3ekMC7Q8LrK00qswdbzM5x3WuHeJwqs9ny fWoe/zHmO9GCNPXqFqquJm6ik5rypN5gUrUfOP1dEaVjeUgjeLonfhzXOQZQdd5r/jmo /HnrcCAEssG3c4vns4OLJuBB9HZCjZlVETXzX7b2BSlVysMQ3d+N+tvyogkK8YghJTtA 6UY6Oe54ocPRAe57ZMtzRFEHim4EIh+tDMnKJWFeAfLZ9/3sHkd7z5rn9ohFhkNcBtzV 8lFMtVPlfLPJcEthSNKqhIU/zdtslt10RIbotFbwZH4uZfOuxQ4LhpnG8qh9Vr0Fad54 wm/A== X-Gm-Message-State: AO0yUKU6qk3MUACY2srZ2KRW7AXBMx+nruY85efz06BoWwYkpf2p8MFJ YLagPWdoxVZYHRjSBeKDAnH93wqzwszen7hCHM4= X-Google-Smtp-Source: AK7set9lme0cbDY5KC08FrSOPEAXU6WdcXC+LN95O9Fpor1D3/nC9pRfI/Ba9tjzAQuleaI31xQwHskx4YqLx3PN/qU= X-Received: by 2002:a17:906:eb18:b0:8b1:7aec:c8e6 with SMTP id mb24-20020a170906eb1800b008b17aecc8e6mr1058891ejb.2.1676604111506; Thu, 16 Feb 2023 19:21:51 -0800 (PST) MIME-Version: 1.0 References: <20221123014224.xisi44byq3cf5psi@awork3.anarazel.de> <3748783.1669241103@sss.pgh.pa.us> <20d45197-80be-4984-33a9-a8d13708992a@inbox.ru> <2a64f915-213b-4bd0-1cdf-bd987694021e@inbox.ru> In-Reply-To: From: Thomas Munro Date: Fri, 17 Feb 2023 16:21:14 +1300 Message-ID: Subject: Re: odd buildfarm failure - "pg_ctl: control file appears to be corrupt" To: "Anton A. Melnikov" Cc: Tom Lane , Andres Freund , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000007f047605f4dcd006" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007f047605f4dcd006 Content-Type: text/plain; charset="UTF-8" On Tue, Feb 14, 2023 at 4:38 PM Anton A. Melnikov wrote: > First of all it seemed to me that is not a problem at all since msdn > guarantees sector-by-sector atomicity. > "Physical Sector: The unit for which read and write operations to the device > are completed in a single operation. This is the unit of atomic write..." > https://learn.microsoft.com/en-us/windows/win32/fileio/file-buffering > https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile > (Of course, only if the 512 bytes lays from the beginning of the file with a zero > offset, but this is our case. The current size of ControlFileData is > 296 bytes at offset = 0.) There are two kinds of atomicity that we rely on for the control file today: * atomicity on power loss (= device property, in case of overwrite filesystems) * atomicity of concurrent reads and writes (= VFS or kernel buffer pool interlocking policy) I assume that documentation is talking about the first thing (BTW, I suspect that documentation is also now wrong in one special case: NTFS filesystems mounted on DAX devices don't have sectors or sector-based atomicity unless you turn on BTT and slow them down[1]; that might eventually be something for PostgreSQL to think about, and it applies to other OSes too). With this patch we would stop relying on the second thing. Supposedly POSIX requires read/write atomicity, and many file systems offer it in a strong form (internal range locking) or maybe a weak accidental form (page-level locking). Since some extremely popular implementations just don't care, and Windows isn't even a POSIX, we just have to do it ourselves. BTW there are at least two other places where PostgreSQL already knows that concurrent reads and writes are possibly non-atomic (and we also don't even try to get the alignment right, making the question moot): pg_basebackup, which enables full_page_writes implicitly if you didn't have the GUC on already, and pg_rewind, which refuses to run if you haven't enabled full_page_writes explicitly (as recently discussed on another thread recently; that's an annoying difference, and also an annoying behaviour if you know your storage doesn't really need it!) > I tried to verify this fact experimentally and was very surprised. > Unfortunately it crashed in an hour during torture test: > 2023-02-13 15:10:52.675 MSK [5704] LOG: starting PostgreSQL 16devel, compiled by Visual C++ build 1929, 64-bit > 2023-02-13 15:10:52.768 MSK [5704] LOG: database system is ready to accept connections > @@@@@@ sizeof(ControlFileData) = 296 > ......... > 2023-02-13 16:10:41.997 MSK [9380] ERROR: calculated CRC checksum does not match value stored in file Thanks. I'd seen reports of this in discussions on the 'net, but those had no authoritative references or supporting test results. The fact that fsync made it take longer (in your following email) makes sense and matches Linux. It inserts a massive pause in the middle of the experiment loop, affecting the probabilities. Therefore, we need a solution for Windows too. I tried to write the equivalent code, in the attached. I learned a few things: Windows locks are mandatory (that is, if you lock a file, reads/writes can fail, unlike Unix). Combined with async release, that means we probably also need to lock the file in xlog.c, when reading it in xlog.c:ReadControlFile() (see comments). Before I added that, on a CI run, I found that the read in there would sometimes fail, and adding the locking fixed that. I am a bit confused, though, because I expected that to be necessary only if someone managed to crash while holding the write lock, which the CI tests shouldn't do. Do you have any ideas? While contemplating what else a mandatory file lock might break, I remembered that basebackup.c also reads the control file. Hrmph. Not addressed yet; I guess it might need to acquire/release around sendFile(sink, XLOG_CONTROL_FILE, ...)? > > I would > > only want to consider this if we also stop choosing "open_datasync" as > > a default on at least Windows. > > I didn't quite understand this point. Could you clarify it for me, please? If the performance > of UpdateMinRecoveryPoint() wasn't a problem we could just use fsync in all platforms. The level of durability would be weakened on Windows. On all systems except Linux and FreeBSD, we default to wal_sync_method=open_datasync, so then we would start using FILE_FLAG_WRITE_THROUGH for the control file too. We know from reading and experimentation that FILE_FLAG_WRITE_THROUGH doesn't flush the drive cache on consumer Windows hardware, but its fdatasync-like thing does[2]. I have not thought too hard about the consequences of using different durability levels for different categories of file, but messing with write ordering can't be good for crash recovery, so I'd rather increase WAL durability than decrease control file durability. If a Windows user complains that it makes their fancy non-volatile cache slow down, they can always adjust the settings in PostgreSQL, their OS, or their drivers etc. I think we should just make fdatasync the default on all systems. Here's a patch like that. [1] https://learn.microsoft.com/en-us/windows-server/storage/storage-spaces/persistent-memory-direct-access [2] https://www.postgresql.org/message-id/flat/CA%2BhUKG%2Ba-7r4GpADsasCnuDBiqC1c31DAQQco2FayVtB9V3sQw%40mail.gmail.com#460bfa5a6b571cc98c575d23322e0b25 --0000000000007f047605f4dcd006 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Lock-pg_control-while-reading-or-writing.patch" Content-Disposition: attachment; filename="0001-Lock-pg_control-while-reading-or-writing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le7yny7v0 RnJvbSA4MTY3NjBlNTJhMTIzM2IyOTY3NDg2OTIwNWNlOTI4M2FhYjI4YTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMjA6MDE6NDkgKzEzMDAKU3ViamVjdDogW1BBVENIIDEv M10gTG9jayBwZ19jb250cm9sIHdoaWxlIHJlYWRpbmcgb3Igd3JpdGluZy4KCkZyb250LWVuZCBw cm9ncmFtcyB0aGF0IHJlYWQgcGdfY29udHJvbCBhbmQgdXNlci1mYWNpbmcgZnVuY3Rpb25zIHJ1 bgppbiB0aGUgYmFja2VuZCByZWFkIHBnX2NvbnRyb2wgd2l0aG91dCBhY3F1aXJpbmcgQ29udHJv bEZpbGVMb2NrLiAgSWYKeW91J3JlIHVubHVja3kgZW5vdWdoIHRvIHJlYWQoKSB3aGlsZSB0aGUg YmFja2VuZCBpcyBpbiB3cml0ZSgpLCBvbiBhdApsZWFzdCBleHQ0IG9yIE5URlMsIHlvdSBtaWdo dCBzZWUgcGFydGlhbCBkYXRhLiAgVXNlIGEgUE9TSVggYWR2aXNvcnkKZmlsZSBsb2NrIG9yIGEg V2luZG93cyBtYW5kYXRvcnkgZmlsZSBsb2NrLCB0byBhdm9pZCB0aGlzIHByb2JsZW0uCgpTaW5j ZSB0aGUgc2VtYW50aWNzIG9mIFBPU0lYIGFuZCBXaW5kb3dzIGZpbGUgbG9ja3MgYXJlIGRpZmZl cmVudAphbmQgZXJyb3ItcHJvbmUsIGRvbid0IHRyeSB0byBwcm92aWRlIGEgZ2VuZXJhbCBwdXJw b3NlIHJldXNhYmxlCmZ1bmN0aW9uIGZvciB0aG9zZSBvcGVyYXRpb25zOyBrZWVwIHRoZW0gY2xv c2UgdG8gdGhlIGNvbnRyb2wgZmlsZSBjb2RlLgoKUmV2aWV3ZWQtYnk6IEFudG9uIEEuIE1lbG5p a292IDxhYW1lbG5pa292QGluYm94LnJ1PgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t LzIwMjIxMTIzMDE0MjI0Lnhpc2k0NGJ5cTNjZjVwc2klNDBhd29yazMuYW5hcmF6ZWwuZGUKLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgICB8ICAyMSArKysrKwogc3Jj L2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jICAgICAgICAgfCAxMjYgKysrKysrKysrKysrKysr KysrKysrKysrKwogc3JjL2luY2x1ZGUvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmggfCAgIDQg KwogMyBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYwppbmRleCBmOWYwZjZkYjhkLi45YjljMzI5NGU4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCkBAIC0zOTgwLDYgKzM5ODAsMTkgQEAgUmVhZENvbnRyb2xGaWxlKHZvaWQpCiAJ CQkJIGVycm1zZygiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVtIiwKIAkJCQkJCVhMT0df Q09OVFJPTF9GSUxFKSkpOwogCisJLyoKKwkgKiBTaW5jZSBmaWxlIGxvY2tzIGFyZSByZWxlYXNl ZCBhc3luY2hyb25vdXNseSBhZnRlciBhIHByb2dyYW0gY3Jhc2hlcyBvbgorCSAqIFdpbmRvd3Ms IHRoZXJlIGlzIGEgc21hbGwgY2hhbmNlIHRoYXQgdGhlIHdyaXRlIGxvY2sgb2YgYSBwcmV2aW91 c2x5CisJICogcnVubmluZyBwb3N0bWFzdGVyIGhhc24ndCBiZWVuIHJlbGVhc2VkIHlldC4gIFdl IG5lZWQgdG8gd2FpdCBmb3IgdGhhdAorCSAqIGhlcmU7IGlmIHdlIGRpZG4ndCwgb3VyIHJlYWQg bWlnaHQgZmFpbCwgYmVjYXVzZSBXaW5kb3dzIGZpbGUgbG9ja3MgYXJlCisJICogbWFuZGF0b3J5 ICh0aGF0IGlzLCBub3QgYWR2aXNvcnkpLgorCSAqLworCWlmIChsb2NrX2NvbnRyb2xmaWxlKGZk LCBmYWxzZSkgPCAwKQorCQllcmVwb3J0KFBBTklDLAorCQkJCShlcnJjb2RlX2Zvcl9maWxlX2Fj Y2VzcygpLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBsb2NrIGZpbGUgXCIlc1wiOiAlbSIsCisJ CQkJCQlYTE9HX0NPTlRST0xfRklMRSkpKTsKKwogCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChX QUlUX0VWRU5UX0NPTlRST0xfRklMRV9SRUFEKTsKIAlyID0gcmVhZChmZCwgQ29udHJvbEZpbGUs IHNpemVvZihDb250cm9sRmlsZURhdGEpKTsKIAlpZiAociAhPSBzaXplb2YoQ29udHJvbEZpbGVE YXRhKSkKQEAgLTM5OTcsNiArNDAxMCwxNCBAQCBSZWFkQ29udHJvbEZpbGUodm9pZCkKIAl9CiAJ cGdzdGF0X3JlcG9ydF93YWl0X2VuZCgpOwogCisjaWZkZWYgV0lOMzIKKwlpZiAodW5sb2NrX2Nv bnRyb2xmaWxlKGZkKSA8IDApCisJCWVyZXBvcnQoUEFOSUMsCisJCQkJKGVycmNvZGVfZm9yX2Zp bGVfYWNjZXNzKCksCisJCQkJIGVycm1zZygiY291bGQgbm90IHVubG9jayBmaWxlIFwiJXNcIjog JW0iLAorCQkJCQkJWExPR19DT05UUk9MX0ZJTEUpKSk7CisjZW5kaWYKKwogCWNsb3NlKGZkKTsK IAogCS8qCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMgYi9zcmMv Y29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKaW5kZXggOTcyMzU4NzQ2Ni4uNDViNDNhZTU0NiAx MDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCisrKyBiL3NyYy9jb21t b24vY29udHJvbGRhdGFfdXRpbHMuYwpAQCAtMzksNiArMzksOTEgQEAKICNpbmNsdWRlICJzdG9y YWdlL2ZkLmgiCiAjZW5kaWYKIAorLyoKKyAqIExvY2sgdGhlIGNvbnRyb2wgZmlsZSB1bnRpbCBj bG9zZWQuICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgb24gZmlsZSB3aGVyZQorICogb25seSBv bmUgZGVzY3JpcHRvciBpcyBvcGVuIGluIGEgZ2l2ZW4gcHJvY2VzcyAoZHVlIHRvIHdlaXJkIHNl bWFudGljcyBvZgorICogUE9TSVggbG9ja3MpLiAgT24gV2luZG93cywgc2VlIHVubG9ja19jb250 cm9sZmlsZSgpLCBidXQgb3RoZXJ3aXNlIHRoZSBsb2NrCisgKiBpcyBoZWxkIHVudGlsIHRoZSBm aWxlIGlzIGNsb3NlZC4KKyAqLworaW50Citsb2NrX2NvbnRyb2xmaWxlKGludCBmZCwgYm9vbCBl eGNsdXNpdmUpCit7CisjaWZkZWYgV0lOMzIKKwlPVkVSTEFQUEVECW92ZXJsYXBwZWQgPSB7MH07 CisJSEFORExFCQloYW5kbGU7CisKKwloYW5kbGUgPSAoSEFORExFKSBfZ2V0X29zZmhhbmRsZShm ZCk7CisJaWYgKGhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKwl7CisJCWVycm5vID0g RUJBREY7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBMb2NrIGZpcnN0IGJ5dGUuICovCisJaWYg KCFMb2NrRmlsZUV4KGhhbmRsZSwKKwkJCQkJZXhjbHVzaXZlID8gTE9DS0ZJTEVfRVhDTFVTSVZF X0xPQ0sgOiAwLAorCQkJCQkwLAorCQkJCQkxLAorCQkJCQkwLAorCQkJCQkmb3ZlcmxhcHBlZCkp CisJeworCQlfZG9zbWFwZXJyKEdldExhc3RFcnJvcigpKTsKKwkJcmV0dXJuIC0xOworCX0KKwor CXJldHVybiAwOworI2Vsc2UKKwlzdHJ1Y3QgZmxvY2sgbG9jazsKKwlpbnQJCQlyYzsKKworCW1l bXNldCgmbG9jaywgMCwgc2l6ZW9mKGxvY2spKTsKKwlsb2NrLmxfdHlwZSA9IGV4Y2x1c2l2ZSA/ IEZfV1JMQ0sgOiBGX1JETENLOworCWxvY2subF9zdGFydCA9IDA7CisJbG9jay5sX3doZW5jZSA9 IFNFRUtfU0VUOworCWxvY2subF9sZW4gPSAwOworCWxvY2subF9waWQgPSAtMTsKKworCWRvCisJ eworCQlyYyA9IGZjbnRsKGZkLCBGX1NFVExLVywgJmxvY2spOworCX0KKwl3aGlsZSAocmMgPCAw ICYmIGVycm5vID09IEVJTlRSKTsKKworCXJldHVybiByYzsKKyNlbmRpZgorfQorCisjaWZkZWYg V0lOMzIKKy8qCisgKiBSZWxlYXNlIGxvY2sgYWNxdWlyZSB3aXRoIGxvY2tfY29udHJvbGZpbGUo KS4gIE9uIFBPU0lYIHN5c3RlbXMsIHdlIGRvbid0CisgKiBib3RoZXIgbWFraW5nIGFuIGV4dHJh IHN5c3RlbSBjYWxsIHRvIHJlbGVhc2UgdGhlIGxvY2ssIHNpbmNlIGl0J2xsIGJlCisgKiByZWxl YXNlZCBvbiBjbG9zZSBhbnl3YXkuICBPbiBXaW5kb3dzLCBleHBsaWNpdCByZWxlYXNlIGlzIHJl Y29tbWVuZGVkIGJ5CisgKiB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYWtlIHN1cmUgaXQgaXMgZG9u ZSBzeW5jaHJvbm91c2x5LgorICovCitpbnQKK3VubG9ja19jb250cm9sZmlsZShpbnQgZmQpCit7 CisJT1ZFUkxBUFBFRAlvdmVybGFwcGVkID0gezB9OworCUhBTkRMRQkJaGFuZGxlOworCisJaGFu ZGxlID0gKEhBTkRMRSkgX2dldF9vc2ZoYW5kbGUoZmQpOworCWlmIChoYW5kbGUgPT0gSU5WQUxJ RF9IQU5ETEVfVkFMVUUpCisJeworCQllcnJubyA9IEVCQURGOworCQlyZXR1cm4gLTE7CisJfQor CisJLyogVW5sb2NrIGZpcnN0IGJ5dGUuICovCisJaWYgKCFVbmxvY2tGaWxlRXgoaGFuZGxlLCAw LCAxLCAwLCAmb3ZlcmxhcHBlZCkpCisJeworCQlfZG9zbWFwZXJyKEdldExhc3RFcnJvcigpKTsK KwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorI2VuZGlmCisKIC8qCiAgKiBnZXRf Y29udHJvbGZpbGUoKQogICoKQEAgLTc0LDYgKzE1OSwyMCBAQCBnZXRfY29udHJvbGZpbGUoY29u c3QgY2hhciAqRGF0YURpciwgYm9vbCAqY3JjX29rX3ApCiAJCQkJIENvbnRyb2xGaWxlUGF0aCk7 CiAjZW5kaWYKIAorCS8qIE1ha2Ugc3VyZSB3ZSBjYW4gcmVhZCB0aGUgZmlsZSBhdG9taWNhbGx5 LiAqLworCWlmIChsb2NrX2NvbnRyb2xmaWxlKGZkLCBmYWxzZSkgPCAwKQorCXsKKyNpZm5kZWYg RlJPTlRFTkQKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3Mo KSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgbG9jayBmaWxlIFwiJXNcIiBmb3IgcmVhZGluZzog JW0iLAorCQkJCQkJQ29udHJvbEZpbGVQYXRoKSkpOworI2Vsc2UKKwkJcGdfZmF0YWwoImNvdWxk IG5vdCBsb2NrIGZpbGUgXCIlc1wiIGZvciByZWFkaW5nOiAlbSIsCisJCQkJIENvbnRyb2xGaWxl UGF0aCk7CisjZW5kaWYKKwl9CisKIAlyID0gcmVhZChmZCwgQ29udHJvbEZpbGUsIHNpemVvZihD b250cm9sRmlsZURhdGEpKTsKIAlpZiAociAhPSBzaXplb2YoQ29udHJvbEZpbGVEYXRhKSkKIAl7 CkBAIC05Nyw2ICsxOTYsMTAgQEAgZ2V0X2NvbnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIs IGJvb2wgKmNyY19va19wKQogI2VuZGlmCiAJfQogCisjaWZkZWYgV0lOMzIKKwl1bmxvY2tfY29u dHJvbGZpbGUoZmQpOworI2VuZGlmCisKICNpZm5kZWYgRlJPTlRFTkQKIAlpZiAoQ2xvc2VUcmFu c2llbnRGaWxlKGZkKSAhPSAwKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTg2LDYgKzI4OSwyNSBA QCB1cGRhdGVfY29udHJvbGZpbGUoY29uc3QgY2hhciAqRGF0YURpciwKIAkJcGdfZmF0YWwoImNv dWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiOiAlbSIsIENvbnRyb2xGaWxlUGF0aCk7CiAjZW5kaWYK IAorCS8qCisJICogTWFrZSBzdXJlIHRoYXQgYW55IGNvbmN1cnJlbnQgcmVhZGVyIChpbmNsdWRp bmcgZnJvbnRlbmQgcHJvZ3JhbXMpIGNhbgorCSAqIHJlYWQgdGhlIGZpbGUgYXRvbWljYWxseS4g IE5vdGUgdGhhdCB0aGlzIHJlZmVycyB0byBhdG9taWNpdHkgb2YKKwkgKiBjb25jdXJyZW50IHJl YWRzIGFuZCB3cml0ZXMuICBGb3Igb3VyIGFzc3VtcHRpb24gb2YgYXRvbWljaXR5IHVuZGVyCisJ ICogcG93ZXIgZmFpbHVyZSwgc2VlIFBHX0NPTlRST0xfTUFYX1NBRkVfU0laRS4KKwkgKi8KKwlp ZiAobG9ja19jb250cm9sZmlsZShmZCwgdHJ1ZSkgPCAwKQorCXsKKyNpZm5kZWYgRlJPTlRFTkQK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkg ZXJybXNnKCJjb3VsZCBub3QgbG9jayBmaWxlIFwiJXNcIiBmb3Igd3JpdGluZzogJW0iLAorCQkJ CQkJQ29udHJvbEZpbGVQYXRoKSkpOworI2Vsc2UKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBsb2Nr IGZpbGUgXCIlc1wiIGZvciB3cml0aW5nOiAlbSIsCisJCQkJIENvbnRyb2xGaWxlUGF0aCk7Cisj ZW5kaWYKKwl9CisKIAllcnJubyA9IDA7CiAjaWZuZGVmIEZST05URU5ECiAJcGdzdGF0X3JlcG9y dF93YWl0X3N0YXJ0KFdBSVRfRVZFTlRfQ09OVFJPTF9GSUxFX1dSSVRFX1VQREFURSk7CkBAIC0y MjUsNiArMzQ3LDEwIEBAIHVwZGF0ZV9jb250cm9sZmlsZShjb25zdCBjaGFyICpEYXRhRGlyLAog I2VuZGlmCiAJfQogCisjaWZkZWYgV0lOMzIKKwl1bmxvY2tfY29udHJvbGZpbGUoZmQpOworI2Vu ZGlmCisKIAlpZiAoY2xvc2UoZmQpICE9IDApCiAJewogI2lmbmRlZiBGUk9OVEVORApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmggYi9zcmMvaW5jbHVk ZS9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuaAppbmRleCA0OWU3YzUyZDMxLi4wNjgyNWNhZDg1 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuaAorKysg Yi9zcmMvaW5jbHVkZS9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuaApAQCAtMTUsNSArMTUsOSBA QAogZXh0ZXJuIENvbnRyb2xGaWxlRGF0YSAqZ2V0X2NvbnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRh dGFEaXIsIGJvb2wgKmNyY19va19wKTsKIGV4dGVybiB2b2lkIHVwZGF0ZV9jb250cm9sZmlsZShj b25zdCBjaGFyICpEYXRhRGlyLAogCQkJCQkJCSAgIENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZp bGUsIGJvb2wgZG9fc3luYyk7CitleHRlcm4gaW50IGxvY2tfY29udHJvbGZpbGUoaW50IGZkLCBi b29sIGV4Y2x1c2l2ZSk7CisjaWZkZWYgV0lOMzIKK2V4dGVybiBpbnQgdW5sb2NrX2NvbnRyb2xm aWxlKGludCBmZCk7CisjZW5kaWYKIAogI2VuZGlmCQkJCQkJCS8qIENPTU1PTl9DT05UUk9MREFU QV9VVElMU19IICovCi0tIAoyLjM1LjEKCg== --0000000000007f047605f4dcd006 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Make-wal_sync_method-fdatasync-the-default-on-all-OS.patch" Content-Disposition: attachment; filename="0002-Make-wal_sync_method-fdatasync-the-default-on-all-OS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le7yo1441 RnJvbSBmYTU5NDAwNmMzZWY3ZTk1OGQ4NzA5NzhjNjMxYjAwM2FhNjgwYzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTYgRmViIDIwMjMgMjA6MDI6MjIgKzEzMDAKU3ViamVjdDogW1BBVENIIDIv M10gTWFrZSB3YWxfc3luY19tZXRob2Q9ZmRhdGFzeW5jIHRoZSBkZWZhdWx0IG9uIGFsbCBPU2Vz LgoKUHJldmlvdXNseSwgZmRhdGFzeW5jIHdhcyB0aGUgZGVmYXVsdCBsZXZlbCBvbiBMaW51eCBh bmQgRnJlZUJTRCBieQpzcGVjaWFsIHJ1bGVzLCBhbmQgb24gT3BlbkJTRCBhbmQgRHJhZ29uZmx5 QlNEIGJlY2F1c2UgdGhleSBkaWRuJ3QgaGF2ZQpPX0RTWU5DICE9IE9fU1lOQyBvciBPX0RTWU5D IGF0IGFsbC4gIEZvciBldmVyeSBvdGhlciBzeXN0ZW0sIHdlJ2QKY2hvb3NlIG9wZW5fZGF0YXN5 bmMuCgpVc2UgZmRhdGFzeW5jIGV2ZXJ5d2hlcmUsIGZvciBjb25zaXN0ZW5jeS4gIFRoaXMgYmVj YW1lIHBvc3NpYmxlIGFmdGVyCmNvbW1pdCA5NDMwZmI0MCBhZGRlZCBzdXBwb3J0IGZvciBXaW5k b3dzLCB0aGUgbGFzdCBrbm93biBzeXN0ZW0gbm90IHRvCmhhdmUgaXQuICBUaGlzIG1lYW5zIHRo YXQgd2UnbGwgbm93IGZsdXNoIGNhY2hlcyBvbiBjb25zdW1lciBkcml2ZXMgYnkKZGVmYXVsdCBv biBXaW5kb3dzLCB3aGVyZSBwcmV2aW91c2x5IHdlIGRpZG4ndCwgd2hpY2ggc2VlbXMgbGlrZSBh CmJldHRlciBkZWZhdWx0IGZvciBjcmFzaCBzYWZldHkuICBVc2VycyB3aG8gd2FudCB0aGUgb2xk ZXIgYmVoYXZpb3IgY2FuCnN0aWxsIHJlcXVlc3QgaXQgd2l0aCB3YWxfc3luY19tZXRob2Q9b3Bl bl9kYXRhc3luYy4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgIHwg IDUgKystLS0KIGRvYy9zcmMvc2dtbC93YWwuc2dtbCAgICAgICAgICAgICAgICAgfCAgOCArKysr LS0tLQogc3JjL2Jpbi9wZ190ZXN0X2ZzeW5jL3BnX3Rlc3RfZnN5bmMuYyB8ICA0ICsrLS0KIHNy Yy9pbmNsdWRlL2FjY2Vzcy94bG9nZGVmcy5oICAgICAgICAgfCAxNCArLS0tLS0tLS0tLS0tLQog c3JjL2luY2x1ZGUvcG9ydC9mcmVlYnNkLmggICAgICAgICAgICB8ICA3IC0tLS0tLS0KIHNyYy9p bmNsdWRlL3BvcnQvbGludXguaCAgICAgICAgICAgICAgfCAgOCAtLS0tLS0tLQogNiBmaWxlcyBj aGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBl Y2Q5YWE3M2VmLi5iNzhkMzc0ZDdlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0zMTA3LDkgKzMxMDcsOCBAQCBp bmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgPGxpdGVyYWw+ b3Blbl88L2xpdGVyYWw+KiBvcHRpb25zIGFsc28gdXNlIDxsaXRlcmFsPk9fRElSRUNUPC9saXRl cmFsPiBpZiBhdmFpbGFibGUuCiAgICAgICAgIE5vdCBhbGwgb2YgdGhlc2UgY2hvaWNlcyBhcmUg YXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuCi0gICAgICAgIFRoZSBkZWZhdWx0IGlzIHRoZSBm aXJzdCBtZXRob2QgaW4gdGhlIGFib3ZlIGxpc3QgdGhhdCBpcyBzdXBwb3J0ZWQKLSAgICAgICAg YnkgdGhlIHBsYXRmb3JtLCBleGNlcHQgdGhhdCA8bGl0ZXJhbD5mZGF0YXN5bmM8L2xpdGVyYWw+ IGlzIHRoZSBkZWZhdWx0IG9uCi0gICAgICAgIExpbnV4IGFuZCBGcmVlQlNELiAgVGhlIGRlZmF1 bHQgaXMgbm90IG5lY2Vzc2FyaWx5IGlkZWFsOyBpdCBtaWdodCBiZQorICAgICAgICBUaGUgZGVm YXVsdCBpcyA8bGl0ZXJhbD5mZGF0YXN5bmM8L2xpdGVyYWw+LgorICAgICAgICBUaGUgZGVmYXVs dCBpcyBub3QgbmVjZXNzYXJpbHkgaWRlYWw7IGl0IG1pZ2h0IGJlCiAgICAgICAgIG5lY2Vzc2Fy eSB0byBjaGFuZ2UgdGhpcyBzZXR0aW5nIG9yIG90aGVyIGFzcGVjdHMgb2YgeW91ciBzeXN0ZW0K ICAgICAgICAgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgYSBjcmFzaC1zYWZlIGNv bmZpZ3VyYXRpb24gb3IKICAgICAgICAgYWNoaWV2ZSBvcHRpbWFsIHBlcmZvcm1hbmNlLgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3dhbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3dhbC5zZ21sCmlu ZGV4IGVkNzkyOWNiY2QuLmZmYzIyYTdkZWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC93YWwu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvd2FsLnNnbWwKQEAgLTEwNiwxMiArMTA2LDEyIEBACiAg ICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+CiAgICAgICAgIE9uIDxwcm9kdWN0bmFtZT5XaW5k b3dzPC9wcm9kdWN0bmFtZT4sIGlmIDx2YXJuYW1lPndhbF9zeW5jX21ldGhvZDwvdmFybmFtZT4g aXMKLSAgICAgICAgPGxpdGVyYWw+b3Blbl9kYXRhc3luYzwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0 KSwgd3JpdGUgY2FjaGluZyBjYW4gYmUgZGlzYWJsZWQKKyAgICAgICAgPGxpdGVyYWw+b3Blbl9k YXRhc3luYzwvbGl0ZXJhbD4sIHdyaXRlIGNhY2hpbmcgY2FuIGJlIGRpc2FibGVkCiAgICAgICAg IGJ5IHVuY2hlY2tpbmcgPGxpdGVyYWw+TXkgQ29tcHV0ZXJcT3Blblw8cmVwbGFjZWFibGU+ZGlz ayBkcml2ZTwvcmVwbGFjZWFibGU+XFByb3BlcnRpZXNcSGFyZHdhcmVcUHJvcGVydGllc1xQb2xp Y2llc1xFbmFibGUgd3JpdGUgY2FjaGluZyBvbiB0aGUgZGlzazwvbGl0ZXJhbD4uCiAgICAgICAg IEFsdGVybmF0aXZlbHksIHNldCA8dmFybmFtZT53YWxfc3luY19tZXRob2Q8L3Zhcm5hbWU+IHRv Ci0gICAgICAgIDxsaXRlcmFsPmZkYXRhc3luYzwvbGl0ZXJhbD4gKE5URlMgb25seSksIDxsaXRl cmFsPmZzeW5jPC9saXRlcmFsPiBvcgotICAgICAgICA8bGl0ZXJhbD5mc3luY193cml0ZXRocm91 Z2g8L2xpdGVyYWw+LCB3aGljaCBwcmV2ZW50Ci0gICAgICAgIHdyaXRlIGNhY2hpbmcuCisgICAg ICAgIDxsaXRlcmFsPmZkYXRhc3luYzwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSwgPGxpdGVyYWw+ ZnN5bmM8L2xpdGVyYWw+IG9yCisgICAgICAgIDxsaXRlcmFsPmZzeW5jX3dyaXRldGhyb3VnaDwv bGl0ZXJhbD4sIHdoaWNoIHVzZSBzeXN0ZW0gY2FsbHMgdGhhdAorICAgICAgICBmbHVzaCB3cml0 ZSBjYWNoZXMuCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KIApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ190ZXN0X2ZzeW5jL3BnX3Rlc3RfZnN5bmMuYyBiL3NyYy9iaW4vcGdfdGVzdF9m c3luYy9wZ190ZXN0X2ZzeW5jLmMKaW5kZXggM2Q1ZThmMzBhYi4uNDViZDJkYWYyZSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ190ZXN0X2ZzeW5jL3BnX3Rlc3RfZnN5bmMuYworKysgYi9zcmMvYmlu L3BnX3Rlc3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jCkBAIC0yOTIsNyArMjkyLDcgQEAgdGVzdF9z eW5jKGludCB3cml0ZXNfcGVyX29wKQogCQlwcmludGYoXygiXG5Db21wYXJlIGZpbGUgc3luYyBt ZXRob2RzIHVzaW5nIG9uZSAlZGtCIHdyaXRlOlxuIiksIFhMT0dfQkxDS1NaX0spOwogCWVsc2UK IAkJcHJpbnRmKF8oIlxuQ29tcGFyZSBmaWxlIHN5bmMgbWV0aG9kcyB1c2luZyB0d28gJWRrQiB3 cml0ZXM6XG4iKSwgWExPR19CTENLU1pfSyk7Ci0JcHJpbnRmKF8oIihpbiB3YWxfc3luY19tZXRo b2QgcHJlZmVyZW5jZSBvcmRlciwgZXhjZXB0IGZkYXRhc3luYyBpcyBMaW51eCdzIGRlZmF1bHQp XG4iKSk7CisJcHJpbnRmKF8oIihmZGF0YXN5bmMgaXMgdGhlIGRlZmF1bHQpXG4iKSk7CiAKIAkv KgogCSAqIFRlc3Qgb3Blbl9kYXRhc3luYyBpZiBhdmFpbGFibGUKQEAgLTMyNiw3ICszMjYsNyBA QCB0ZXN0X3N5bmMoaW50IHdyaXRlc19wZXJfb3ApCiAjZW5kaWYKIAogLyoKLSAqIFRlc3QgZmRh dGFzeW5jIGlmIGF2YWlsYWJsZQorICogVGVzdCBmZGF0YXN5bmMKICAqLwogCXByaW50ZihMQUJF TF9GT1JNQVQsICJmZGF0YXN5bmMiKTsKIAlmZmx1c2goc3Rkb3V0KTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dkZWZz LmgKaW5kZXggZmU3OTRjNzc0MC4uYTYyODk3NjkwMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2dkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dkZWZzLmgKQEAg LTY0LDE5ICs2NCw3IEBAIHR5cGVkZWYgdWludDMyIFRpbWVMaW5lSUQ7CiAgKi8KIHR5cGVkZWYg dWludDE2IFJlcE9yaWdpbklkOwogCi0vKgotICogVGhpcyBjaHVuayBvZiBoYWNrZXJ5IGF0dGVt cHRzIHRvIGRldGVybWluZSB3aGljaCBmaWxlIHN5bmMgbWV0aG9kcwotICogYXJlIGF2YWlsYWJs ZSBvbiB0aGUgY3VycmVudCBwbGF0Zm9ybSwgYW5kIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZQot ICogZGVmYXVsdCBtZXRob2QuCi0gKgotICogTm90ZSB0aGF0IHdlIGRlZmluZSBvdXIgb3duIE9f RFNZTkMgb24gV2luZG93cywgYnV0IG5vdCBPX1NZTkMuCi0gKi8KLSNpZiBkZWZpbmVkKFBMQVRG T1JNX0RFRkFVTFRfU1lOQ19NRVRIT0QpCi0jZGVmaW5lIERFRkFVTFRfU1lOQ19NRVRIT0QJCVBM QVRGT1JNX0RFRkFVTFRfU1lOQ19NRVRIT0QKLSNlbGlmIGRlZmluZWQoT19EU1lOQykgJiYgKCFk ZWZpbmVkKE9fU1lOQykgfHwgT19EU1lOQyAhPSBPX1NZTkMpCi0jZGVmaW5lIERFRkFVTFRfU1lO Q19NRVRIT0QJCVNZTkNfTUVUSE9EX09QRU5fRFNZTkMKLSNlbHNlCisvKiBEZWZhdWx0IHN5bmNo cm9uaXphdGlvbiBtZXRob2QgZm9yIFdBTC4gKi8KICNkZWZpbmUgREVGQVVMVF9TWU5DX01FVEhP RAkJU1lOQ19NRVRIT0RfRkRBVEFTWU5DCi0jZW5kaWYKIAogI2VuZGlmCQkJCQkJCS8qIFhMT0df REVGU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L2ZyZWVic2QuaCBiL3NyYy9p bmNsdWRlL3BvcnQvZnJlZWJzZC5oCmluZGV4IDBlM2ZkZTU1ZDYuLjJlMzZkM2RhNGYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQvZnJlZWJzZC5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQv ZnJlZWJzZC5oCkBAIC0xLDggKzEgQEAKIC8qIHNyYy9pbmNsdWRlL3BvcnQvZnJlZWJzZC5oICov Ci0KLS8qCi0gKiBTZXQgdGhlIGRlZmF1bHQgd2FsX3N5bmNfbWV0aG9kIHRvIGZkYXRhc3luYy4g IHhsb2dkZWZzLmgncyBub3JtYWwgcnVsZXMKLSAqIHdvdWxkIHByZWZlciBvcGVuX2RhdGFzeW5j IG9uIEZyZWVCU0QgMTMrLCBidXQgdGhhdCBpcyBub3QgYSBnb29kIGNob2ljZSBvbgotICogbWFu eSBzeXN0ZW1zLgotICovCi0jZGVmaW5lIFBMQVRGT1JNX0RFRkFVTFRfU1lOQ19NRVRIT0QJU1lO Q19NRVRIT0RfRkRBVEFTWU5DCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L2xpbnV4Lmgg Yi9zcmMvaW5jbHVkZS9wb3J0L2xpbnV4LmgKaW5kZXggN2E2ZTQ2Y2RiYi4uYWNkODY3NjA2YyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC9saW51eC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bv cnQvbGludXguaApAQCAtMTIsMTEgKzEyLDMgQEAKICAqIHRvIGhhdmUgYSBrZXJuZWwgdmVyc2lv biB0ZXN0IGhlcmUuCiAgKi8KICNkZWZpbmUgSEFWRV9MSU5VWF9FSURSTV9CVUcKLQotLyoKLSAq IFNldCB0aGUgZGVmYXVsdCB3YWxfc3luY19tZXRob2QgdG8gZmRhdGFzeW5jLiAgV2l0aCByZWNl bnQgTGludXggdmVyc2lvbnMsCi0gKiB4bG9nZGVmcy5oJ3Mgbm9ybWFsIHJ1bGVzIHdpbGwgcHJl ZmVyIG9wZW5fZGF0YXN5bmMsIHdoaWNoIChhKSBkb2Vzbid0Ci0gKiBwZXJmb3JtIGJldHRlciBh bmQgKGIpIGNhdXNlcyBvdXRyaWdodCBmYWlsdXJlcyBvbiBleHQ0IGRhdGE9am91cm5hbAotICog ZmlsZXN5c3RlbXMsIGJlY2F1c2UgdGhvc2UgZG9uJ3Qgc3VwcG9ydCBPX0RJUkVDVC4KLSAqLwot I2RlZmluZSBQTEFURk9STV9ERUZBVUxUX1NZTkNfTUVUSE9ECVNZTkNfTUVUSE9EX0ZEQVRBU1lO QwotLSAKMi4zNS4xCgo= --0000000000007f047605f4dcd006 Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Apply-wal_sync_method-to-pg_control-file.patch" Content-Disposition: attachment; filename="0003-Apply-wal_sync_method-to-pg_control-file.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le7yo3242 RnJvbSBjOWRjYjc3MjYzYTdmODZiMTg3MjMxYTgzMDgzYmZiZTNhMGYzMGI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMjE6MDg6MTIgKzEzMDAKU3ViamVjdDogW1BBVENIIDMv M10gQXBwbHkgd2FsX3N5bmNfbWV0aG9kIHRvIHBnX2NvbnRyb2wgZmlsZS4KCldoZW4gd3JpdGlu ZyBvdXQgdGhlIGNvbnRyb2wgZmlsZSBmcmVxdWVudGx5IG9uIGEgc3RhbmRieSwgd2UgY2FuIGdv IGEKbGl0dGxlIGZhc3RlciBvbiBzb21lIHN5c3RlbXMgYnkgdXNpbmcgZmRhdGFzeW5jKCkgaW5z dGVhZCBvZiBmc3luYygpLAp3aXRoIG5vIGxvc3Mgb2Ygc2FmZXR5LiAgV2UgYWxyZWFkeSByZXNw ZWN0ZWQgdGhlIHNwZWNpYWwKIndhbF9zeW5jX21ldGhvZD1mc3luY193cml0ZXRocm91Z2giIHZp YSBhIGNpcmN1aXRvdXMgcm91dGUsIGJ1dCB3ZQptaWdodCBhcyB3ZWxsIHN1cHBvcnQgdGhlIGZ1 bGwgcmFuZ2Ugb2YgbWV0aG9kcy4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n LmMgICAgICB8IDE5ICsrKysrKysrLQogc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jICAg ICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvY29tbW9u L2NvbnRyb2xkYXRhX3V0aWxzLmggfCAgNyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4 IDliOWMzMjk0ZTguLjI3YzFjYjgyNzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAg LTQxODUsNyArNDE4NSwyNCBAQCBSZWFkQ29udHJvbEZpbGUodm9pZCkKIHN0YXRpYyB2b2lkCiBV cGRhdGVDb250cm9sRmlsZSh2b2lkKQogewotCXVwZGF0ZV9jb250cm9sZmlsZShEYXRhRGlyLCBD b250cm9sRmlsZSwgdHJ1ZSk7CisJaW50CQkJc3luY19vcDsKKworCXN3aXRjaCAoc3luY19tZXRo b2QpCisJeworCQljYXNlIFNZTkNfTUVUSE9EX0ZEQVRBU1lOQzoKKwkJCXN5bmNfb3AgPSBVUERB VEVfQ09OVFJPTEZJTEVfRkRBVEFTWU5DOworCQkJYnJlYWs7CisJCWNhc2UgU1lOQ19NRVRIT0Rf T1BFTjoKKwkJCXN5bmNfb3AgPSBVUERBVEVfQ09OVFJPTEZJTEVfT19TWU5DOworCQkJYnJlYWs7 CisJCWNhc2UgU1lOQ19NRVRIT0RfT1BFTl9EU1lOQzoKKwkJCXN5bmNfb3AgPSBVUERBVEVfQ09O VFJPTEZJTEVfT19EU1lOQzsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJc3luY19vcCA9IFVQ REFURV9DT05UUk9MRklMRV9GU1lOQzsKKwl9CisKKwl1cGRhdGVfY29udHJvbGZpbGUoRGF0YURp ciwgQ29udHJvbEZpbGUsIHN5bmNfb3ApOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1v bi9jb250cm9sZGF0YV91dGlscy5jIGIvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCmlu ZGV4IDQ1YjQzYWU1NDYuLjNmYzJhMDBkNDQgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vY29udHJv bGRhdGFfdXRpbHMuYworKysgYi9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKQEAgLTIz OSwxOCArMjM5LDM5IEBAIGdldF9jb250cm9sZmlsZShjb25zdCBjaGFyICpEYXRhRGlyLCBib29s ICpjcmNfb2tfcCkKICAqIHVwZGF0ZV9jb250cm9sZmlsZSgpCiAgKgogICogVXBkYXRlIGNvbnRy b2xmaWxlIHZhbHVlcyB3aXRoIHRoZSBjb250ZW50cyBnaXZlbiBieSBjYWxsZXIuICBUaGUKLSAq IGNvbnRlbnRzIHRvIHdyaXRlIGFyZSBpbmNsdWRlZCBpbiAiQ29udHJvbEZpbGUiLiAiZG9fc3lu YyIgY2FuIGJlCi0gKiBvcHRpb25hbGx5IHVzZWQgdG8gZmx1c2ggdGhlIHVwZGF0ZWQgY29udHJv bCBmaWxlLiAgTm90ZSB0aGF0IGl0IGlzIHVwCi0gKiB0byB0aGUgY2FsbGVyIHRvIHByb3Blcmx5 IGxvY2sgQ29udHJvbEZpbGVMb2NrIHdoZW4gY2FsbGluZyB0aGlzCi0gKiByb3V0aW5lIGluIHRo ZSBiYWNrZW5kLgorICogY29udGVudHMgdG8gd3JpdGUgYXJlIGluY2x1ZGVkIGluICJDb250cm9s RmlsZSIuICAic3luY19vcCIgY2FuIGJlIHNldAorICogdG8gMCBvciBhIHN5bmNocm9uaXphdGlv biBtZXRob2QgVVBEQVRFX0NPTlRST0xGSUxFX1hYWC4gIEluIGZyb250ZW5kIGNvZGUsCisgKiBv bmx5IDAgYW5kIG5vbi16ZXJvIChmc3luYykgYXJlIG1lYW5pbmdmdWwuCisgKiBOb3RlIHRoYXQg aXQgaXMgdXAgdG8gdGhlIGNhbGxlciB0byBwcm9wZXJseSBsb2NrIENvbnRyb2xGaWxlTG9jayB3 aGVuCisgKiBjYWxsaW5nIHRoaXMgcm91dGluZSBpbiB0aGUgYmFja2VuZC4KICAqLwogdm9pZAog dXBkYXRlX2NvbnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsCi0JCQkJICAgQ29udHJvbEZp bGVEYXRhICpDb250cm9sRmlsZSwgYm9vbCBkb19zeW5jKQorCQkJCSAgIENvbnRyb2xGaWxlRGF0 YSAqQ29udHJvbEZpbGUsCisJCQkJICAgaW50IHN5bmNfb3ApCiB7CiAJaW50CQkJZmQ7CiAJY2hh cgkJYnVmZmVyW1BHX0NPTlRST0xfRklMRV9TSVpFXTsKIAljaGFyCQlDb250cm9sRmlsZVBhdGhb TUFYUEdQQVRIXTsKKwlpbnQJCQlvcGVuX2ZsYWc7CisKKwlzd2l0Y2ggKHN5bmNfb3ApCisJewor I2lmbmRlZiBGUk9OVEVORAorI2lmZGVmIE9fU1lOQworCQljYXNlIFVQREFURV9DT05UUk9MRklM RV9PX1NZTkM6CisJCQlvcGVuX2ZsYWcgPSBPX1NZTkM7CisJCQlicmVhazsKKyNlbmRpZgorI2lm ZGVmIE9fRFNZTkMKKwkJY2FzZSBVUERBVEVfQ09OVFJPTEZJTEVfT19EU1lOQzoKKwkJCW9wZW5f ZmxhZyA9IE9fRFNZTkM7CisJCQlicmVhazsKKyNlbmRpZgorI2VuZGlmCisJCWRlZmF1bHQ6CisJ CQlvcGVuX2ZsYWcgPSAwOworCX0KIAogCS8qIFVwZGF0ZSB0aW1lc3RhbXAgICovCiAJQ29udHJv bEZpbGUtPnRpbWUgPSAocGdfdGltZV90KSB0aW1lKE5VTEwpOwpAQCAtMjc4LDEzICsyOTksMTMg QEAgdXBkYXRlX2NvbnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsCiAJICogQWxsIGVycm9y cyBpc3N1ZSBhIFBBTklDLCBzbyBubyBuZWVkIHRvIHVzZSBPcGVuVHJhbnNpZW50RmlsZSgpIGFu ZCB0bwogCSAqIHdvcnJ5IGFib3V0IGZpbGUgZGVzY3JpcHRvciBsZWFrcy4KIAkgKi8KLQlpZiAo KGZkID0gQmFzaWNPcGVuRmlsZShDb250cm9sRmlsZVBhdGgsIE9fUkRXUiB8IFBHX0JJTkFSWSkp IDwgMCkKKwlpZiAoKGZkID0gQmFzaWNPcGVuRmlsZShDb250cm9sRmlsZVBhdGgsIE9fUkRXUiB8 IFBHX0JJTkFSWSB8IG9wZW5fZmxhZykpIDwgMCkKIAkJZXJlcG9ydChQQU5JQywKIAkJCQkoZXJy Y29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKIAkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb3BlbiBmaWxl IFwiJXNcIjogJW0iLAogCQkJCQkJQ29udHJvbEZpbGVQYXRoKSkpOwogI2Vsc2UKLQlpZiAoKGZk ID0gb3BlbihDb250cm9sRmlsZVBhdGgsIE9fV1JPTkxZIHwgUEdfQklOQVJZLAorCWlmICgoZmQg PSBvcGVuKENvbnRyb2xGaWxlUGF0aCwgT19XUk9OTFkgfCBQR19CSU5BUlkgfCBvcGVuX2ZsYWcs CiAJCQkJICAgcGdfZmlsZV9jcmVhdGVfbW9kZSkpID09IC0xKQogCQlwZ19mYXRhbCgiY291bGQg bm90IG9wZW4gZmlsZSBcIiVzXCI6ICVtIiwgQ29udHJvbEZpbGVQYXRoKTsKICNlbmRpZgpAQCAt MzMxLDE3ICszNTIsMjkgQEAgdXBkYXRlX2NvbnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIs CiAJcGdzdGF0X3JlcG9ydF93YWl0X2VuZCgpOwogI2VuZGlmCiAKLQlpZiAoZG9fc3luYykKKwlp ZiAoc3luY19vcCAhPSAwKQogCXsKICNpZm5kZWYgRlJPTlRFTkQKIAkJcGdzdGF0X3JlcG9ydF93 YWl0X3N0YXJ0KFdBSVRfRVZFTlRfQ09OVFJPTF9GSUxFX1NZTkNfVVBEQVRFKTsKLQkJaWYgKHBn X2ZzeW5jKGZkKSAhPSAwKQotCQkJZXJlcG9ydChQQU5JQywKLQkJCQkJKGVycmNvZGVfZm9yX2Zp bGVfYWNjZXNzKCksCi0JCQkJCSBlcnJtc2coImNvdWxkIG5vdCBmc3luYyBmaWxlIFwiJXNcIjog JW0iLAotCQkJCQkJCUNvbnRyb2xGaWxlUGF0aCkpKTsKKwkJaWYgKHN5bmNfb3AgPT0gVVBEQVRF X0NPTlRST0xGSUxFX0ZEQVRBU1lOQykKKwkJeworCQkJaWYgKGZkYXRhc3luYyhmZCkgIT0gMCkK KwkJCQllcmVwb3J0KFBBTklDLAorCQkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJ CQkJCQkgZXJybXNnKCJjb3VsZCBub3QgZmRhdGFzeW5jIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJ CQkJCUNvbnRyb2xGaWxlUGF0aCkpKTsKKwkJfQorCQllbHNlIGlmIChzeW5jX29wID09IFVQREFU RV9DT05UUk9MRklMRV9GU1lOQykKKwkJeworCQkJaWYgKHBnX2ZzeW5jKGZkKSAhPSAwKQorCQkJ CWVyZXBvcnQoUEFOSUMsCisJCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkJ CSBlcnJtc2coImNvdWxkIG5vdCBmZGF0YXN5bmMgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJCQkJ Q29udHJvbEZpbGVQYXRoKSkpOworCQl9CiAJCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKICNl bHNlCisJCS8qIEluIGZyb250ZW5kIGNvZGUsIG5vbi16ZXJvIHN5bmNfb3AgZ2V0cyB5b3UgcGxh aW4gZnN5bmMoKS4gKi8KIAkJaWYgKGZzeW5jKGZkKSAhPSAwKQogCQkJcGdfZmF0YWwoImNvdWxk IG5vdCBmc3luYyBmaWxlIFwiJXNcIjogJW0iLCBDb250cm9sRmlsZVBhdGgpOwogI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuaCBiL3NyYy9p bmNsdWRlL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5oCmluZGV4IDA2ODI1Y2FkODUuLmRlNmRl NTU3MWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5oCkBAIC0xMiw5ICsx MiwxNCBAQAogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAKKyNkZWZpbmUgVVBE QVRFX0NPTlRST0xGSUxFX0ZTWU5DIDEKKyNkZWZpbmUgVVBEQVRFX0NPTlRST0xGSUxFX0ZEQVRB U1lOQyAyCisjZGVmaW5lIFVQREFURV9DT05UUk9MRklMRV9PX1NZTkMgMworI2RlZmluZSBVUERB VEVfQ09OVFJPTEZJTEVfT19EU1lOQyA0CisKIGV4dGVybiBDb250cm9sRmlsZURhdGEgKmdldF9j b250cm9sZmlsZShjb25zdCBjaGFyICpEYXRhRGlyLCBib29sICpjcmNfb2tfcCk7CiBleHRlcm4g dm9pZCB1cGRhdGVfY29udHJvbGZpbGUoY29uc3QgY2hhciAqRGF0YURpciwKLQkJCQkJCQkgICBD b250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29sIGRvX3N5bmMpOworCQkJCQkJCSAgIENv bnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGludCBzeW5jX29wKTsKIGV4dGVybiBpbnQgbG9j a19jb250cm9sZmlsZShpbnQgZmQsIGJvb2wgZXhjbHVzaXZlKTsKICNpZmRlZiBXSU4zMgogZXh0 ZXJuIGludCB1bmxvY2tfY29udHJvbGZpbGUoaW50IGZkKTsKLS0gCjIuMzUuMQoK --0000000000007f047605f4dcd006--