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 1sDkOm-00EpYv-Cj for pgsql-hackers@arkaria.postgresql.org; Sun, 02 Jun 2024 12:33:22 +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 1sDkOk-006cXw-Rp for pgsql-hackers@arkaria.postgresql.org; Sun, 02 Jun 2024 12:33:18 +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 1sDkOk-006cXm-2p for pgsql-hackers@lists.postgresql.org; Sun, 02 Jun 2024 12:33:18 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sDkOc-0036Yz-8B for pgsql-hackers@lists.postgresql.org; Sun, 02 Jun 2024 12:33:16 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-52b87e8ba1eso3020939e87.3 for ; Sun, 02 Jun 2024 05:33:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717331587; x=1717936387; darn=lists.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=C1+frB9X7rGtfP5y6IcphcFTNAvKpDTIMKcByD7y5R4=; b=W5rh+SiDco/gz/5lUDsN2dN4e4hqj4yhJ0lOm4IGP0CcujVyjnjC/Fj4nes+XeUeVE k40Ocf7mEvIXYcJOqTTKneppF/oCkPmP+WyOw/2jPPgPmT1+6Mtxd8OOkjzs8TK3mdou gqkrEeLx3BCau+YV2oSXeyANPdRIj7YZ+E2KTaQCL2sLKSWKOU1/7vMBBjSSt0sad0cf dgUe6OUNv9vKb6vB8TgxNiR0jO46dWbgJVj/LqY1p8FL2uALJIqbum8zgRoCvvCsPYDc /vZZlnO/PNqX9AIt1ymcnUdC7BV4x/5qm2SMhiGz3sFM/xFky8ceeDbB8Y3ZrU9TMWIt +xqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717331587; x=1717936387; 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=C1+frB9X7rGtfP5y6IcphcFTNAvKpDTIMKcByD7y5R4=; b=NnZ9rrSDeZO4FQuoqdNUnAkSk5MqwoqJIcOMJM4rfmKb1CyA+u53wdzN5oub0TqNO0 MnTX9gLs+frPzut+P5Pes6Mgte7PmECxEOhMe0clJyfJJAAcfr9o8/3LoK/Y6E5eWSQA HrJgGx9CokGgZtdjb0+yjGGdDnyMRfYg0jJqRaUgCSeFlrjx3YLxvk3qRziDlLdE0i1m V5xL3ygDAnInDIB7UgT94J4gxpaXkp4s9G1rCelEr4FuiLAdPj8c83AQHMaj3pgwzbzL E1+RFjSzNcNkWgAsHqm15D5b765h5iE6CbIIZGCmZRUdzwiX2lswOvNJwViBlcS6Iyi4 Bb/g== X-Gm-Message-State: AOJu0Ywl0KGry7CqTUMuzsHyLnB9MEdCnbNtNdWMgMj2sS3u9+gzs/Pd PLaSqWrHKoJ38rEzWcaZGCo/3CPSiIn2ybD4U0EYCjV2KwfeMUQxMcy9DbAowldB0A++dcf1dTx agmJ9aBo0zqZa18m+igngQUUJH30= X-Google-Smtp-Source: AGHT+IFmC7ZU1Wia3XMQ0B10MTQb5cJU+0WIbJ9pDQ4mp4R8S+z8c0j2nDJnqH6o/QtexqF0PHZSQWm1HDr+JeJkJV4= X-Received: by 2002:a05:6512:3995:b0:52b:9a99:9201 with SMTP id 2adb3069b0e04-52b9a99925cmr149594e87.58.1717331586978; Sun, 02 Jun 2024 05:33:06 -0700 (PDT) MIME-Version: 1.0 References: <6a2a1c40-2b2c-4a33-8b72-243c0766fcda@postgrespro.ru> In-Reply-To: <6a2a1c40-2b2c-4a33-8b72-243c0766fcda@postgrespro.ru> From: Pierre Forstmann Date: Sun, 2 Jun 2024 14:32:55 +0200 Message-ID: Subject: Re: pltcl crashes due to a syntax error To: "a.kozhemyakin" Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/alternative; boundary="000000000000341b030619e76b2c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000341b030619e76b2c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I can also reproduce in Alma Linux 8.10 with tcl-devel 8.6.8 gdb says: (gdb) p interp $1 =3D (Tcl_Interp *) 0x288a500 (gdb) p *interp $2 =3D {resultDontUse =3D 0x288a6d8 "", freeProcDontUse =3D 0x0, errorLineDontUse =3D 1} (gdb) p msg No symbol "msg" in current context. (gdb) p emsg $3 =3D 0x27ebe48 "list element in braces followed by \")\" instead of space= " Involved PG source code is: ********************************************************************** * throw_tcl_error - ereport an error returned from the Tcl interpreter **********************************************************************/ static void throw_tcl_error (Tcl_Interp *interp, const char *proname ) { /* * Caution is needed here because Tcl_GetVar could overwrite the * interpreter result (even though it's not really supposed to), and we * can't control the order of evaluation of ereport arguments. Hence, make * real sure we have our own copy of the result string before invoking * Tcl_GetVar. */ char *emsg; char *econtext; emsg =3D pstrdup (utf_u2e (Tcl_GetStringResult(interp))); econtext =3D utf_u2e (Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY)); ereport (ERROR , (errcode (ERRCODE_EXTERNAL_ROUTINE_EXCEPTION), errmsg ("%s", emsg), errcontext ("%s\nin PL/Tcl function \"%s\"", econtext, proname ))); } I understand that Tcl_GetVar should not be used any more and should be replaced by Tcl_GetStringResult (but I know nothing about Tcl internals) Following patch : diff postgres/src/pl/tcl/pltcl.c.orig postgres/src/pl/tcl/pltcl.c 1373c1373,1376 < econtext =3D utf_u2e(Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY)); --- > /* > * econtext =3D utf_u2e(Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY)); > */ > econtext =3D utf_u2e(Tcl_GetStringResult(interp)); gives: pierre=3D# CREATE OR REPLACE PROCEDURE test_proc(INOUT a text) AS $$ set aa [concat $1 "+" $1] return [list $aa $aa]) $$ LANGUAGE pltcl; CREATE PROCEDURE pierre=3D# CALL test_proc('abc'); 2024-06-02 14:22:45.223 CEST [61649] ERROR: list element in braces followed by ")" instead of space 2024-06-02 14:22:45.223 CEST [61649] CONTEXT: list element in braces followed by ")" instead of space in PL/Tcl function "test_proc" 2024-06-02 14:22:45.223 CEST [61649] STATEMENT: CALL test_proc('abc'); ERROR: list element in braces followed by ")" instead of space CONTEXT: list element in braces followed by ")" instead of space in PL/Tcl function "test_proc" PF Le sam. 1 juin 2024 =C3=A0 06:36, a.kozhemyakin a =C3=A9crit : > Hello hackers, > > When executing the following query on master branch: > > CREATE EXTENSION pltcl; > CREATE or replace PROCEDURE test_proc5(INOUT a text) > LANGUAGE pltcl > AS $$ > set aa [concat $1 "+" $1] > return [list $aa $aa]) > $$; > > CALL test_proc5('abc'); > CREATE EXTENSION > CREATE PROCEDURE > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > The connection to the server was lost. Attempting reset: Failed. > > The connection to the server was lost. Attempting reset: Failed. > > > Core was generated by `postgres: postgres postgres [loca'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142 > 142 ../sysdeps/x86_64/multiarch/strlen-sse2.S: No such file or > directory. > (gdb) bt > #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142 > #1 0x00007f5f1353ba6a in utf_u2e (src=3D0x0) at pltcl.c:77 > #2 0x00007f5f1353c9f7 in throw_tcl_error (interp=3D0x55ec24bdaf70, > proname=3D0x55ec24b6b140 "test_proc5") at pltcl.c:1373 > #3 0x00007f5f1353ed64 in pltcl_func_handler > (fcinfo=3Dfcinfo@entry=3D0x7ffdbfb407a0, > call_state=3Dcall_state@entry=3D0x7ffdbfb405d0, > pltrusted=3Dpltrusted@entry=3Dtrue) at pltcl.c:1029 > #4 0x00007f5f1353ee8d in pltcl_handler (fcinfo=3D0x7ffdbfb407a0, > pltrusted=3Dpltrusted@entry=3Dtrue) at pltcl.c:765 > #5 0x00007f5f1353f1ef in pltcl_call_handler (fcinfo=3D) a= t > pltcl.c:698 > #6 0x000055ec239ec64a in ExecuteCallStmt > (stmt=3Dstmt@entry=3D0x55ec24a9a940, params=3Dparams@entry=3D0x0, > atomic=3Datomic@entry=3Dfalse, dest=3Ddest@entry=3D0x55ec24a6ea18) at > functioncmds.c:2285 > #7 0x000055ec23c103a7 in standard_ProcessUtility (pstmt=3D0x55ec24a9a9d8= , > queryString=3D0x55ec24a99e68 "CALL test_proc5('abc');", > readOnlyTree=3D, context=3DPROCESS_UTILITY_TOPLEVEL, > params=3D0x0, queryEnv=3D0x0, dest=3D0x55ec24a6ea18, > qc=3D0x7ffdbfb40f40) at utility.c:851 > #8 0x000055ec23c1081b in ProcessUtility > (pstmt=3Dpstmt@entry=3D0x55ec24a9a9d8, queryString=3D, > readOnlyTree=3D, > context=3Dcontext@entry=3DPROCESS_UTILITY_TOPLEVEL, params=3D, > queryEnv=3D, > dest=3D0x55ec24a6ea18, qc=3D0x7ffdbfb40f40) at utility.c:523 > #9 0x000055ec23c0e04e in PortalRunUtility > (portal=3Dportal@entry=3D0x55ec24b18108, pstmt=3D0x55ec24a9a9d8, > isTopLevel=3DisTopLevel@entry=3Dtrue, > setHoldSnapshot=3DsetHoldSnapshot@entry=3Dtrue, > dest=3Ddest@entry=3D0x55ec24a6ea18, qc=3Dqc@entry=3D0x7ffdbfb40f40) > at pquery.c:1158 > #10 0x000055ec23c0e3b7 in FillPortalStore > (portal=3Dportal@entry=3D0x55ec24b18108, isTopLevel=3DisTopLevel@entry=3D= true) > at pquery.c:1031 > #11 0x000055ec23c0e6ee in PortalRun (portal=3Dportal@entry=3D0x55ec24b181= 08, > count=3Dcount@entry=3D9223372036854775807, isTopLevel=3DisTopLevel@entry= =3Dtrue, > run_once=3Drun_once@entry=3Dtrue, dest=3Ddest@entry=3D0x55ec24a9aec8, > altdest=3Daltdest@entry=3D0x55ec24a9aec8, > qc=3D0x7ffdbfb41130) at pquery.c:763 > #12 0x000055ec23c0acca in exec_simple_query > (query_string=3Dquery_string@entry=3D0x55ec24a99e68 "CALL > test_proc5('abc');") at postgres.c:1274 > #13 0x000055ec23c0caad in PostgresMain (dbname=3D, > username=3D) at postgres.c:4680 > #14 0x000055ec23c0687a in BackendMain (startup_data=3D, > startup_data_len=3D) at backend_startup.c:105 > #15 0x000055ec23b766bf in postmaster_child_launch > (child_type=3Dchild_type@entry=3DB_BACKEND, > startup_data=3Dstartup_data@entry=3D0x7ffdbfb41354 "", > startup_data_len=3Dstartup_data_len@entry=3D4, > client_sock=3Dclient_sock@entry=3D0x7ffdbfb41390) > at launch_backend.c:265 > #16 0x000055ec23b7ab36 in BackendStartup > (client_sock=3Dclient_sock@entry=3D0x7ffdbfb41390) at postmaster.c:3593 > #17 0x000055ec23b7adb0 in ServerLoop () at postmaster.c:1674 > #18 0x000055ec23b7c20c in PostmasterMain (argc=3Dargc@entry=3D3, > argv=3Dargv@entry=3D0x55ec24a54030) at postmaster.c:1372 > #19 0x000055ec23aacf9f in main (argc=3D3, argv=3D0x55ec24a54030) at main.= c:197 > > > > --000000000000341b030619e76b2c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I can also reproduce in Alma Linux 8.10 with tcl-deve= l 8.6.8

gdb says:


(gdb) p interp
$1 =3D (Tcl_Interp *) 0x288a500
(gdb) p *inter= p
$2 =3D {resultDontUse =3D 0x288a6d8 "", freeProcDontUse =3D = 0x0,
=C2=A0 errorLineDontUse =3D 1}
(gdb) p msg
No symbol "m= sg" in current context.
(gdb) p emsg
$3 =3D 0x27ebe48 "list= element in braces followed by \")\" instead of space"
=


Involved PG source code is:
******= ****************************************************************
=C2=A0 * throw_tcl_error - ereport an = error returned from the Tcl interpreter
=C2=A0 ********************************= **************************************/
=C2=A0static void
=C2=A0throw_tcl_error(Tcl_In= terp *interp, const char *pronam= e)
=C2=A0{
=C2=A0 /*
=C2=A0 * Caution is needed here bec= ause Tcl_GetVar could overwrite the
=C2=A0 * interpreter result (even t= hough it's not really supposed to), and we
=C2=A0 * can't control the orde= r of evaluation of ereport arguments. Hence, make
=C2=A0 * real sure we have our own = copy of the result string before invoking
=C2=A0 * Tcl_GetVar.
=C2=A0 */
=C2=A0 char *emsg;<= /div>
=C2=A0 char *econte= xt;
=C2=A0
=C2=A0 emsg =3D pstrdup(utf_u2e(Tcl_GetStringResult(interp))= );
=C2=A0 ereport(ERROR,
=C2=A0 (errcode(ER= RCODE_EXTERNAL_ROUTINE_EXCEPTION),
=C2=A0 errmsg("%s", emsg),
=C2=A0 errcontext= ("%s\nin PL/Tcl function \"%s= \"",
=C2=A0 econtext, proname)));
=C2=A0}
I understand that Tcl_GetVar should not be used any more and s= hould be replaced by Tcl_GetStringResult
(but I know nothing= about Tcl internals)

Following patch :
<= div>diff postgres/src/pl/tcl/pltcl.c.orig postgres/src/pl/tcl/pltcl.c
13= 73c1373,1376
< =C2=A0 =C2=A0 =C2=A0 econtext =3D utf_u2e(Tcl_GetVar(i= nterp, "errorInfo", TCL_GLOBAL_ONLY));
---
> =C2=A0 =C2= =A0 =C2=A0 /*
> =C2=A0 =C2=A0 =C2=A0 =C2=A0* econtext =3D utf_u2e(Tcl= _GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY));
> =C2=A0 = =C2=A0 =C2=A0 =C2=A0*/
> =C2=A0 =C2=A0 =C2=A0 econtext =3D utf= _u2e(Tcl_GetStringResult(interp));

gives:

pierre=3D# CREATE OR REPLACE PROCEDURE test_proc(INOUT a t= ext)
=C2=A0AS $$
=C2=A0set aa [concat $1 "+" $1]
=C2=A0r= eturn [list $aa $aa])
=C2=A0$$
=C2=A0LANGUAGE pltcl;
CREATE PROCED= URE
pierre=3D# CALL test_proc('abc');
2024-06-02 14:22:45.223= CEST [61649] ERROR: =C2=A0list element in braces followed by ")"= instead of space
2024-06-02 14:22:45.223 CEST [61649] CONTEXT: =C2=A0li= st element in braces followed by ")" instead of space
in PL/T= cl function "test_proc"
2024-06-02 14:22:45.223 CEST [61649] S= TATEMENT: =C2=A0CALL test_proc('abc');
ERROR: =C2=A0list element= in braces followed by ")" instead of space
CONTEXT: =C2=A0lis= t element in braces followed by ")" instead of space
in PL/Tcl= function "test_proc"


PF





Le= =C2=A0sam. 1 juin 2024 =C3=A0=C2=A006:36, a.kozhemyakin <a.kozhemyakin@postgrespr= o.ru> a =C3=A9crit=C2=A0:
Hello hackers,

When executing the following query on master branch:

CREATE EXTENSION pltcl;
CREATE or replace PROCEDURE test_proc5(INOUT a text)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 LANGUAGE pltcl
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 AS $$
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 set aa [concat $1 "+&= quot; $1]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return [list $aa $aa])
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $$;

CALL test_proc5('abc');
CREATE EXTENSION
CREATE PROCEDURE
server closed the connection unexpectedly
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 This probably means the se= rver terminated abnormally
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 before or while processing= the request.
The connection to the server was lost. Attempting reset: Failed.

The connection to the server was lost. Attempting reset: Failed.


Core was generated by `postgres: postgres postgres [loca'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0=C2=A0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142<= br> 142=C2=A0=C2=A0=C2=A0=C2=A0 ../sysdeps/x86_64/multiarch/strlen-sse2.S: No s= uch file or
directory.
(gdb) bt
#0=C2=A0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142<= br> #1=C2=A0 0x00007f5f1353ba6a in utf_u2e (src=3D0x0) at pltcl.c:77
#2=C2=A0 0x00007f5f1353c9f7 in throw_tcl_error (interp=3D0x55ec24bdaf70, proname=3D0x55ec24b6b140 "test_proc5") at pltcl.c:1373
#3=C2=A0 0x00007f5f1353ed64 in pltcl_func_handler
(fcinfo=3Dfcinfo@entry=3D0x7ffdbfb407a0,
call_state=3Dcall_state@entry=3D0x7ffdbfb405d0,
pltrusted=3Dpltrusted@entry=3Dtrue) at pltcl.c:1029
#4=C2=A0 0x00007f5f1353ee8d in pltcl_handler (fcinfo=3D0x7ffdbfb407a0,
pltrusted=3Dpltrusted@entry=3Dtrue) at pltcl.c:765
#5=C2=A0 0x00007f5f1353f1ef in pltcl_call_handler (fcinfo=3D<optimized o= ut>) at
pltcl.c:698
#6=C2=A0 0x000055ec239ec64a in ExecuteCallStmt
(stmt=3Dstmt@entry=3D0x55ec24a9a940, params=3Dparams@entry=3D0x0,
atomic=3Datomic@entry=3Dfalse, dest=3Ddest@entry=3D0x55ec24a6ea18) at
functioncmds.c:2285
#7=C2=A0 0x000055ec23c103a7 in standard_ProcessUtility (pstmt=3D0x55ec24a9a= 9d8,
queryString=3D0x55ec24a99e68 "CALL test_proc5('abc');", <= br> readOnlyTree=3D<optimized out>, context=3DPROCESS_UTILITY_TOPLEVEL, <= br> params=3D0x0, queryEnv=3D0x0, dest=3D0x55ec24a6ea18,
=C2=A0=C2=A0=C2=A0=C2=A0 qc=3D0x7ffdbfb40f40) at utility.c:851
#8=C2=A0 0x000055ec23c1081b in ProcessUtility
(pstmt=3Dpstmt@entry=3D0x55ec24a9a9d8, queryString=3D<optimized out>,=
readOnlyTree=3D<optimized out>,
context=3Dcontext@entry=3DPROCESS_UTILITY_TOPLEVEL, params=3D<optimized = out>,
queryEnv=3D<optimized out>,
=C2=A0=C2=A0=C2=A0=C2=A0 dest=3D0x55ec24a6ea18, qc=3D0x7ffdbfb40f40) at uti= lity.c:523
#9=C2=A0 0x000055ec23c0e04e in PortalRunUtility
(portal=3Dportal@entry=3D0x55ec24b18108, pstmt=3D0x55ec24a9a9d8,
isTopLevel=3DisTopLevel@entry=3Dtrue,
setHoldSnapshot=3DsetHoldSnapshot@entry=3Dtrue,
dest=3Ddest@entry=3D0x55ec24a6ea18, qc=3Dqc@entry=3D0x7ffdbfb40f40)
=C2=A0=C2=A0=C2=A0=C2=A0 at pquery.c:1158
#10 0x000055ec23c0e3b7 in FillPortalStore
(portal=3Dportal@entry=3D0x55ec24b18108, isTopLevel=3DisTopLevel@entry=3Dtr= ue)
at pquery.c:1031
#11 0x000055ec23c0e6ee in PortalRun (portal=3Dportal@entry=3D0x55ec24b18108= ,
count=3Dcount@entry=3D9223372036854775807, isTopLevel=3DisTopLevel@entry=3D= true,
run_once=3Drun_once@entry=3Dtrue, dest=3Ddest@entry=3D0x55ec24a9aec8,
altdest=3Daltdest@entry=3D0x55ec24a9aec8,
=C2=A0=C2=A0=C2=A0=C2=A0 qc=3D0x7ffdbfb41130) at pquery.c:763
#12 0x000055ec23c0acca in exec_simple_query
(query_string=3Dquery_string@entry=3D0x55ec24a99e68 "CALL
test_proc5('abc');") at postgres.c:1274
#13 0x000055ec23c0caad in PostgresMain (dbname=3D<optimized out>, username=3D<optimized out>) at postgres.c:4680
#14 0x000055ec23c0687a in BackendMain (startup_data=3D<optimized out>= ,
startup_data_len=3D<optimized out>) at backend_startup.c:105
#15 0x000055ec23b766bf in postmaster_child_launch
(child_type=3Dchild_type@entry=3DB_BACKEND,
startup_data=3Dstartup_data@entry=3D0x7ffdbfb41354 "",
startup_data_len=3Dstartup_data_len@entry=3D4,
client_sock=3Dclient_sock@entry=3D0x7ffdbfb41390)
=C2=A0=C2=A0=C2=A0=C2=A0 at launch_backend.c:265
#16 0x000055ec23b7ab36 in BackendStartup
(client_sock=3Dclient_sock@entry=3D0x7ffdbfb41390) at postmaster.c:3593
#17 0x000055ec23b7adb0 in ServerLoop () at postmaster.c:1674
#18 0x000055ec23b7c20c in PostmasterMain (argc=3Dargc@entry=3D3,
argv=3Dargv@entry=3D0x55ec24a54030) at postmaster.c:1372
#19 0x000055ec23aacf9f in main (argc=3D3, argv=3D0x55ec24a54030) at main.c:= 197



--000000000000341b030619e76b2c--