Re: Death by regexp_replace - Mailing list pgsql-hackers

From Jan de Visser
Subject Re: Death by regexp_replace
Date
Msg-id 5699107C.8000705@de-visser.net
Whole thread Raw
In response to Re: Death by regexp_replace  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On 2016-01-15 10:25 AM, Robert Haas wrote:
> On Fri, Jan 15, 2016 at 10:12 AM, Benedikt Grundmann
> <bgrundmann@janestreet.com> wrote:
>> Today we discovered that we had a backend whose client had gone away, the
>> automatic query watching process had send both pg_cancel and
>> pg_terminate_backend but nevertheless the process was sitting there
>> consuming resources and had been for over 1 day...
>>
>> gdb revealed that we were sitting in pg_regexec  (we forced it to return 16
>> aka invalid regex to return our system into a good state).
>>
>> Here is the regular expression and the text to run on:
>>
>> WARNING DO NOT DO THIS ON A PRODUCTION BOX
>>
>> select regexp_replace('VODI GR,VOD LN,VOD LN,VODN MM,VODPF US,VOD US,VZC
>> LN', '([^,]+)(,*\1)+', '\1');
>>
>> This was in postgres 9.2
> 9.2.what?  Tom just fixed a whole bunch of bugs in this area, so if
> you're running less than 9.2.14, please test whether this can be
> reproduced with that version.
>

I just tried this on 9.4.5 (stock Ubuntu 15.10 release), waited a minute 
and killed the backend.




pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Death by regexp_replace
Next
From: Tom Lane
Date:
Subject: Re: Death by regexp_replace