On Wed, Sep 20, 2023 at 11:00 AM Hayato Kuroda (Fujitsu) <kuroda.hay...@fujitsu.com> wrote: > > Dear Amit,
+int +count_old_cluster_logical_slots(void) +{ + int dbnum; + int slot_count = 0; + + for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++) + slot_count += old_cluster.dbarr.dbs[dbnum].slot_arr.nslots; + + return slot_count; +} In this code, aren't we assuming that 'slot_arr.nslots' will be zero for versions <=PG16? On my Windows machine, this value is not zero but rather some uninitialized negative value which makes its caller try to allocate some undefined memory and fail. I think you need to initialize this in get_old_cluster_logical_slot_infos() for lower versions. -- With Regards, Amit Kapila.