![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
I finally had time to test this further on a variety of systems, and was unable to reproduce on any non-Windows platform. The dump even works fine on Windows XP; just not Windows 7. This prompted me to do a little more research, and this time I found this thread from Sept. 2011: http://postgresql.1045698.n5.nabble.com/ BUG-6233-pg-dump-hangs-with-Access-Violation-C0000005-td4851598.html From Tom Lane in the above thread: Hmm. I can see how that would happen if you're using one of the Windows environments wherein malloc's done inside libpq have to be free'd inside libpq. (The PQExpBuffer support code is in libpq...) However, the flaw in that explanation is that it would basically mean pg_dump doesn't work at all on Windows, at least not if you have any user-defined functions, and probably some other cases too because there seem to be multiple instances of the dubious coding. It's a bit hard to believe that nobody's noticed that before. This appears to describe exactly the issue I'm encountering, and my build is in fact linked against the static runtime. I guess the reason this hasn't come up sooner is because most Windows users either use the 'official' binaries rather than compiling from source, or link against the dynamic runtime. Is this something I could expect to be fixed in the near future, or is it enough of an edge case that I should come up with some solution or work-around on my own? Thanks, |
#2
| |||
| |||
|
|
On Tue, Jan 17, 2012 at 04:46:50PM -0500, David Schnur wrote: I finally had time to test this further on a variety of systems, and was unable to reproduce on any non-Windows platform. The dump even works fine on Windows XP; just not Windows 7. This prompted me to do a little more research, and this time I found this thread from Sept. 2011: http://postgresql.1045698.n5.nabble.com/ BUG-6233-pg-dump-hangs-with-Access-Violation-C0000005-td4851598.html From Tom Lane in the above thread: Hmm. I can see how that would happen if you're using one of the Windows environments wherein malloc's done inside libpq have to be free'd inside libpq. (The PQExpBuffer support code is in libpq...) However, the flaw in that explanation is that it would basically mean pg_dump doesn't work at all on Windows, at least not if you have any user-defined functions, and probably some other cases too because there seem to be multiple instances of the dubious coding. It's a bit hard to believe that nobody's noticed that before. This appears to describe exactly the issue I'm encountering, and my build is in fact linked against the static runtime. I guess the reason this hasn't come up sooner is because most Windows users either use the 'official' binaries rather than compiling from source, or link against the dynamic runtime. Is this something I could expect to be fixed in the near future, or is it enough of an edge case that I should come up with some solution or work-around on my own? Thanks, Late reply, but I don't see any way we could fix this easily. |
#3
| |||
| |||
|
|
On Mon, Aug 27, 2012 at 9:58 AM, Bruce Momjian <bruce (AT) momjian (DOT) us> wrote: From Tom Lane in the above thread: Hmm. I can see how that would happen if you're using one of the Windows environments wherein malloc's done inside libpq have to be free'd inside libpq. (The PQExpBuffer support code is in libpq...) Late reply, but I don't see any way we could fix this easily. To me it seems like mostly a case of chasing down all the places where this happens. It's not impossible to do; it's just a bunch of work that nobody's gotten excited about doing yet. We've fixed similar issues in many other cases, IIUC. |
![]() |
| Thread Tools | |
| Display Modes | |
| |