| From: | Mike Mascari <mascarm(at)mascari(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: CTTAS w/ DISTINCT ON crashes backend | 
| Date: | 2004-01-21 23:34:36 | 
| Message-ID: | 400F0C8C.70902@mascari.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general pgsql-hackers | 
Tom Lane wrote:
>>In a nutshell:
>>
>>CREATE TEMPORARY TABLE foo AS
>>SELECT DISTINCT ON (x, y, z) *
>>FROM bar;
>>
>>crashes the backend and screws up data pages associated with the catalog under
>>7.4.1.
>>    
>>
>
>Works for me ...
>  
>
...
>Perhaps providing a specific test case would help.
>  
>
Could you give me a bit of direction?
I dumped the data associated with the tables involved from database 
"Development", loaded them into a new database "Test" and ran the script 
which causes the backend to crash and it worked fine, no errors. This 
was on the same machine.
I then run the same script against the database "Development" (from 
which I had just dumped the data and relevant schema for "Test") and I 
get a crashed backend. Here's a backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x0806fb52 in nocachegetattr ()
#0  0x0806fb52 in nocachegetattr ()
#1  0x0810186e in execTuplesMatch ()
#2  0x081115dc in ExecUnique ()
#3  0x08104cf8 in ExecProcNode ()
#4  0x0810356d in ExecutePlan ()
#5  0x08102968 in ExecutorRun ()
#6  0x08178682 in ProcessQuery ()
#7  0x08179144 in PortalRunMulti ()
#8  0x08178afb in PortalRun ()
#9  0x08175545 in exec_simple_query ()
#10 0x08177c09 in PostgresMain ()
#11 0x08151b9b in BackendFork ()
#12 0x081515a3 in BackendStartup ()
#13 0x0814faa8 in ServerLoop ()
#14 0x0814f171 in PostmasterMain ()
#15 0x0811f5b5 in main ()
#16 0x42015967 in __libc_start_main () from /lib/i686/libc.so.6
(gdb)
I don't get it. I had received this error in the "Development" database 
while running the application. I thought perhaps it was bad blocks or 
flaky RAM. So I *wiped out* the database cluster after running fsck and 
restored from the "Production" database dump copied from another 
machine. I ran the application again and it crashed at the exact same place.
I can send you the query and the schema, but as I've said, when I load 
the schema & data associated with the tables and views involved with 
this query from "Development" into a new "Test" database in the same 
cluster, it executes fine???
I'll try and dump the entire database and restore it on a third machine 
and see if the query crashes that backend as well. But it will take a 
bit of time. If it does crash  what does that mean? If not, what does 
that mean?
Mike Mascari
| From | Date | Subject | |
|---|---|---|---|
| Next Message | scott.marlowe | 2004-01-21 23:47:57 | Re: postgresql + apache under heavy load | 
| Previous Message | Kragen Sitaker | 2004-01-21 23:19:08 | varchar_pattern_ops in 7.3.4? | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-01-21 23:51:56 | Re: CTTAS w/ DISTINCT ON crashes backend | 
| Previous Message | Merlin Moncure | 2004-01-21 20:14:36 | Re: Allow backend to output result sets in XML |