Re: [BUG] CRASH: ECPGprepared_statement() and ECPGdeallocate_all() when connection is NULL

From: Nishant Sharma <nishant(dot)sharma(at)enterprisedb(dot)com>
To: Mahendra Singh Thalor <mahi6run(at)gmail(dot)com>
Cc: Shruthi Gowda <gowdashru(at)gmail(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [BUG] CRASH: ECPGprepared_statement() and ECPGdeallocate_all() when connection is NULL
Date: 2026-03-24 05:59:31
Message-ID: CADrsxdbb2fn1LACQShrQT0bNqSCQ3hSzEojb2tODhD0PmewDiA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here are some review comments on v3 patch:-

1.

Change in descriptor.c file - In my opinion, we can use `if(conn)` with
ecpg_raise, like other occurrence of ecpg_get_connection() call check in
this file, and not using ecpg_init(). Three reasons: a) Consistency in
checking conn after ecpg_get_connection() call in this file with if check.
b) We don't need to remove 'ecpg_init_sqlca(sqlca);' line due to call to
ecpg_init(). c) #2 comment below.
2.

If you agree with #1, then I see many other reasons for which
ECPGget_desc() returns and we can avoid ecpg_get_connection() call at top
of that function for those reasons and keep the check at the required
location only instead of moving at top of the function.
3.

I see there is one more location of ecpg_get_connection() call where
there is no check of NULL conn. In function ecpg_freeStmtCacheEntry() of
file prepare.c? I understand it's not required for a call in
ecpg_auto_prepare(), as the caller already validated that connection
string. But I think, conn in ecpg_freeStmtCacheEntry() is different from
the one that was validated.
4.

+1 to Mahindra, new test cases specific to the crash required for this
change?

Regards,
Nishant Sharma,
EDB, Pune.
https://www.enterprisedb.com/

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2026-03-24 06:00:20 Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion?
Previous Message Zsolt Parragi 2026-03-24 05:55:23 Re: log_checkpoints: count WAL segment creations from all processes