From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Jeevan Chalke <jeevan(dot)chalke(at)enterprisedb(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Kevin Grittner <kevin(dot)grittner(at)enterprisedb(dot)com> |
Subject: | Re: REFRESH MATERIALIZED VIEW command in PL block hitting Assert |
Date: | 2013-04-22 13:11:53 |
Message-ID: | 20130422131153.GF4052@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2013-04-22 18:35:04 +0530, Jeevan Chalke wrote:
> Hi,
>
> I have observed that following sequence is causing server crash.
>
> CREATE MATERIALIZED VIEW temp_class_mv AS
> SELECT * FROM pg_class
> WITH NO DATA;
>
> CREATE OR REPLACE FUNCTION test_refresh_mv()
> RETURNS int
> AS $$
> BEGIN
> REFRESH MATERIALIZED VIEW temp_class_mv;
> return 1;
> END; $$ LANGUAGE plpgsql;
>
> SELECT test_refresh_mv();
>
>
> I had a quick look over the crash and it is hitting following Assert in
> spi.c:
>
> else if (IsA(stmt, RefreshMatViewStmt))
> {
> Assert(strncmp(completionTag,
> "REFRESH MATERIALIZED VIEW ", 23) == 0);
> _SPI_current->processed = strtoul(completionTag + 23,
> NULL, 10);
> }
>
> It seems like we are missing expected value for completionTag in
> ExecRefreshMatView()
Possibly independent from this issue, but where did that 23 come from?
ISTM we're strtoul()ing "EW somenumber" here.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Jeevan Chalke | 2013-04-22 13:58:12 | Re: REFRESH MATERIALIZED VIEW command in PL block hitting Assert |
Previous Message | Jeevan Chalke | 2013-04-22 13:05:04 | REFRESH MATERIALIZED VIEW command in PL block hitting Assert |