On Fri, Apr 1, 2011 at 16:56, Rushabh Lathia <rushabh.lat...@gmail.com> wrote: > > > On Fri, Apr 1, 2011 at 8:23 PM, Rushabh Lathia <rushabh.lat...@gmail.com> > wrote: >> >> >> On Fri, Apr 1, 2011 at 6:51 PM, Magnus Hagander <mag...@hagander.net> >> wrote: >>> >>> On Fri, Apr 1, 2011 at 15:14, Rushabh Lathia <rushabh.lat...@gmail.com> >>> wrote: >>> > Problem: >>> > ======== >>> > >>> > On windows when we run postgres.exe without any command line args, its >>> > getting crash or its showing error into Application logs of Event >>> > Viewer. >>> > >>> > Analysis: >>> > ========== >>> > >>> > For any stderr we call the write_stderr() and write_stderr() calls the >>> > write_console() for stderr. Now here write_console() using the palloc() >>> > internally, which require the CurrentMemoryContext. >>> > >>> > At the startup CurrentMemoryContext will be NULL, so palloc again >>> > calling >>> > write_stderr(). So recursion has been started and its ending up with >>> > exception. >>> > >>> > Call stack for palloc() is: >>> > >>> > main() -> check_root() -> write_stderr() -> write_console() -> >>> > pgwin32_toUTF16() -> palloc() >>> > >>> > Fix: >>> > ===== >>> > >>> > Earlier we used to call vfprintf() for windows stderr, which is now >>> > replaced with write_console(). >>> > So to avoid the exception now, I added condition for >>> > CurrentMemoryContext >>> > into write_stderr(). >>> > >>> > PFA patch to fix the same. >>> >>> What about the cases where we directly call write_console()? Do we >>> know we are good there, or should the check perhaps be made inside >>> write_console() instead of in the caller? >> >> Hmm, yes. It make more sense to add check for CurrentMemoryContext in >> write_console(). >> >> PFA patch for the same. > > Oops missed the attachment. > > Here it is ..
Thanks, applied with the addition of a comment. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers