William Temperley wrote:Actually, that does not mean it's broken. It just says it can't find
> On Fri, May 9, 2008 at 2:55 PM, Magnus Hagander <magnus@hagander.net>
> wrote:
>
> > William Temperley wrote:
> > > On Thu, May 8, 2008 at 6:14 PM, Magnus Hagander
> > > <magnus@hagander.net> wrote:
> > > > William Temperley wrote:
> > > >> > >
> > > >> > > Any ideas why this might be happening, and how I can stop
> > > >> > > it?
> > > >> >
> > > >> > It'd be interesting to know what the stats collector is
> > > >> > actually doing. Could you, using Process Explorer or a
> > > >> > debugger, get a stack trace from that process while it's in
> > > >> > the trashing state?
> > > >> >
> > > >> > //Magnus
> > > >> >
> > > >>
> > > >> Certainly, but I'll have to wait 'til it does it again, it
> > > >> doesn't happen all the time.
> > > >> What would you like to know from Process Explorer?
> > > >
> > > > Get the backtrace from hung process. Find the process in the
> > > > list, open it. Go to the tab "Threads", find the thread that's
> > > > using a lot of CPU (or at least has a lot of ocntext switchs),
> > > > and click the Stack button. That should give you a window with
> > > > a backtrace.
> > > >
> > > > //Magnus
> > > >
> > >
> > > Ok, got the little blighter. Below are 4 stack traces taken at
> > > random times. Doesn't seem to be doing much I/O (16 reads and 167
> > > other in 3 hours). The memory usage seems to be static (3.7MB)
> > > even with high database usage (vacuum, read, update).
> >
> > Hmm. They all show the same function, but it's not a function being
> > used in the stats collector. I think I missed a step in the
> > instructions - you need to download the symbols for the server (make
> > sure you get the same version!) and configure process explorer to
> > use those (IIRC, it can use detached symbols), then do the same
> > things again. Sorry for missing that in the first instructions!
> >
> > //Magus
> >
>
>
> Hi Magnus,
>
> Sorry I didn't reply earlier (away on holiday). I can't seem to get
> the symbols to work -
> I can't find any way to attach symbols in process explorer, however
> windows debugger can. I've done this:
> 1. Downloaded the symbols (8.3.1!)
> 2. Set the path for windows debugger to find them
> 3. Atttached to the process (offending PID found from process
> explorer)
>
> Then I get this message:
>
> Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
> Copyright (c) Microsoft Corporation. All rights reserved.
>
> *** wait with pending attach
> Symbol search path is: C:\Temp\pgsymbols
> Executable search path is:
> ModLoad: 00400000 007da000 C:\Program
> Files\PostgreSQL\8.3\bin\postgres.exe
> ...........Lots more modload lines .....
> (eb4.3e4): Break instruction exception - code 80000003 (first chance)
> eax=7ffd4000 ebx=00000001 ecx=00000002 edx=00000003 esi=00000004
> edi=00000005
> eip=7c901230 esp=0235ffcc ebp=0235fff4 iopl=0 nv up ei pl zr
> na pe nc
> cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000
> efl=00000246
> *** ERROR: Symbol file could not be found. Defaulted to export
> symbols for C:\WINDOWS\system32\ntdll.dll -
> ntdll!DbgBreakPoint:
> 7c901230 cc int 3
>
> Any ideas?
symbols for where it was - but if this was in ntdll, that's fine. If
you bring up the full stacktrace at this point, does it contain proper
data?
//Magnus
Mystery solved, it was PCTools antivirus causing the problem.
It seems pctlsp.dll was interfering when the stats collector process -
Prolonged stepping into the hung process showed pctlsp.dll popping its head up now and then, and absolutely no postgres code was run at all. It was all happening within ntdll!LdrShutdownThread.
Uninstalling PCTools solved the problem and restored my faith in Postgres!
Will T