On 06/13/2016 01:57 PM, Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>> Is it expected that IsUnderPostmaster is true during postmaster startup
>> in an extension's _PG_init() when preloading under Windows? On Linux it
>> is false at this point AFAICT.
>
> AFAIK it will be false in the *postmaster's* execution of _PG_init().
> But keep in mind that on Windows each exec'd child process will have to
> load the shared_preload_libraries again for itself, and those executions
> should see IsUnderPostmaster = true. I think what you are seeing is
> additional executions in the startup process or other background
> processes, which don't happen in a forked-children environment.
>
> You can probably duplicate this behavior for testing purposes on Unix
> by compiling with EXEC_BACKEND defined, if that helps.
Thanks, definitely easier to debug on Linux. It appears the best answer
is to use process_shared_preload_libraries_in_progress rather than
trying to derive that information using IsUnderPostmaster.
Joe
--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development