Skip site navigation (1) Skip section navigation (2)

Re: BUG #3266: SSL broken pipes kill the machine and fill the disk

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Peter Koczan <pjkoczan(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3266: SSL broken pipes kill the machine and fill the disk
Date: 2007-05-17 20:42:41
Message-ID: 464CBE41.9020208@hagander.net (view raw or flat)
Thread:
Lists: pgsql-bugs
This looks a lot like bug #2829 (excep that one is Windows), as I
mentioned here:
http://archives.postgresql.org/pgsql-hackers/2007-05/msg00461.php

Haven't looked into the actual code, though, but Tom had a suggestion in
the original bug, but AFAIK nobody has done that yet (at least not me.:)

//Magnus

Bruce Momjian wrote:
> I didn't see any comment on this.  Seems like a problem.
> 
> ---------------------------------------------------------------------------
> 
> Peter Koczan wrote:
>> The following bug has been logged online:
>>
>> Bug reference:      3266
>> Logged by:          Peter Koczan
>> Email address:      pjkoczan(at)gmail(dot)com
>> PostgreSQL version: 8.2.4
>> Operating system:   CentOS Linux 4.4 (RHEL 4) running on Pentium 4
>> Description:        SSL broken pipes kill the machine and fill the disk
>> Details: 
>>
>> If a connection using SSL is terminated on the client side before a query
>> completes, postgres keeps trying to write to the broken connection, shooting
>> CPU and load very high and filling the postgres syslog (I have that pointed
>> to /var/log/pglog) with ~2000 of the following messages per second.
>>
>> May 10 14:45:01 mitchell postgres[10340]: [15729-1] LOG:  SSL SYSCALL error:
>> Broken pipe
>>
>> This quickly fills up the /var partition on the server.
>>
>> To replicate the problem:
>> 1. Connect to an running server using an SSL connection. Using psql is
>> fine.
>> 2. Begin a query on any table. For full effect the query should be expensive
>> and large.
>> 3. Kill psql *on the client side* BEFORE the query finishes (don't do
>> anything to the server side connection).
>> 4. 'tail -f' wherever the postgres server output and error is going to.
>> 5. Wait a few seconds while the server gets all of its data.
>> 6. See thousands of error messages fill up your terminal on the server.
>>
>> This has also happened when people stop web browsers in the middle of
>> serving up a postgresql-driven web page, but this is harder to replicate.
>>
>> This usually terminates, but after 3 hours for a query that usually takes 20
>> seconds. During this time, the server is slow to the point of unusable.
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 6: explain analyze is your friend
> 


In response to

Responses

pgsql-bugs by date

Next:From: Magnus HaganderDate: 2007-05-17 20:44:29
Subject: Re: BUG #3288: Select command giving error
Previous:From: Christian KratzerDate: 2007-05-17 19:57:18
Subject: Re: strange problem with ip6

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group