Hello Alvaro,
yeah, thanks, that's it. postgresql.conf had:
max_stack_depth = 8192 # min 100, size in KB
I don't know who put it at 8192. According to the fine manual at [1], it
should be set to something below 'ulimit -s', which gives 8192 on the
machine in question. I've now set it to 7000 and I also get a warning
instead of a SEGFAULT.
Thank you!
Markus
[1]:
http://www.postgresql.org/docs/8.1/interactive/runtime-config-resource.html
Alvaro Herrera wrote:
> Markus Schiltknecht wrote:
>> Hi,
>>
>> One of our PostgreSQL 8.1.5 databases constantly crashed on a certain
>> query (backend SEGFAULTs). I've figured the crashes were caused by a
>> very long IN() clause.
>>
>> You can easily reproduce the crash by feeding the output of the python
>> script below to your database.
>
> I'd argue that you have max_stack_depth set to an invalid value (higher
> than your true stack limit). I tried your example here on 8.1.5 and got
> this:
>
> alvherre=# \i foo
> CREATE TABLE
> psql:foo:2: ERROR: stack depth limit exceeded
> HINT: Increase the configuration parameter "max_stack_depth".
> DROP TABLE
>