Uninterruptable regexp_replace in 9.3.1 ? - Mailing list pgsql-hackers

From Sandro Santilli
Subject Uninterruptable regexp_replace in 9.3.1 ?
Date
Msg-id 20140221091759.GK6924@localhost
Whole thread Raw
Responses Re: Uninterruptable regexp_replace in 9.3.1 ?  (Sandro Santilli <strk@keybit.net>)
Re: Uninterruptable regexp_replace in 9.3.1 ?  (Craig Ringer <craig@2ndquadrant.com>)
List pgsql-hackers
The following snippet reveals that 9.3.1 has a bug 
in regexp_matches, which uninterruptably keeps CPU
spinning for minutes:

-----8<---------------------------------------------------

\timing
SET statement_timeout = 2;
-- this is only to show statement_timeout is effective here
SELECT count(*) from generate_series(1, 100000);
-- this one is uninterruptable!
SELECT regexp_matches($INPUT$







   /a   $b$   $c$d   ;
$INPUT$,
$REG$((?:[^'"$;]+|"[^"]*"|'(?:[^']*|'')*'|(\$[^$]*\$).*?\2)+)$REG$, 'g' );

-----8<---------------------------------------------------

The above has been tested to be harmless with PostgreSQL 9.1.11
in that the regexp_matches call is interrupted, but it is NOT
with PostgreSQL 9.3.1.

Is it a known bug ?

Please include my address in replies as I don't get notified
of list activity. Thanks.

--strk; 
()  ASCII ribbon campaign  --  Keep it simple !/\  http://strk.keybit.net/rants/ascii_mails.txt  



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: walsender doesn't send keepalives when writes are pending
Next
From: Sandro Santilli
Date:
Subject: Re: Uninterruptable regexp_replace in 9.3.1 ?