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.94.2) (envelope-from ) id 1r1meo-00DeHs-Vm for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 12:00:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r1men-007L02-Fz for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 12:00:09 +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.94.2) (envelope-from ) id 1r1men-007Kzt-3G for pgsql-hackers@lists.postgresql.org; Sat, 11 Nov 2023 12:00:09 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1r1mek-0053QF-7X for pgsql-hackers@postgresql.org; Sat, 11 Nov 2023 12:00:07 +0000 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-2c504a5e1deso39244731fa.2 for ; Sat, 11 Nov 2023 04:00:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699704003; x=1700308803; darn=postgresql.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=J8Uf6vzoGV/LmNGuQMVXCCUgd+VUdf6bDotlF5OL4n4=; b=OVe7QAkWhGGaHWGuMIT2cjvARcFeeJIaDBSiJ7XDQni9PGhPaDsEo0o5/owfsj2slJ +xbGimlL4S1FXQcMVQ7iTK+1cJ08hbGPabplO98gjg2GVolPTnf5cYT0wU7nlk55QNB+ dYN5NBxj2iEIbRRhijZifmcewc3A6UJrM/mBVhNLippHTod5Q17XWnTuDrAfaHVVr2eC MjtXe2xgokVRaUk/Wc4wmQl1KsqppxAg1jpv6ioSVJK/J31LBrCIaoHHdNnno/i+SLIy 5mHwWvMhZtcv9xkSa9HNleToltmsg1bHd9KYqsTxvjrWU1IKtyqZeb/s/gbwB0jDBCY+ DcKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699704003; x=1700308803; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=J8Uf6vzoGV/LmNGuQMVXCCUgd+VUdf6bDotlF5OL4n4=; b=dKXNzmAHfKmVX39+JmlCeAJ9ub90TmIKK0lfrc6ekCust1Du/oEl/NiCZUc3Ezcp/u vfRlEIy/IMpo7/PrmSOlSapFjQ1QQQXYZyrwxy0BgZuTT6z9hsITfEFHXoR1vfWcUGzF zJ6GWx2MF3spq9bS0tmJav5cJufvv0vXxOrlf8IMhyae1uLSHgqpZc0zdQRgWABRrsvJ 6CnA2Vz26s6uMcFesaKTRsKAHHrb10dS+e03rf8ysO+3qjgbwpFJ4j0VeU8g1DuVOe9v K1VnSMVKK+oZzVGzxEkWWg65MgpanPDddw09RVkWzYTp8Fq6uJww5zxjt90vPtMscCRI /7AQ== X-Gm-Message-State: AOJu0Yynr/PFuGEaXxEfAKnjYcMem9Kgwbxo3Kx2i6IpU1jmneh4cEhT LOZ5AGS3n11XayBRkJF5lHQ= X-Google-Smtp-Source: AGHT+IHmQLdp20HDEhUjpwTgFiCvsEGUpjYasz+byWGGphwYUfBIWoQb43URFvA2rbSgO+nCZDYB0w== X-Received: by 2002:a05:6512:6ce:b0:507:b0a1:6088 with SMTP id u14-20020a05651206ce00b00507b0a16088mr1267163lff.46.1699704003211; Sat, 11 Nov 2023 04:00:03 -0800 (PST) Received: from [1.0.0.7] ([178.155.25.100]) by smtp.gmail.com with ESMTPSA id w13-20020a056512098d00b005079ff02b36sm253411lft.131.2023.11.11.04.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 11 Nov 2023 04:00:02 -0800 (PST) Message-ID: <4160bf8f-3101-2e5f-cca1-a75ca7c522f3@gmail.com> Date: Sat, 11 Nov 2023 15:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: ResourceOwner refactoring Content-Language: en-US To: Heikki Linnakangas , Robert Haas , Thomas Munro Cc: Aleksander Alekseev , "pgsql-hackers@postgresql.org" , Julien Rouhaud , Peter Eisentraut , Andres Freund References: <20221101001523.lsgmohl6fjwppbgx@awork3.anarazel.de> <9a3245db-ca03-4a47-5706-73404cfe5108@iki.fi> <20221101154251.64vyq7wy6w7aykrn@awork3.anarazel.de> <527af829-4a03-03b0-121c-46ff79c61887@iki.fi> <20230710191446.pn5ltm73t2i3xtxz@awork3.anarazel.de> <20607b96-b275-4a57-8509-29a3ed320d3f@iki.fi> <48b16f57-4204-4bd2-ab42-fb24144649c4@eisentraut.org> <9cb1277d-aee4-6511-44ee-7924676f7756@gmail.com> <599c6674-d40b-4b31-9251-c5c073ff9fdc@iki.fi> <11b70743-c5f3-3910-8e5b-dd6c115ff829@gmail.com> <10399503-9a92-4107-8c36-698da29438db@iki.fi> From: Alexander Lakhin In-Reply-To: <10399503-9a92-4107-8c36-698da29438db@iki.fi> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello Heikki, 10.11.2023 17:26, Heikki Linnakangas wrote: > > I think that is surprising behavior from the DSA facility. When you make allocations with dsa_allocate() or just call > dsa_get_address() on an existing dsa_pointer, you wouldn't expect the current resource owner to matter. I think > dsa_create/attach() should store the current resource owner in the dsa_area, for use in subsequent operations on the > DSA, per attached patch (0002-Fix-dsa.c-with-different-resource-owners.patch). > With the patch 0002 applied, I'm observing another anomaly: CREATE TABLE t(t1 text, t2 text); INSERT INTO t SELECT md5(g::text), '12345678901234567890' FROM generate_series(1, 100000) g; CREATE INDEX tidx ON t(t1); CREATE FUNCTION f() RETURNS TABLE (t1 text, t2 text) AS 'BEGIN END' LANGUAGE plpgsql; SELECT * FROM f(); gives me under Valgrind: 2023-11-11 11:54:18.964 UTC|law|regression|654f5d2e.3c7a92|LOG: statement: SELECT * FROM f(); ==00:00:00:49.589 3963538== Invalid read of size 1 ==00:00:00:49.589 3963538==    at 0x9C8785: ResourceOwnerEnlarge (resowner.c:454) ==00:00:00:49.589 3963538==    by 0x7507C4: dsm_create_descriptor (dsm.c:1207) ==00:00:00:49.589 3963538==    by 0x74EF71: dsm_create (dsm.c:538) ==00:00:00:49.589 3963538==    by 0x9B7BEA: make_new_segment (dsa.c:2171) ==00:00:00:49.589 3963538==    by 0x9B6E28: ensure_active_superblock (dsa.c:1696) ==00:00:00:49.589 3963538==    by 0x9B67DD: alloc_object (dsa.c:1487) ==00:00:00:49.589 3963538==    by 0x9B5064: dsa_allocate_extended (dsa.c:816) ==00:00:00:49.589 3963538==    by 0x978A4C: share_tupledesc (typcache.c:2742) ==00:00:00:49.589 3963538==    by 0x978C07: find_or_make_matching_shared_tupledesc (typcache.c:2796) ==00:00:00:49.589 3963538==    by 0x977652: assign_record_type_typmod (typcache.c:1995) ==00:00:00:49.589 3963538==    by 0x9885A2: internal_get_result_type (funcapi.c:462) ==00:00:00:49.589 3963538==    by 0x98800D: get_expr_result_type (funcapi.c:299) ==00:00:00:49.589 3963538==  Address 0x72f9bf0 is 2,096 bytes inside a recently re-allocated block of size 16,384 alloc'd ==00:00:00:49.589 3963538==    at 0x4848899: malloc (vg_replace_malloc.c:381) ==00:00:00:49.589 3963538==    by 0x9B1F94: AllocSetAlloc (aset.c:928) ==00:00:00:49.589 3963538==    by 0x9C1162: MemoryContextAllocZero (mcxt.c:1076) ==00:00:00:49.589 3963538==    by 0x9C872C: ResourceOwnerCreate (resowner.c:423) ==00:00:00:49.589 3963538==    by 0x2CC522: AtStart_ResourceOwner (xact.c:1211) ==00:00:00:49.589 3963538==    by 0x2CD52A: StartTransaction (xact.c:2084) ==00:00:00:49.589 3963538==    by 0x2CE442: StartTransactionCommand (xact.c:2948) ==00:00:00:49.589 3963538==    by 0x992D69: InitPostgres (postinit.c:860) ==00:00:00:49.589 3963538==    by 0x791E6E: PostgresMain (postgres.c:4209) ==00:00:00:49.589 3963538==    by 0x6B13C4: BackendRun (postmaster.c:4423) ==00:00:00:49.589 3963538==    by 0x6B09EB: BackendStartup (postmaster.c:4108) ==00:00:00:49.589 3963538==    by 0x6AD0A6: ServerLoop (postmaster.c:1767) without Valgrind I get: 2023-11-11 11:08:38.511 UTC|law|regression|654f60b6.3ca7eb|ERROR: ResourceOwnerEnlarge called after release started 2023-11-11 11:08:38.511 UTC|law|regression|654f60b6.3ca7eb|STATEMENT:  SELECT * FROM f(); Best regards, Alexander