RE: [PoC] pg_upgrade: allow to upgrade publisher node - Mailing list pgsql-hackers

From Hayato Kuroda (Fujitsu)
Subject RE: [PoC] pg_upgrade: allow to upgrade publisher node
Date
Msg-id TYCPR01MB587017DB0040C11BE458D153F51EA@TYCPR01MB5870.jpnprd01.prod.outlook.com
Whole thread Raw
In response to RE: [PoC] pg_upgrade: allow to upgrade publisher node  ("Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>)
List pgsql-hackers
Dear Hou,

Thank you for reviewing! The patch can be available in [1].

> 1.
> 
> +check_for_lost_slots(ClusterInfo *cluster)
> +{
> +    int            i,
> +                ntups,
> +                i_slotname;
> +    PGresult   *res;
> +    DbInfo       *active_db = &cluster->dbarr.dbs[0];
> +    PGconn       *conn = connectToServer(cluster, active_db->db_name);
> +
> +    /* logical slots can be migrated since PG17. */
> +    if (GET_MAJOR_VERSION(cluster->major_version) <= 1600)
> +        return;
> 
> I think we should build connection after this check, otherwise the connection
> may be left open after returning.

Fixed.

> 2.
> +check_for_confirmed_flush_lsn(ClusterInfo *cluster)
> +{
> +    int            i,
> +                ntups,
> +                i_slotname;
> +    PGresult   *res;
> +    DbInfo       *active_db = &cluster->dbarr.dbs[0];
> +    PGconn       *conn = connectToServer(cluster, active_db->db_name);
> +
> +    /* logical slots can be migrated since PG17. */
> +    if (GET_MAJOR_VERSION(cluster->major_version) <= 1600)
> +        return;
> 
> Same as above.

Fixed.

> 3.
> +                if
> (GET_MAJOR_VERSION(cluster->major_version) >= 17)
> +                {
> 
> I think you mean 1700 here.

Right, fixed.

> 4.
> +                    p = strpbrk(p,
> "01234567890ABCDEF");
> +
> +                    /*
> +                     * Upper and lower part of LSN must
> be read separately
> +                     * because it is reported as %X/%X
> format.
> +                     */
> +                    upper_lsn = strtoul(p, &slash, 16);
> +                    lower_lsn = strtoul(++slash, NULL,
> 16);
> 
> Maybe we'd better add a sanity check after strpbrk like "if (p == NULL ||
> strlen(p) <= 1)" to be consistent with other similar code.

Added.

[1]:
https://www.postgresql.org/message-id/TYCPR01MB5870B5C0FE0C61CD04CBD719F51EA%40TYCPR01MB5870.jpnprd01.prod.outlook.com

Best Regards,
Hayato Kuroda
FUJITSU LIMITED


pgsql-hackers by date:

Previous
From: "Hayato Kuroda (Fujitsu)"
Date:
Subject: RE: [PoC] pg_upgrade: allow to upgrade publisher node
Next
From: Ashutosh Bapat
Date:
Subject: Re: persist logical slots to disk during shutdown checkpoint