Tom, after patching pg_upgrade now runs successfully. I noticed that this =
patch had been applied since yesterday to the REL9_2_STABLE so I also teste=
d with a git pull without the patch that appears to work also. I think iss=
ue has been resolved for me, thanks so much! You guys rock!
Mike Wilson
mfwilson@gmail.com
On Jul 17, 2012, at 9:31 PM, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
>> I am using git head for testing. Tom sees a few things odd in
>> load_directory() that might be causing some problems on Solaris, and
>> this is new code for 9.2 for Solaris, so that might explain it. I think
>> we need Tom to finish and then if you can grab our git source and test
>> that, it would be great!
>=20
> The only thing I see that looks likely to represent a platform-specific
> issue is the entrysize calculation. Mike, just out of curiosity, could
> you see if the attached patch makes things better for you?
>=20
> regards, tom lane
>=20
> diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
> index 1dd3722142c9e83c1ec228099c3a3fd302a2179b..c886a67df43792a1692eec6b3=
b90238413e9f844 100644
> *** a/contrib/pg_upgrade/file.c
> --- b/contrib/pg_upgrade/file.c
> *************** load_directory(const char *dirname, stru
> *** 259,265 ****
> return -1;
> }
>=20
> ! entrysize =3D sizeof(struct dirent) - sizeof(direntry->d_name) +
> strlen(direntry->d_name) + 1;
>=20
> (*namelist)[name_num] =3D (struct dirent *) malloc(entrysize);
> --- 259,265 ----
> return -1;
> }
>=20
> ! entrysize =3D offsetof(struct dirent, d_name) +
> strlen(direntry->d_name) + 1;
>=20
> (*namelist)[name_num] =3D (struct dirent *) malloc(entrysize);