Re: Fwd: 8.0 Beta3 worked, RC1 didn't!
Bruce Momjian <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.devel.win32 |
|---|---|
| Message-ID | <[email protected]> |
Tom Lane wrote: > "Magnus Hagander" <[email protected]> writes: > > Tom, > > why is DC000000 so low? That's still 10Mb into the process, right? Granted, it's not high, but it's not *that* low. (A simple test program with all parameters at default get it's first address allocated at 003D2438 for me. A freshly MapViewOfFile()d memory ends up at 003f0000. If I go for a larger test block (such as 50Mb), the mapped memory is moved up to 004d0000. I get very simlar results on XP and 2003. > > The question is not whether it's "low", it's whether there's any > daylight between the end of memory in a postmaster/backend image and > where the shmem segment gets placed. > > On Unix, shmat() is supposed to leave a lot of room between the data > break address and where it puts shmem, so that malloc still has room to > play in. I suspect that Windows is willing to malloc() memory above the > shmem segment and so thinks that it doesn't need to leave any daylight > there, other than rounding off to a page boundary for hardware reasons. > If the backend process malloc's a bit more space than the postmaster did > before trying to attach, we got trouble. > > It's not clear to me exactly *why* the backend would allocate any more > space than the postmaster did, but that's my working hypothesis at the > moment. What if we malloc 100k just before we create the postmaster segment and then free it and see if that fixes the postgres.exe problem? -- Bruce Momjian | http://candle.pha.pa.us [email protected] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend