Re: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE
Дата
Msg-id 2060083.1654794096@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE  (PG Bug reporting form <noreply@postgresql.org>)
Ответы RE: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE  ("okano.naoki@fujitsu.com" <okano.naoki@fujitsu.com>)
Список pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> Application with embedded SQL crashes with segmentation fault if I execute
> EXEC SQL PREPARE
> command before executing EXEC SQL CONNECT command (*1).
> I know that it is the correct operation to execute EXEC SQL CONNECT command
> first 
> and then execute EXEC SQL PREPARE command.
> But I expect this wrong operation to result in an error, not a crash.

We could do something like the attached, perhaps.  Having said that,
an application that includes no error checks is pretty unlikely to
fail gracefully :-(.

            regards, tom lane

diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c
index 8dfcabe3b5..90f2ba9701 100644
--- a/src/interfaces/ecpg/ecpglib/connect.c
+++ b/src/interfaces/ecpg/ecpglib/connect.c
@@ -40,6 +40,8 @@ ecpg_get_connection_nr(const char *connection_name)
     if ((connection_name == NULL) || (strcmp(connection_name, "CURRENT") == 0))
     {
 #ifdef ENABLE_THREAD_SAFETY
+        ecpg_pthreads_init();    /* ensure actual_connection_key is valid */
+
         ret = pthread_getspecific(actual_connection_key);

         /*
@@ -78,6 +78,8 @@ ecpg_get_connection(const char *connection_name)
     if ((connection_name == NULL) || (strcmp(connection_name, "CURRENT") == 0))
     {
 #ifdef ENABLE_THREAD_SAFETY
+        ecpg_pthreads_init();    /* ensure actual_connection_key is valid */
+
         ret = pthread_getspecific(actual_connection_key);

         /*

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: psql 15beta1 does not print notices on the console until transaction completes
Следующее
От: PG Bug reporting form
Дата:
Сообщение: BUG #17515: Change in behaviour of a composite type within a domain