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 1w1BXO-0004YR-1W for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 23:03: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 1w1BWO-000SlB-1o for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 23:02:21 +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 ) id 1w1BWO-000Sl3-0q for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 23:02:21 +0000 Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1BWL-000000002Ri-1Ce2 for pgsql-hackers@postgresql.org; Fri, 13 Mar 2026 23:02:20 +0000 Received: by mail-yx1-xb136.google.com with SMTP id 956f58d0204a3-64ad79dfb7cso3343070d50.2 for ; Fri, 13 Mar 2026 16:02:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773442935; cv=none; d=google.com; s=arc-20240605; b=L8VU/iskIx69++oZolryY+5jaBHm3zIe0BnTUxwzMjYD9LAUjlL9ZuUcXcRttugATo aTRuk6CSq8Dr5F3IvQVa5uyB/+zJnUA5S+3tDb+MYsKg/WGQj1Y3Qh4Q2B/u9eEhR3O6 e+kn2ZUHi0f5xoJEGg6ThtmJiWUhz8UsbvrQPg60pFmjswE7YCSjup4jtbpwQb4AP7uY 0Ygg/2Pc/9fPWOuu/7wnrAZTyUQZur0KqYHnkCOXD9VMiIGH6noP61vHLvv1ZzvWZoUA /+lSoWvEJZXji+vylj6eOyHYIFOq/fDkMezd0zvOjWIhNsvk3dH3Yp8oT2lX4o63QNKA 34tQ== 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=T8lTL3hJ+ubAxlN92219bDU+ABx7VFh7qxT7gO7oGQY=; fh=t8ZcROy7NxGFDjB89LXM0wINFA6u10hkLkPsFZxltG0=; b=DZ812zfN+TYYzGppNtLZJs9MzGRz2fJdLBdI4xJpzYzVDES3NwC3S/6tA81rvyNuP+ 2oBAoapoc6s2FbcUaMYJA0XcAELhyUGqcVwuPWraNJHPOkqANYrv2MxXSV0YC2yGneLR hhf9GwDMwXsX1FvxA+V8VqIeUhqFbRpqNTsmjiSZMq86AP8NJReraUTolqqsdBJGnDmO oqON6Aa6/2DDloNbClBvFxTiRdKYFg2FH0e/lIa4ofLjXk2dcU8c8SSkjqotfQd71t5g kRUUQwi4ibq9wCAweNHgl6YB7Lr9VQ3g2fPDQQGTHThu9ck29IkZZXbwMov5YzYFdQ7t 6mTQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=percona.com; s=google; t=1773442935; x=1774047735; 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=T8lTL3hJ+ubAxlN92219bDU+ABx7VFh7qxT7gO7oGQY=; b=JYp2mgPpxpNrxAw+I7yKDOB1zE4gp/lABoXefxkcEAwQceaL3qFJjwF32aq0RiUJEA MG5L0DzSSYb4b4oF7vyzkF9Z3DzwQZodtzE0oEMJ4cn7tG5VdqO31pkGDKJ9upWg2NCQ Ht60/VMei5qHobVj57CTc0AcR++LIdwJc/Giw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773442935; x=1774047735; 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=T8lTL3hJ+ubAxlN92219bDU+ABx7VFh7qxT7gO7oGQY=; b=sGBhBXh0JP1ow3CyA8zsxA51p4TfaZ3/th9kAIXC3zO/onzqTWm8Pihe5J7J1ti1tk u2gjZmfnRJh59KznRPHpgmYDDmANr7svuo7ASFS6RTu9oBdTXRUUuD5ry16qLci0d6Js Zcq/BxbBzANFuPxgynCUXHFu5hAVugncDIjvsjIIG3u0jPIanxRlImBvFBUtwyG2W6rC DnMMNzyUTdKYBDQjrNffnAR5kcDHqvwSJiaklKcpNkMJepFSbzZ0GcIi4uVEwQCCPfpB wr3Sl+2DaJcdRcDaq7p3VUUT+l45LtvyL4EbD3DsQmO/KE490ceQOLBCwD+zcXM/qFMM avDA== X-Forwarded-Encrypted: i=1; AJvYcCWSFqmFz2grGq71zX1ut9/UIWL15UeCE9xas89sdqUTi/hqcI++uygGOOaFtosoWec36ccNBCnWizcIudUC@postgresql.org X-Gm-Message-State: AOJu0Yxr1PZfP5MhOeHbRNjqjInve70reTugGEztpP2ahVn9dxKTIamF I5PHF/q1QNUnjE9FHbWcs60fUaO/E0qLDhCN6IF+y9eW0H5B2CA7zDgLY6YdNEwOFda5i9PjMai KrisSCgv3sKdTi2uiXEzu6c6TXOh8PBhd9W12xvvRcIVIQvvMYrnKFpVyToTCjgC+x8LeJXQyFe 02N1i8Af0MY0aF5zgE4FAdeOapvSscHPuFHF3HMLj3Wr55F+t2AfyZiyJZoDJLmW4D7khMsKU4U BHK29pBuQRoLvzBfokmStao4EeIQL6FGyXC3C/DWO0CKj5OD9g= X-Gm-Gg: ATEYQzyUAnlybEsumFVte027FVfegTaxUzefOHq/IV/heaHk7AtdmOg/UtvYrrG5Xhd ujD01pIDpOyVXYsOGYJk+e6FgbWtUCy44bMWXmGHoIBAka5xhE3kMzI9+Vehy8DuIDNMleJJjub FujopJbyQLlyk2tQRekHrpeSU+KG0sxccnqnOn4GkLUN3G7wEvgUjk9lI1GAHJ/k1lDzhCl2nN8 C5AnM0miJWAEc5FYki7rvnl0p2s9zTUxZ/XftSIdNWw/EWwZ+2YfySba0CdxmvXp0xK4S5rQq0j s75yyE+4znaF/6HdAO0H9qtZIUDrnQsW1eye92caXkMCGR141kF/i7f/fv5L/G2CBw0r X-Received: by 2002:a05:690c:c459:b0:796:3d5f:a2a0 with SMTP id 00721157ae682-79a1c190056mr57676827b3.42.1773442935558; Fri, 13 Mar 2026 16:02:15 -0700 (PDT) MIME-Version: 1.0 References: <5a37c2e3-619d-4816-84d7-0b27e3e6797f@iki.fi> <26c766d6-db0f-43d3-a618-44f8d40a3121@iki.fi> <7de8e39c-d1c4-4783-91b9-129d90e91411@iki.fi> In-Reply-To: <7de8e39c-d1c4-4783-91b9-129d90e91411@iki.fi> From: Zsolt Parragi Date: Fri, 13 Mar 2026 23:02:05 +0000 X-Gm-Features: AaiRm53k0cH3LLhgudgiwSqrxgLGqjaosGOhMnfU5Zoc-mbyxmQ5PcIvDkfte2Y Message-ID: Subject: Re: Better shared data structure management and resizable shared data structures To: Heikki Linnakangas Cc: Ashutosh Bapat , Andres Freund , pgsql-hackers , chaturvedipalak1911@gmail.com Content-Type: text/plain; charset="UTF-8" X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: percona,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello dsm_shmem_init(void) { size_t size = dsm_estimate_size(); - bool found; if (size == 0) return; Isn't there an assignment missing from this function now? Size is calculated but never used. With the current code if min_dynamic_shared_memory > 0 the server can crash. +static ShmemHashDesc WaitEventCustomHashByNameDesc = +{ + .name = "WaitEventCustom hash by name", + .ptr = &WaitEventCustomHashByName, + + .init_size = WAIT_EVENT_CUSTOM_HASH_INIT_SIZE, + .max_size = WAIT_EVENT_CUSTOM_HASH_MAX_SIZE, + /* key is a NULL-terminated string */ + .hash_info.keysize = sizeof(char[NAMEDATALEN]), + .hash_info.entrysize = sizeof(WaitEventCustomEntryByName), + .hash_flags = HASH_ELEM | HASH_BLOBS, +}; This was HASH_STRINGS originally, and it is used with plain const char* parameters. Shouldn't it use HASH_SRINGS as before? size = add_size(size, ShmemRegisteredSize()); size = add_size(size, dsm_estimate_size()); - size = add_size(size, DSMRegistryShmemSize()); + + size = add_size(size, ShmemRegisteredSize()); ShmemRegisteredSize is now called twice. + /* Initialize the lock */ + tranche_id = LWLockNewTrancheId("my tranche name"); + LWLockInitialize(&MyShmem->lock); Second parameter is missing for LWLockInitialize