BUG #5348: Postgres crashes with index on xpath_string
The following bug has been logged online:
Bug reference: 5348
Logged by: Thomas Kellerer
Email address: thomas@kellerer.name
PostgreSQL version: 8.4.2
Operating system: Windows XP
Description: Postgres crashes with index on xpath_string
Details:
With the contrib module xml2 (pgxml.sql) installed, run the following
script:
create table t1 (id integer, xml_data xml);
insert into t1 (id, xml_data)
values
(1, '<attributes><attribute name="attr_1">Some
Value</attribute></attributes>');
create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]/text()', xml_data::text));
This will crash the backend.
The entry in the logfile is:
2010-02-27 17:21:28 CET STATEMENT: create index idx_xpath on t1 (
xpath_value ('/attributes/attribute[@name="attr_1"]/text()',
xml_data::text))
2010-02-27 17:21:55 CET LOG: server process (PID 2544) was terminated by
exception 0xC0000005
2010-02-27 17:21:55 CET HINT: See C include file "ntstatus.h" for a
description of the hexadecimal value.
2010-02-27 17:21:55 CET LOG: terminating any other active server processes
2010-02-27 17:21:55 CET LOG: all server processes terminated;
reinitializing
When restarting the server, the following messages are written to the
logfile:
2010-02-27 17:22:05 CET FATAL: pre-existing shared memory block is still in
use
2010-02-27 17:22:05 CET HINT: Check if there are any old server processes
still running, and terminate them.
2010-02-27 17:22:22 CET LOG: database system was interrupted; last known up
at 2010-02-27 16:22:32 CET
2010-02-27 17:22:22 CET LOG: database system was not properly shut down;
automatic recovery in progress
2010-02-27 17:22:22 CET LOG: redo starts at 3/B77FAB28
2010-02-27 17:22:22 CET LOG: unexpected pageaddr 3/95850000 in log file 3,
segment 183, offset 8716288
2010-02-27 17:22:22 CET LOG: redo done at 3/B784F758
2010-02-27 17:22:22 CET LOG: last completed transaction was at log time
2010-02-27 17:21:20.382+01
2010-02-27 17:22:23 CET FATAL: the database system is starting up
2010-02-27 17:22:23 CET LOG: database system is ready to accept
connections
2010-02-27 17:22:24 CET LOG: autovacuum launcher started
When the following index is created, things seem to work (at least the
backend is not crashing)
create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]', xml_data::text))
(note the missing text() in the xpath)
Yes, we have received a few reports about this and are working on a fix.
---------------------------------------------------------------------------
Thomas Kellerer wrote:
The following bug has been logged online:
Bug reference: 5348
Logged by: Thomas Kellerer
Email address: thomas@kellerer.name
PostgreSQL version: 8.4.2
Operating system: Windows XP
Description: Postgres crashes with index on xpath_string
Details:With the contrib module xml2 (pgxml.sql) installed, run the following
script:create table t1 (id integer, xml_data xml);
insert into t1 (id, xml_data)
values
(1, '<attributes><attribute name="attr_1">Some
Value</attribute></attributes>');create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]/text()', xml_data::text));This will crash the backend.
The entry in the logfile is:
2010-02-27 17:21:28 CET STATEMENT: create index idx_xpath on t1 (
xpath_value ('/attributes/attribute[@name="attr_1"]/text()',
xml_data::text))
2010-02-27 17:21:55 CET LOG: server process (PID 2544) was terminated by
exception 0xC0000005
2010-02-27 17:21:55 CET HINT: See C include file "ntstatus.h" for a
description of the hexadecimal value.
2010-02-27 17:21:55 CET LOG: terminating any other active server processes
2010-02-27 17:21:55 CET LOG: all server processes terminated;
reinitializingWhen restarting the server, the following messages are written to the
logfile:2010-02-27 17:22:05 CET FATAL: pre-existing shared memory block is still in
use
2010-02-27 17:22:05 CET HINT: Check if there are any old server processes
still running, and terminate them.
2010-02-27 17:22:22 CET LOG: database system was interrupted; last known up
at 2010-02-27 16:22:32 CET
2010-02-27 17:22:22 CET LOG: database system was not properly shut down;
automatic recovery in progress
2010-02-27 17:22:22 CET LOG: redo starts at 3/B77FAB28
2010-02-27 17:22:22 CET LOG: unexpected pageaddr 3/95850000 in log file 3,
segment 183, offset 8716288
2010-02-27 17:22:22 CET LOG: redo done at 3/B784F758
2010-02-27 17:22:22 CET LOG: last completed transaction was at log time
2010-02-27 17:21:20.382+01
2010-02-27 17:22:23 CET FATAL: the database system is starting up
2010-02-27 17:22:23 CET LOG: database system is ready to accept
connections
2010-02-27 17:22:24 CET LOG: autovacuum launcher startedWhen the following index is created, things seem to work (at least the
backend is not crashing)create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]', xml_data::text))(note the missing text() in the xpath)
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
PG East: http://www.enterprisedb.com/community/nav-pg-east-2010.do
+ If your life is a hard drive, Christ can be your backup. +
Thanks for the feedback.
Is the problem specific to 8.4.2 or to the Windows platform (or both)?
Regards
Thomas
Bruce Momjian, 27.02.2010 18:42:
Show quoted text
Yes, we have received a few reports about this and are working on a fix.
---------------------------------------------------------------------------
Thomas Kellerer wrote:
The following bug has been logged online:
Bug reference: 5348
Logged by: Thomas Kellerer
Email address: thomas@kellerer.name
PostgreSQL version: 8.4.2
Operating system: Windows XP
Description: Postgres crashes with index on xpath_string
Details:With the contrib module xml2 (pgxml.sql) installed, run the following
script:create table t1 (id integer, xml_data xml);
insert into t1 (id, xml_data)
values
(1, '<attributes><attribute name="attr_1">Some
Value</attribute></attributes>');create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]/text()', xml_data::text));This will crash the backend.
The entry in the logfile is:
2010-02-27 17:21:28 CET STATEMENT: create index idx_xpath on t1 (
xpath_value ('/attributes/attribute[@name="attr_1"]/text()',
xml_data::text))
2010-02-27 17:21:55 CET LOG: server process (PID 2544) was terminated by
exception 0xC0000005
2010-02-27 17:21:55 CET HINT: See C include file "ntstatus.h" for a
description of the hexadecimal value.
2010-02-27 17:21:55 CET LOG: terminating any other active server processes
2010-02-27 17:21:55 CET LOG: all server processes terminated;
reinitializingWhen restarting the server, the following messages are written to the
logfile:2010-02-27 17:22:05 CET FATAL: pre-existing shared memory block is still in
use
2010-02-27 17:22:05 CET HINT: Check if there are any old server processes
still running, and terminate them.
2010-02-27 17:22:22 CET LOG: database system was interrupted; last known up
at 2010-02-27 16:22:32 CET
2010-02-27 17:22:22 CET LOG: database system was not properly shut down;
automatic recovery in progress
2010-02-27 17:22:22 CET LOG: redo starts at 3/B77FAB28
2010-02-27 17:22:22 CET LOG: unexpected pageaddr 3/95850000 in log file 3,
segment 183, offset 8716288
2010-02-27 17:22:22 CET LOG: redo done at 3/B784F758
2010-02-27 17:22:22 CET LOG: last completed transaction was at log time
2010-02-27 17:21:20.382+01
2010-02-27 17:22:23 CET FATAL: the database system is starting up
2010-02-27 17:22:23 CET LOG: database system is ready to accept
connections
2010-02-27 17:22:24 CET LOG: autovacuum launcher startedWhen the following index is created, things seem to work (at least the
backend is not crashing)create index idx_xpath on t1 ( xpath_string
('/attributes/attribute[@name="attr_1"]', xml_data::text))(note the missing text() in the xpath)
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
On Fri, Mar 5, 2010 at 3:52 AM, Thomas Kellerer
<bestellung@kellerer.name> wrote:
Thanks for the feedback.
Is the problem specific to 8.4.2 or to the Windows platform (or both)?
Neither, actually.
...Robert
Robert Haas wrote:
On Fri, Mar 5, 2010 at 3:52 AM, Thomas Kellerer
<bestellung@kellerer.name> wrote:Thanks for the feedback.
Is the problem specific to 8.4.2 or to the Windows platform (or both)?
Neither, actually.
The fix will be in the next minor Postgres release. Keep an eye out for
it when it is announced.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
PG East: http://www.enterprisedb.com/community/nav-pg-east-2010.do