From: | Joe Sunday <sunday(at)csh(dot)rit(dot)edu> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Large join runs out of memory in 8.1 |
Date: | 2006-03-15 17:48:59 |
Message-ID: | 20060315174858.GA9188@csh.rit.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Tue, Mar 14, 2006 at 11:29:57PM -0500, Tom Lane wrote:
> It's not the easiest sort of problem to debug :-( ...
>
> What I'd try is first letting the problem case run for a bit, then
> stopping it with gdb and dumping out a few Kb of the frontmost memory
> block in the ExecutorState context. Sometimes, looking at the data
Can you point me a little more in that direction? I can't figure out how
to get a handle to that context.
> that's being leaked is enough to give you a clue. If not, try setting a
> breakpoint at AllocSetAlloc and trying to see where the majority of
> calls are coming from. It'll be tedious ...
This is the pattern I seemed to get:
3 calls here:
#0 0x1021aa80 in AllocSetAlloc ()
#1 0x1021ba0c in MemoryContextAlloc ()
#2 0x1016de48 in BufFileCreateTemp ()
#3 0x100fcbb4 in ExecHashJoinSaveTuple ()
#4 0x100fbe44 in ExecHashTableInsert ()
#5 0x100fc858 in MultiExecHash ()
#6 0x100ef6d8 in MultiExecProcNode ()
#7 0x100fd800 in ExecHashJoin ()
#8 0x100ef8a8 in ExecProcNode ()
#9 0x100edea8 in ExecutorRun ()
#10 0x1018519c in ProcessQuery ()
#11 0x10185850 in PortalRun ()
#12 0x1018084c in exec_simple_query ()
#13 0x101825b0 in PostgresMain ()
#14 0x1015510c in ServerLoop ()
#15 0x10155d80 in PostmasterMain ()
#16 0x101101e8 in main ()
1 call here:
#0 0x1021aa80 in AllocSetAlloc ()
#1 0x1021bb1c in MemoryContextAllocZero ()
#2 0x100324d4 in heap_form_tuple ()
#3 0x100f5810 in ExecCopySlotTuple ()
#4 0x100f5c04 in ExecMaterializeSlot ()
#5 0x100fc848 in MultiExecHash ()
#6 0x100ef6d8 in MultiExecProcNode ()
#7 0x100fd800 in ExecHashJoin ()
#8 0x100ef8a8 in ExecProcNode ()
#9 0x100edea8 in ExecutorRun ()
#10 0x1018519c in ProcessQuery ()
#11 0x10185850 in PortalRun ()
#12 0x1018084c in exec_simple_query ()
#13 0x101825b0 in PostgresMain ()
#14 0x1015510c in ServerLoop ()
#15 0x10155d80 in PostmasterMain ()
#16 0x101101e8 in main ()
1 call here:
#0 0x1021aa80 in AllocSetAlloc ()
#1 0x1021ba0c in MemoryContextAlloc ()
#2 0x1016c530 in make_database_relative ()
#3 0x1016cf7c in FileNameOpenFile ()
#4 0x1016d02c in OpenTemporaryFile ()
#5 0x1016de10 in BufFileCreateTemp ()
#6 0x100fcbb4 in ExecHashJoinSaveTuple ()
#7 0x100fbe44 in ExecHashTableInsert ()
#8 0x100fc858 in MultiExecHash ()
#9 0x100ef6d8 in MultiExecProcNode ()
#10 0x100fd800 in ExecHashJoin ()
#11 0x100ef8a8 in ExecProcNode ()
#12 0x100edea8 in ExecutorRun ()
#13 0x1018519c in ProcessQuery ()
#14 0x10185850 in PortalRun ()
#15 0x1018084c in exec_simple_query ()
#16 0x101825b0 in PostgresMain ()
#17 0x1015510c in ServerLoop ()
#18 0x10155d80 in PostmasterMain ()
#19 0x101101e8 in main ()
Repeat.
--Joe
--
Joe Sunday <sunday(at)csh(dot)rit(dot)edu> http://www.csh.rit.edu/~sunday/
Computer Science House, Rochester Inst. Of Technology
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-03-15 18:10:41 | Re: Large join runs out of memory in 8.1 |
Previous Message | Lin, B (Bill) | 2006-03-15 11:55:12 | Re: Random hang during commit |