Re: Perl 5.10 vs. PG 8.4 on Win32 - Mailing list pgsql-bugs
From | Dave Page |
---|---|
Subject | Re: Perl 5.10 vs. PG 8.4 on Win32 |
Date | |
Msg-id | 937d27e10905150915h627d0aa5x340b51f7a0dcb1f1@mail.gmail.com Whole thread Raw |
In response to | Re: Perl 5.10 vs. PG 8.4 on Win32 (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Perl 5.10 vs. PG 8.4 on Win32
|
List | pgsql-bugs |
On Fri, May 15, 2009 at 3:47 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Dave Page <dpage@pgadmin.org> writes: >> On Fri, May 15, 2009 at 3:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> Ho, that's pretty curious. =A0The first two messages are the trace of t= he >>> atexit hook I recently installed, which means something called exit() >>> or the moral equivalent thereof. =A0I wouldn't really expect that to >>> happen in a crash situation ... is Windows dumb enough to try to run >>> the atexit hooks of a crashed process? > >> Hmm, the MSDN docs don't say whether or not it will. A quick test, >> forcing a crash by writing beyond the end of a char array shows that >> it does follow spec and doesn't call the hooks. > > Try setting a breakpoint at atexit_callback() and seeing how it got > there in the CREATE LANGUAGE test case. Getting past the exception to get to the atexit_callback() breakpoint in the debugger is proving a little tricky right now (and I have to leave for the moment), so I'll play with that some more later. Couldn't the callback have been called by another process though? The crash did bring down the entire server, so assume other backends would have terminated normally on the postmasters instruction. Anyhoo, here's the backtrace for the actual problem: ... perl510.dll!28028026()=20=09 > plperl.dll!plperl_init_interp() Line 452 C plperl.dll!_PG_init() Line 229 C postgres.exe!internal_load_library(const char * libname=3D0x01372048) Line 287 C postgres.exe!load_external_function(char * filename=3D0x013710d8, char * funcname=3D0x01372bf0, char signalNotFound=3D' ', void * * filehandle=3D0x00caf678) Line 116 C postgres.exe!fmgr_c_validator(FunctionCallInfoData * fcinfo=3D0x00caf600) Line 647 C postgres.exe!OidFunctionCall1(unsigned int functionId=3D2247, unsigned long arg1=3D40962) Line 1561 + 0x2f bytes C postgres.exe!ProcedureCreate(const char * procedureName=3D0x01372120, unsigned int procNamespace=3D11, char replace=3D0, char returnsSet=3D0, unsigned int returnType=3D2280, unsigned int languageObjectId=3D13, unsigned int languageValidator=3D2247, const char * prosrc=3D0x01372120, const char * probin=3D0x01372a68, char isAgg=3D0, char isWindowFunc=3D0, char security_definer=3D0, char isStrict=3D0, char volatility=3D'v', oidvector * parameterTypes=3D0x01372ac8, unsigned long allParameterTypes=3D0, unsigned long parameterModes=3D0, unsigned long parameterNames=3D0, List * parameterDefaults=3D0x00000000, unsigned long proconfig=3D0, float procost=3D1.0000000, float prorows=3D0.00000000) Line 550 + 0x7 bytes C postgres.exe!CreateProceduralLanguage(CreatePLangStmt * stmt=3D0x0132c960) Line 154 + 0x52 bytes C postgres.exe!ProcessUtility(Node * parsetree=3D0x0132c960, const char * queryString=3D0x0132c118, ParamListInfoData * params=3D0x00000000, char isTopLevel=3D' ', _DestReceiver * dest=3D0x0132cb10, char * completionTag=3D0x00cafbc0) Line 961 + 0x6 bytes C postgres.exe!PortalRunUtility(PortalData * portal=3D0x00000000, Node * utilityStmt=3D0x00000000, char isTopLevel=3D' ', _DestReceiver * dest=3D0x0132cb10, char * completionTag=3D0x00cafbc0) Line 1200 C postgres.exe!PortalRunMulti(PortalData * portal=3D0x00000000, char isTopLevel=3D' ', _DestReceiver * dest=3D0x0132cb10, _DestReceiver * altdest=3D0x0132cb10, char * completionTag=3D0x00cafbc0) Line 1299 + 0x11 bytes C postgres.exe!PortalRun(PortalData * portal=3D0x01372fc0, long count=3D2147483647, char isTopLevel=3D' ', _DestReceiver * dest=3D0x0132cb10, _DestReceiver * altdest=3D0x0132cb10, char * completionTag=3D0x00cafbc0) Line 824 + 0x17 bytes C postgres.exe!exec_simple_query(const char * query_string=3D0x00000000) Line 998 C postgres.exe!PostgresMain(int argc=3D4, char * * argv=3D0x012d5378, const char * username=3D0x01115128) Line 3610 C postgres.exe!BackendRun(Port * port=3D0x00cafd48) Line 3390 C postgres.exe!SubPostmasterMain(int argc=3D3, char * * argv=3D0x01112950) Line 3862 + 0x8 bytes C postgres.exe!main(int argc=3D3, char * * argv=3D0x01112950) Line 165 + 0x7 bytes C postgres.exe!__tmainCRTStartup() Line 597 + 0x17 bytes C --=20 Dave Page EnterpriseDB UK: http://www.enterprisedb.com
pgsql-bugs by date: