Thread: Crash on initdb in MSVC++

Crash on initdb in MSVC++

From
"Magnus Hagander"
Date:
HEAD built with msvc++ crashes on initdb. I'd appreciate any pointers as
to where to start looking...

Unhandled exception at 0x0046b9c7 in postgres.exe: 0xC0000005: Access
violation reading location 0x000006b3.

Backtrace:
>    postgres.exe!_bt_start_vacuum(RelationData * rel=0x0000067f)
Line 1000 + 0x3 bytes    C    postgres.exe!btbulkdelete(FunctionCallInfoData *
fcinfo=0x00d2f778)  Line 527 + 0x9 bytes    C    postgres.exe!OidFunctionCall3(unsigned int functionId=332,
unsigned long arg1=23780584, unsigned long arg2=64453888, unsigned long
arg3=62953160)  Line 1460 + 0xf bytes    C    postgres.exe!index_build(RelationData * heapRelation=0x016adce8,
RelationData * indexRelation=0x03d77d00, IndexInfo *
indexInfo=0x03c096c8, char isprimary=0, char istoast=0)  Line 1301 +
0x15 bytes    C    postgres.exe!build_indices()  Line 1249 + 0x1a bytes    C    postgres.exe!boot_yyparse()  Line 285
C    postgres.exe!BootstrapMain(int argc=4, char * * argv=0x0121241c) 
Line 487    C    postgres.exe!main(int argc=5, char * * argv=0x01212418)  Line
181 + 0xd bytes    C



The crash is on the line:vac->relid = rel->rd_lockInfo.lockRelId;

in _bt_start_vacuum().

From what I can tell, the entire rel pointer is invalid at this point,
because the debugger says "Expression cannot be evaluated" for all
fields in it, including simple ints.


//Magnus


Re: Crash on initdb in MSVC++

From
"Magnus Hagander"
Date:
Nevermind this whole mail. My .bki files weren't updated. (installed new
version of them in the wrong directory. Oops.) Updating  that to correct
files for HEAD mdae it pass again.

//Magnus


> HEAD built with msvc++ crashes on initdb. I'd appreciate any
> pointers as to where to start looking...
>
> Unhandled exception at 0x0046b9c7 in postgres.exe:
> 0xC0000005: Access violation reading location 0x000006b3.
>
> Backtrace:
> >    postgres.exe!_bt_start_vacuum(RelationData * rel=0x0000067f)
> Line 1000 + 0x3 bytes    C
>      postgres.exe!btbulkdelete(FunctionCallInfoData *
> fcinfo=0x00d2f778)  Line 527 + 0x9 bytes    C
>      postgres.exe!OidFunctionCall3(unsigned int
> functionId=332, unsigned long arg1=23780584, unsigned long
> arg2=64453888, unsigned long
> arg3=62953160)  Line 1460 + 0xf bytes    C
>      postgres.exe!index_build(RelationData *
> heapRelation=0x016adce8, RelationData *
> indexRelation=0x03d77d00, IndexInfo * indexInfo=0x03c096c8,
> char isprimary=0, char istoast=0)  Line 1301 +
> 0x15 bytes    C
>      postgres.exe!build_indices()  Line 1249 + 0x1a bytes    C
>      postgres.exe!boot_yyparse()  Line 285    C
>      postgres.exe!BootstrapMain(int argc=4, char * * argv=0x0121241c)
> Line 487    C
>      postgres.exe!main(int argc=5, char * * argv=0x01212418)  Line
> 181 + 0xd bytes    C
>
>
>
> The crash is on the line:
>     vac->relid = rel->rd_lockInfo.lockRelId;
>
> in _bt_start_vacuum().
>
> From what I can tell, the entire rel pointer is invalid at
> this point, because the debugger says "Expression cannot be
> evaluated" for all fields in it, including simple ints.
>
>
> //Magnus
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: explain analyze is your friend
>