Hello,
Server crash was reported on running vacuum progress checker view on 32-bit machine.
Please find attached a fix for the same.
Crash was because 32 bit machine considers int8 as being passed by reference while creating the tuple descriptor. At the time of filling the tuple store, the code (heap_fill_tuple) checks this tuple descriptor before inserting the value into the tuple store. It finds the attribute type pass by reference and hence it treats the value as a pointer when it is not and thus it fails at the time of memcpy.
This happens because appropriate conversion function is not employed while storing the value of that particular attribute into the values array before copying it into tuple store.
- values[i+3] = UInt32GetDatum(beentry->st_progress_param[i]);
+ values[i+3] = Int64GetDatum(beentry->st_progress_param[i]);
Attached patch fixes this.
Thank you,
Rahila Syed