RE: libpq debug log

From: "tsunakawa(dot)takay(at)fujitsu(dot)com" <tsunakawa(dot)takay(at)fujitsu(dot)com>
To: "iwata(dot)aya(at)fujitsu(dot)com" <iwata(dot)aya(at)fujitsu(dot)com>
Cc: 'Alvaro Herrera' <alvherre(at)alvh(dot)no-ip(dot)org>, "'pgsql-hackers(at)lists(dot)postgresql(dot)org'" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: RE: libpq debug log
Date: 2021-01-25 09:20:29
Message-ID: TYAPR01MB2990B6C6A32ACF15D97AE94AFEBD0@TYAPR01MB2990.jpnprd01.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Iwata-san,

(25)
+ conn->fe_msg = malloc(sizeof(offsetof(pqFrontendMessage, fields)) +
+ DEF_FE_MSGFIELDS * sizeof(pqFrontendMessageField));

It's incorrect that offsetof() is nested in sizeof(). See my original review comment.

(26)
+bool
+pqTraceInit(PGconn *conn, bits32 flags)
+{
...
+ conn->be_msg->state = LOG_FIRST_BYTE;
+ conn->be_msg->length = 0;
+ }
...
+ conn->be_msg->state = LOG_FIRST_BYTE;
+ conn->be_msg->length = 0;

The former is redundant?

(27)
+/*
+ * Deallocate frontend-message tracking memory. We only do this because
+ * it can grow arbitrarily large, and skip it in the initial state, because
+ * it's likely pointless.
+ */
+void
+pqTraceUninit(PGconn *conn)
+{
+ if (conn->fe_msg &&
+ conn->fe_msg->num_fields != DEF_FE_MSGFIELDS)
+ {
+ pfree(conn->fe_msg);
+ conn->fe_msg = NULL;
+ }
+}

I thought this function plays the reverse role of pqTraceInit(), but it only frees memory for frontend messages. Plus, use free() instead of pfree(), because malloc() is used to allocate memory.

(28)
+void PQtrace(PGconn *conn, FILE *stream, bits32 flags);

bits32 can't be used because it's a data type defined in c.h, which should not be exposed to applications. I think you can just int or something.

Considering these and the compilation error Kirk-san found, I'd like you to do more self-review before I resume this review.

Regards
Takayuki Tsunakawa

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dilip Kumar 2021-01-25 09:23:18 Re: Is Recovery actually paused?
Previous Message Amit Langote 2021-01-25 09:19:56 Re: simplifying foreign key/RI checks