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 1vtk63-009EQZ-0k for pgsql-general@arkaria.postgresql.org; Sat, 21 Feb 2026 10:20:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vtk62-009hD5-03 for pgsql-general@arkaria.postgresql.org; Sat, 21 Feb 2026 10:20:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vtk61-009hCx-1h for pgsql-general@lists.postgresql.org; Sat, 21 Feb 2026 10:20:21 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vtk5y-00000000V1j-1WAB for pgsql-general@lists.postgresql.org; Sat, 21 Feb 2026 10:20:20 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-b8850aa5b56so523978866b.2 for ; Sat, 21 Feb 2026 02:20:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771669218; cv=none; d=google.com; s=arc-20240605; b=Vd/f2+9RsQrPXL5JPI1LNjp+//YhwV9ppcpyv5O/R7nT0oK9gckyHL7ofGgD69KK4Y 5IvbjfEA0Z0dzf8pkWz7pn8ehzs0BnT4ST7eOmPEFyTxbQRGAlo8togp0YeVxKJOTH/R sdXuvGzwdV44KLDh4926hb6tYIU+WDhdF6lqChJZbVXQ243RW/cA+mmviuG3hPM3PIEw WFg9hgxBdl2Ach0yB2FoH7xm8nHMqBqZGn+HnPkJK/VjaCTGGLgUs85am7C/LH3YPpIM XL04r1YQfoNabKmbapjDsOxSMgRJb4SDNQj7uWnwh8CCdhJfvLTg1hZcLUeFP/4zRSLT RVhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=DZSRahCmVjhD27NCNSP04jxytKzCMI+pAPglXt3Hroo=; fh=lKMLVjBBB/U0FSKzSYyYPwsgj3Klu1i0L0wq+KLa7As=; b=QI9w5Gs2IrzqieLyej+mAgQ0J4FuTYXv3nt595BouZJryjszFIJfk9UT513sA+xr5i +OLwUKFy/praunyK39fj7U0f8Yjl4Q+7YMYPM/fP0NsLW6eYGz+QtYG08n64IFXEc4nm +vU8oDJsWdRbCsPNOGEdsvxlonLiIcETpbkehX4k0s/Me7z+a9kh+DUdOGu7WhZ5S5Bm vVIHttNd+UWSANamgS9T5NCwJWu/RmOydTUovYfb9oAXGTiNTaDclgpE6Rsa6cEgHVoB gUHjCt0w4m19vbEKoUFp2BXKanf1t78OUSONbbjbT32209l/XtheJnpO777Dk2rYYxw8 SmHw==; darn=lists.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=20230601; t=1771669218; x=1772274018; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DZSRahCmVjhD27NCNSP04jxytKzCMI+pAPglXt3Hroo=; b=byU0cH4wrGnqcM9n5bijWHzXRfG3ex5iRZ9SHfy6SuC6vuCFepyPQQcx9pLrWkOXRl 2ynYLf48sYcgAA4v019/3TwybQRb6bWloBhyiIS5PFJLf7lCIAvaMKjUFUpIAGFLSSvC ZC6xf4RINaZ3joa8AJhfqbWnPzrPI4QsQC7M7TIV1iPFUs3292HBD9TO4Rw3tIpjdVpz 6X+y+ibL39BCokM08UmQG9ZEPqApmK0Hoy11gv/NC0KU+RABHzknZ3eKtW2Vcyrlyl17 9aspd9iKI1ihFEAJ8sSEafIoabu4W2y/90AT6pewCbFMqfmpwcYLxI0BXTiKdLs5U+kl +T9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771669218; x=1772274018; h=content-transfer-encoding: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=DZSRahCmVjhD27NCNSP04jxytKzCMI+pAPglXt3Hroo=; b=iuCw7cOBkX/phbobfNCX6nOM2+D9Nyu1fP7VrLW7vhzpOMH+DzCvKqA9/bZo2euB4L 2ggesgSW0bB8JrD0GmvvnJcz+N1hb0GkHYjp7qRUwGNY8UPXsdRvVfmgDOROMEawN2FT 5Qd0/GIkY3a1vyGthA4ARWLEz+l1UcLsnQSUtUW7vx1Ka9lyXDKMrprntiZjNUl0a9SU 0QkpVDIL1QT7Ahknpybvm805VmrjxZ0kTsUuVDlYRZ4TScCIIhzEUi6CohWTDanfsE2P xJKnwikyl7K2T3Dx2WHf7QSflpBq8qnZDZOS0NLCX6MjBNfsKHSwTUWY3wbNs9uzdWWB OQgA== X-Forwarded-Encrypted: i=1; AJvYcCU6Y8L4nnv+YB1zWHEwqfBA62P+tfR0jNUKUZ9G2VofGzDV3YEAdfgAuVyWo45Wo+VtI68IfmiudmBbfPR8@lists.postgresql.org X-Gm-Message-State: AOJu0YwyWQ7IMyhbAfUSzJWZrhHuNZtN/j1c21f9ARHMWP0aQ24u497B 4/wJezIf1vAZS99DGkSSdILPnQaHhIPiSd8R5SAjnmDUAxejU+8aIwbYlZSLng+j5viVubcE80a T50Xx4FXxC/wPfVDJfgdHm7bsAobA5GvKKNoeHeE= X-Gm-Gg: AZuq6aIlfEj5IKzjmuxlwDXvBJ9T5x8Q5C+P8/1j2H9my9IL2Y9JYeFXG53x8BADb1h VQcFr8jd714SMjzXqW97JqBHaeHNBMb+wJMMbOx2+FghAaqAsvjvGr3hRQLOa97L7p0BYnbcBnz JkoYvpKJrYw6yHt/uRrTZKG43+zCnCt0u+/qqTD8Fwyyu98hKCFrT/JXryaoQMxew0T4NOwpmQI Si3ddAmWvmhxKVlFa6sPpniv1BihdwF73Dta8jmspZhxDs2ns58MeY7BV42HVivnOzqWbgA3MSw Q9/ashe0v/yl7qh9/qF8Re3koEx55eHER3pEMQML4U+fN7hHjLdOhs3tgQ7nL8O1HewRTouIg6g Qp8xSAg11uWGtn8a7rvoD X-Received: by 2002:a17:907:6d1a:b0:b8f:ccab:a344 with SMTP id a640c23a62f3a-b908199ef63mr159163666b.14.1771669217559; Sat, 21 Feb 2026 02:20:17 -0800 (PST) MIME-Version: 1.0 References: <20e5800983ca176d696f2f90ecc0a830@postgrespro.ru> In-Reply-To: From: Pawel Kudzia Date: Sat, 21 Feb 2026 11:20:07 +0100 X-Gm-Features: AaiRm50X8bLmqdzBNJnRj6zn1UZ9TKdordMVdoEWT7uVTl0LbkyttR4tpYSl2is Message-ID: Subject: Re: Silent data corruption in PostgreSQL 17 - how to detect it proactively? To: Merlin Moncure Cc: Vladlen Popolitov , pgsql-general@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, Sep 16, 2025 at 6:41=E2=80=AFPM Merlin Moncure = wrote: > > On Tue, Sep 16, 2025 at 7:25=E2=80=AFAM Vladlen Popolitov wrote: >> >> Checksum calculation takes ~0.5% of query time, it is not bottleneck >> in PostgreSQL. > > > I consider checksums=3Don to be a mandatory setting. Often, these types = of things are not bugs in postgres itself, but bugs in storage, the underly= ing operating system, or extensions. Checksums can and will protect you, a= nd may even bring you close to the thing causing the corruption. Given tha= t your replica is ok, this very much smells like a similar type of issue. > > In a prior case, I was using pl/sh to load data to the database with 'cop= y', and for what I believe to be o/s issues, was getting corruption. Enabl= ing checksums completely addressed the source of the damage. Turn them on! > i'd like to add a note that might help others - at the end - it was not PostgreSQL, but a bug in underlying KVM when snapshots were active. it hit others as well and at the time of writing is not resolved yet - https://gitlab.com/qemu-project/qemu/-/issues/3273 thanks a lot for help and suggestions! --=20 regards, Pawel Kudzia