Re: BUG #15943: Valgrind-detected error in SlruPhysicalWritePage

From: Andres Freund <andres(at)anarazel(dot)de>
To: exclusion(at)gmail(dot)com,pgsql-bugs(at)lists(dot)postgresql(dot)org,PG Bug reporting form <noreply(at)postgresql(dot)org>
Subject: Re: BUG #15943: Valgrind-detected error in SlruPhysicalWritePage
Date: 2019-08-08 10:33:07
Message-ID: 902AFCEA-F078-4D47-AF53-1D2FD3022657@anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On August 8, 2019 12:44:43 AM EDT, PG Bug reporting form <noreply(at)postgresql(dot)org> wrote:
>The following bug has been logged on the website:
>
>Bug reference: 15943
>Logged by: Alexander Lakhin
>Email address: exclusion(at)gmail(dot)com
>PostgreSQL version: 12beta2
>Operating system: Ubuntu 18.04
>Description:
>
>When running under valgrind (sitting on the master branch):
>printf "SELECT pg_notify('notify_async1',NULL); %.0s" `seq 2048` | psql
>
>I get the following error:
>==00:00:00:12.885 19648== Syscall param write(buf) points to
>uninitialised
>byte(s)
>==00:00:00:12.885 19648== at 0x5054281: write (write.c:27)
>==00:00:00:12.885 19648== by 0x2687F0: SlruPhysicalWritePage
>(slru.c:851)
>==00:00:00:12.885 19648== by 0x268E95: SlruInternalWritePage
>(slru.c:543)
>==00:00:00:12.885 19648== by 0x2690F1: SlruSelectLRUPage
>(slru.c:1095)
>==00:00:00:12.885 19648== by 0x269777: SimpleLruZeroPage
>(slru.c:269)
>==00:00:00:12.885 19648== by 0x31DABA: asyncQueueAddEntries
>(async.c:1379)
>==00:00:00:12.885 19648== by 0x31F130: PreCommit_Notify
>(async.c:845)
>==00:00:00:12.885 19648== by 0x273C19: CommitTransaction
>(xact.c:2128)
>==00:00:00:12.885 19648== by 0x274A10: CommitTransactionCommand
>(xact.c:2921)
>==00:00:00:12.885 19648== by 0x53BD7D: finish_xact_command
>(postgres.c:2597)
>==00:00:00:12.885 19648== by 0x53E2F3: exec_simple_query
>(postgres.c:1256)
>==00:00:00:12.885 19648== by 0x540545: PostgresMain
>(postgres.c:4256)
>==00:00:00:12.885 19648== Address 0xf4f95bf is in a rw- anonymous
>segment
>==00:00:00:12.885 19648== Uninitialised value was created by a stack
>allocation
>==00:00:00:12.885 19648== at 0x31D967: asyncQueueAddEntries
>(async.c:1306)
>
>Increasing the count to 8192 produces another one, slightly different
>stack:
>==00:00:00:29.999 19648== Syscall param write(buf) points to
>uninitialised
>byte(s)
>==00:00:00:29.999 19648== at 0x5054281: write (write.c:27)
>==00:00:00:29.999 19648== by 0x2687F0: SlruPhysicalWritePage
>(slru.c:851)
>==00:00:00:29.999 19648== by 0x268E95: SlruInternalWritePage
>(slru.c:543)
>==00:00:00:29.999 19648== by 0x26A1BD: SimpleLruTruncate
>(slru.c:1234)
>==00:00:00:29.999 19648== by 0x31D5A5: asyncQueueAdvanceTail
>(async.c:2022)
>==00:00:00:29.999 19648== by 0x31F231: ProcessCompletedNotifies
>(async.c:1132)
>==00:00:00:29.999 19648== by 0x5403D1: PostgresMain
>(postgres.c:4176)
>==00:00:00:29.999 19648== by 0x4B16D9: BackendRun
>(postmaster.c:4431)
>==00:00:00:29.999 19648== by 0x4B481B: BackendStartup
>(postmaster.c:4122)
>==00:00:00:29.999 19648== by 0x4B4B32: ServerLoop
>(postmaster.c:1704)
>==00:00:00:29.999 19648== by 0x4B5F70: PostmasterMain
>(postmaster.c:1377)
>==00:00:00:29.999 19648== by 0x406428: main (main.c:228)
>==00:00:00:29.999 19648== Address 0xf4fb5bf is in a rw- anonymous
>segment
>==00:00:00:29.999 19648== Uninitialised value was created by a stack
>allocation
>==00:00:00:29.999 19648== at 0x31D967: asyncQueueAddEntries
>(async.c:1306)
>
>(It's also reproduced on REL_12_BETA3, REL9_6_15.)

That seems likely to be padding. Probably easier to see if you enable read-var-info and track-origins.

Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alexander Lakhin 2019-08-08 13:33:33 Re: BUG #15943: Valgrind-detected error in SlruPhysicalWritePage
Previous Message PG Bug reporting form 2019-08-08 04:44:43 BUG #15943: Valgrind-detected error in SlruPhysicalWritePage