Re: BUG #6460: routine my_log2 use incorrect data type ?

From: zoulx1982 <zoulx1982(at)163(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6460: routine my_log2 use incorrect data type ?
Date: 2012-02-18 08:34:21
Message-ID: 3549bc9d.174da.1358f98f9b7.Coremail.zoulx1982@163.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

yes, I build it by myself, and the version is 9.1.2, following is my build process.
1. in Visual Studio 2008 x64 cmd, exec "set CONFIG=DEBUG"
2. exec "build" , and i see "Detected hardware platform: x64"
3. exec "perl install.pl install2 Debug"
4. cd ****/install2
5. initdb a data dir, "initdb.exe -Atrust -USYSTEM --no-locale -D ../data"
6. startup postgres ""postgres" -D "../data" -c shared_buffers=1073741819"

above is my build process, and whether one of these steps incorrect ?

here is stack info
postgres.exe!my_log2(long num=1073741835) 行1397 + 0x1e 字节 C
postgres.exe!hash_estimate_size(long num_entries=1073741835, unsigned __int64 entrysize=24) 行626 + 0x9 字节 C
postgres.exe!BufTableShmemSize(int size=1073741835) 行46 C
postgres.exe!StrategyShmemSize() 行287 + 0xe 字节 C
postgres.exe!BufferShmemSize() 行175 + 0x5 字节 C
postgres.exe!CreateSharedMemoryAndSemaphores(char makePrivate=0, int port=5432) 行107 + 0x5 字节 C
postgres.exe!reset_shared(int port=5432) 行2122 C
postgres.exe!PostmasterMain(int argc=5, char * * argv=0x0000000000873590) 行971 C
postgres.exe!main(int argc=5, char * * argv=0x0000000000873590) 行199 + 0xe 字节 C


best wishes

At 2012-02-18 06:27:04,"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>zoulx1982(at)163(dot)com writes:
>> I startup postgres in win server 2008 64-bit with
>> shared_buffers=1073741819, but find it doesn't work.
>
>Well, that's hardly the fault of my_log2. What you should have gotten
>is
>
>FATAL: requested shared memory size overflows size_t
>
>and I do get that when I try that value. Apparently the overflow check
>in mul_size() is broken in your build. Did you build it yourself, and
>if so with which compiler and what compilation options? If you didn't
>build it yourself, where did you get it from?
>
>> size_t in win64 is 8 bytes, so add_size and mul_size can't check overflow,
>
>Sure they can. Or at least if they can't, it's not because of size_t
>being 8 bytes. That code works fine on every other 64-bit platform.
>
> regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message khalil.alijani 2012-02-18 10:16:53 BUG #6463: tables can have at most 1600 columns
Previous Message zoulx1982 2012-02-18 08:28:56 回复:Re: BUG #6460: routine my_log2 use incorrect data type ?