On 10/09/2011 4:59 AM, Jerome Schulteis wrote:
> The following bug has been logged online:
>
> Bug reference: 6201
> Logged by: Jerome Schulteis
> Email address: jerome.schulteis@edstrom.com
> PostgreSQL version: 9.0.4
> Operating system: Windows XP Pro SP3
> Description: Windows User Log Off Causes Backend Exception 0xC0000142
> Details:
>
> It does not happen on every log off, but if the Windows console user logs
> off
> of the server at just the wrong time while a backend is starting up, the
> backend terminates with exception 0xC0000142 (STATUS_DLL_INIT_FAILED), and
> the
> PostgreSQL Windows service stops (shared memory block is still in use):
I wonder which DLL failed? It seems that PostgreSQL doesn't print the
message the operating system generates for these errors. For example, it
should be printing:
"{DLL Initialization Failed} Initialization of the dynamic link library
%hs failed. The process is terminating abnormally."
... where %hs is the DLL name or path. I should have a play with that
once I finish moving house...
Do you have any antivirus or antimalware products on the system?
Do you have a Logitech webcam? Their webcam effects app adds a hook DLL
to every process on the system, and I've seen it cause issues with MinGW
among other things before.
If you launch a trivial process like "notepad.exe" then launch Process
Explorer from SysInternals, select notepad.exe and press control-D to
show the DLL list, what non-Microsoft DLLs are shown? You can copy and
paste the list.
If you examine a running postgres.exe backend (one of the processess
listed UNDER the main "postgres.exe" which is the postmaster) the same
way, what non-Microsoft DLLs are shown there? Note that you may have to
run Process Explorer as administrator to view the DLL list for
postgres.exe. Ignore any DLLs ending in ".NLS" .
For bonus points, verify each Microsoft DLL as having a valid signature
by double-clicking on it in the list, and report any DLLs that fail
verification.
--
Craig Ringer