Re: REL_13_STABLE Windows 10 Regression Failures

Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>

From: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Heath Lord <heath.lord@crunchydata.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-11-11T09:27:15Z
Lists: pgsql-bugs
On Wed, Nov 11, 2020 at 2:32 AM Andres Freund <andres@anarazel.de> wrote:

> High,
>
> On 2020-11-09 12:18:34 -0500, Tom Lane wrote:
> > Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> > > Hmm, line 202 is the ereport in this test:
> >
> > >         if (!IsA(expr, ColumnRef))
> > >             ereport(ERROR,
> > >                     (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> > >                      errmsg("only simple column references are allowed
> in CREATE STATISTICS")));
> >
> > > Not sure why that gives rise to the upper parts of the stack there.
> >
> > Yeah, it seems like the error-recovery longjmp has suddenly broken;
> > but why here?  There's nothing unusual about this specific error case.
>
> Perhaps PG_exception_stack got corrupted somehow? An oversized write to
> a neighboring var?
>
> Not sure if that works on mingw, but building with address sanitizer /
> asan might be informative.
>

This looks like a known issue in MinGW64 builds [1], which is derived from
an also known issue in MSVC's handling of setjmp/longjmp [2].

[1] https://sourceforge.net/p/mingw-w64/bugs/406/
[2] https://docs.microsoft.com/en-us/cpp/cpp/using-setjmp-longjmp

Regards,

Juan José Santamaría Flecha

Commits

  1. Work around issues in MinGW-64's setjmp/longjmp support.

  2. Remove large fill factor support from dynahash.c.

  3. Use the properly transformed RangeVar for expandTableLikeClause().