Обсуждение: BUG #6201: Windows User Log Off Causes Backend Exception 0xC0000142
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): 2011-09-09 10:34:01 CDT LOG: server process (PID 3260) was terminated by exception 0xC0000142 2011-09-09 10:34:01 CDT HINT: See C include file "ntstatus.h" for a description of the hexadecimal value. 2011-09-09 10:34:01 CDT LOG: terminating any other active server processes [...] 2011-09-09 10:34:02 CDT WARNING: terminating connection because of crash of another server process 2011-09-09 10:34:02 CDT DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. 2011-09-09 10:34:02 CDT HINT: In a moment you should be able to reconnect to the database and repeat your command. 2011-09-09 10:34:02 CDT LOG: all server processes terminated; reinitializing 2011-09-09 10:34:12 CDT FATAL: pre-existing shared memory block is still in use 2011-09-09 10:34:12 CDT HINT: Check if there are any old server processes still running, and terminate them. Originally encountered with our web app running a stress test on PostgreSQL 8.4.2; I reproduced it on a default one-click install of 9.0.4. I run the following Java on a separate machine to get a new connection every 100 ms: class ConnectionHog { static public void main(String[] args) { try { while (true) { java.sql.DriverManager.getConnection(args[0], args[1], args[2]); Thread.sleep(Long.parseLong(args[3])); } } catch (Throwable t) { System.err.println(t); } } } I then log on and off the server from a separate user account (that is, not the postgres account); the error shows up after at most 3 log offs. As long as no log offs happen on the server, no problem.
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
On 12/09/2011 11:02 PM, Jerome Schulteis wrote: > > 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. > All Microsoft DLLs verified. The following are all of the non-Microsoft non-.nls DLLs: > > iconv.dll LGPLed libiconv for Windows NT/2000/XP and Windows 95/98/ME Free Software Foundation 1.9.0.0 > libeay32.dll OpenSSL Shared Library The OpenSSL Project, http://www.openssl.org/ 0.9.8.12 > libiconv-2.dll LGPLed libiconv for Windows NT/2000/XP/Vista and Windows 95/98/ME Free Software Foundation 1.12.0.0 > libintl-8.dll LGPLed libintl for Windows NT/2000/XP/Vista and Windows 95/98/ME Free Software Foundation 0.17.0.0 > libxml2.dll > postgres.exe PostgreSQL Server PostgreSQL Global Development Group 9.0.4.11104 > ssleay32.dll OpenSSL Shared Library The OpenSSL Project, http://www.openssl.org/ 0.9.8.12 > zlib1.dll zlib data compression library 1.2.3.0 Damn, scratch that theory. It's not a buggy hook DLL with some kind of race. Maybe this exists in the standard Pg distribution and people don't usually hit it because there aren't usually user logon/logoff events on most database servers while they're doing work? Or people who've noticed it have never bothered to track it down and isolate it until you did? It sounds like you've tested this on a clean Windows install in a VM, yes? The next step would be to figure out which DLL's InitInstance() or ExitInstance() is failing, and how to get the postmaster to print the formatted version of that error so we can see the substitutions in the message string. I'm not able to take that on right now as I'm behind on my main work and moving house as well. Is anyone willing to volunteer to dig into this one? -- Craig Ringer
PiBGcm9tOiBDcmFpZyBSaW5nZXIgW21haWx0bzpyaW5nZXJjQHJpbmdlcmMu aWQuYXVdDQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDA5LCAyMDExIDc6 NTMgUE0NCj4gDQo+IE9uIDEwLzA5LzIwMTEgNDo1OSBBTSwgSmVyb21lIFNj aHVsdGVpcyB3cm90ZToNCj4gPiBUaGUgZm9sbG93aW5nIGJ1ZyBoYXMgYmVl biBsb2dnZWQgb25saW5lOg0KPiA+DQo+ID4gQnVnIHJlZmVyZW5jZTogICAg ICA2MjAxDQo+ID4gTG9nZ2VkIGJ5OiAgICAgICAgICBKZXJvbWUgU2NodWx0 ZWlzDQo+ID4gRW1haWwgYWRkcmVzczogICAgICBqZXJvbWUuc2NodWx0ZWlz QGVkc3Ryb20uY29tDQo+ID4gUG9zdGdyZVNRTCB2ZXJzaW9uOiA5LjAuNA0K PiA+IE9wZXJhdGluZyBzeXN0ZW06ICAgV2luZG93cyBYUCBQcm8gU1AzDQo+ ID4gRGVzY3JpcHRpb246ICAgICAgICBXaW5kb3dzIFVzZXIgTG9nIE9mZiBD YXVzZXMgQmFja2VuZCBFeGNlcHRpb24NCj4gMHhDMDAwMDE0Mg0KPiA+IERl dGFpbHM6DQo+ID4NCj4gPiBJdCBkb2VzIG5vdCBoYXBwZW4gb24gZXZlcnkg bG9nIG9mZiwgYnV0IGlmIHRoZSBXaW5kb3dzIGNvbnNvbGUgdXNlcg0KPiA+ IGxvZ3Mgb2ZmIG9mIHRoZSBzZXJ2ZXIgYXQganVzdCB0aGUgd3JvbmcgdGlt ZSB3aGlsZSBhIGJhY2tlbmQgaXMNCj4gPiBzdGFydGluZyB1cCwgdGhlIGJh Y2tlbmQgdGVybWluYXRlcyB3aXRoIGV4Y2VwdGlvbiAweEMwMDAwMTQyDQo+ ID4gKFNUQVRVU19ETExfSU5JVF9GQUlMRUQpLCBhbmQgdGhlIFBvc3RncmVT UUwgV2luZG93cyBzZXJ2aWNlIHN0b3BzDQo+ID4gKHNoYXJlZCBtZW1vcnkg YmxvY2sgaXMgc3RpbGwgaW4gdXNlKToNCj4gSSB3b25kZXIgd2hpY2ggRExM IGZhaWxlZD8gSXQgc2VlbXMgdGhhdCBQb3N0Z3JlU1FMIGRvZXNuJ3QgcHJp bnQgdGhlDQo+IG1lc3NhZ2UgdGhlIG9wZXJhdGluZyBzeXN0ZW0gZ2VuZXJh dGVzIGZvciB0aGVzZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpdA0KPiBzaG91 bGQgYmUgcHJpbnRpbmc6DQo+IA0KPiAie0RMTCBJbml0aWFsaXphdGlvbiBG YWlsZWR9IEluaXRpYWxpemF0aW9uIG9mIHRoZSBkeW5hbWljIGxpbmsgbGli cmFyeSAlaHMgZmFpbGVkLg0KPiBUaGUgcHJvY2VzcyBpcyB0ZXJtaW5hdGlu ZyBhYm5vcm1hbGx5LiINCj4gDQo+IC4uLiB3aGVyZSAlaHMgaXMgdGhlIERM TCBuYW1lIG9yIHBhdGguIEkgc2hvdWxkIGhhdmUgYSBwbGF5IHdpdGggdGhh dCBvbmNlIEkNCj4gZmluaXNoIG1vdmluZyBob3VzZS4uLg0KPiANCj4gDQo+ IERvIHlvdSBoYXZlIGFueSBhbnRpdmlydXMgb3IgYW50aW1hbHdhcmUgcHJv ZHVjdHMgb24gdGhlIHN5c3RlbT8NCg0KVGhpcyB3YXMgb24gYSBWaXJ0dWFs Qm94IFZNIHdpdGggbm8gYW50aXZpcnVzOyBvcmlnaW5hbGx5IHNlZW4gb24g YSByZWFsIG1hY2hpbmUgcnVubmluZyBFU0VUIDQuMC4NCiANCj4gRG8geW91 IGhhdmUgYSBMb2dpdGVjaCB3ZWJjYW0/IFRoZWlyIHdlYmNhbSBlZmZlY3Rz IGFwcCBhZGRzIGEgaG9vayBETEwNCj4gdG8gZXZlcnkgcHJvY2VzcyBvbiB0 aGUgc3lzdGVtLCBhbmQgSSd2ZSBzZWVuIGl0IGNhdXNlIGlzc3VlcyB3aXRo IE1pbkdXDQo+IGFtb25nIG90aGVyIHRoaW5ncyBiZWZvcmUuDQoNClRoZXJl IGlzIG5vIHdlYmNhbSBvbiB0aGUgc3lzdGVtLg0KDQo+IElmIHlvdSBsYXVu Y2ggYSB0cml2aWFsIHByb2Nlc3MgbGlrZSAibm90ZXBhZC5leGUiIHRoZW4g bGF1bmNoIFByb2Nlc3MNCj4gRXhwbG9yZXIgZnJvbSBTeXNJbnRlcm5hbHMs IHNlbGVjdCBub3RlcGFkLmV4ZSBhbmQgcHJlc3MgY29udHJvbC1EIHRvDQo+ IHNob3cgdGhlIERMTCBsaXN0LCB3aGF0IG5vbi1NaWNyb3NvZnQgRExMcyBh cmUgc2hvd24/IFlvdSBjYW4gY29weSBhbmQNCj4gcGFzdGUgdGhlIGxpc3Qu DQoNCkFsbCBvZiB0aGUgRExMcyBmb3Igbm90ZXBhZC5leGUgYXJlIGVpdGhl ciBNaWNyb3NvZnQgb3IgLm5scy4NCg0KPiBJZiB5b3UgZXhhbWluZSBhIHJ1 bm5pbmcgcG9zdGdyZXMuZXhlIGJhY2tlbmQgKG9uZSBvZiB0aGUgcHJvY2Vz c2Vzcw0KPiBsaXN0ZWQgVU5ERVIgdGhlIG1haW4gInBvc3RncmVzLmV4ZSIg d2hpY2ggaXMgdGhlIHBvc3RtYXN0ZXIpIHRoZSBzYW1lDQo+IHdheSwgd2hh dCBub24tTWljcm9zb2Z0IERMTHMgYXJlIHNob3duIHRoZXJlPyBOb3RlIHRo YXQgeW91IG1heSBoYXZlIHRvDQo+IHJ1biBQcm9jZXNzIEV4cGxvcmVyIGFz IGFkbWluaXN0cmF0b3IgdG8gdmlldyB0aGUgRExMIGxpc3QgZm9yDQo+IHBv c3RncmVzLmV4ZS4gSWdub3JlIGFueSBETExzIGVuZGluZyBpbiAiLk5MUyIg Lg0KPiANCj4gRm9yIGJvbnVzIHBvaW50cywgdmVyaWZ5IGVhY2ggTWljcm9z b2Z0IERMTCBhcyBoYXZpbmcgYSB2YWxpZCBzaWduYXR1cmUNCj4gYnkgZG91 YmxlLWNsaWNraW5nIG9uIGl0IGluIHRoZSBsaXN0LCBhbmQgcmVwb3J0IGFu eSBETExzIHRoYXQgZmFpbA0KPiB2ZXJpZmljYXRpb24uDQoNCkFsbCBNaWNy b3NvZnQgRExMcyB2ZXJpZmllZC4gVGhlIGZvbGxvd2luZyBhcmUgYWxsIG9m IHRoZSBub24tTWljcm9zb2Z0IG5vbi0ubmxzIERMTHM6DQoNCmljb252LmRs bAlMR1BMZWQgbGliaWNvbnYgZm9yIFdpbmRvd3MgTlQvMjAwMC9YUCBhbmQg V2luZG93cyA5NS85OC9NRQlGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24JMS45 LjAuMA0KbGliZWF5MzIuZGxsCU9wZW5TU0wgU2hhcmVkIExpYnJhcnkJVGhl IE9wZW5TU0wgUHJvamVjdCwgaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8JMC45 LjguMTINCmxpYmljb252LTIuZGxsCUxHUExlZCBsaWJpY29udiBmb3IgV2lu ZG93cyBOVC8yMDAwL1hQL1Zpc3RhIGFuZCBXaW5kb3dzIDk1Lzk4L01FCUZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgkxLjEyLjAuMA0KbGliaW50bC04LmRs bAlMR1BMZWQgbGliaW50bCBmb3IgV2luZG93cyBOVC8yMDAwL1hQL1Zpc3Rh IGFuZCBXaW5kb3dzIDk1Lzk4L01FCUZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgkwLjE3LjAuMA0KbGlieG1sMi5kbGwJCQkNCnBvc3RncmVzLmV4ZQlQb3N0 Z3JlU1FMIFNlcnZlcglQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAk5LjAuNC4xMTEwNA0Kc3NsZWF5MzIuZGxsCU9wZW5TU0wgU2hhcmVk IExpYnJhcnkJVGhlIE9wZW5TU0wgUHJvamVjdCwgaHR0cDovL3d3dy5vcGVu c3NsLm9yZy8JMC45LjguMTINCnpsaWIxLmRsbAl6bGliIGRhdGEgY29tcHJl c3Npb24gbGlicmFyeQkJMS4yLjMuMA0KDQo+IC0tDQo+IENyYWlnIFJpbmdl cg0KDQpUaGFua3MgZm9yIGxvb2tpbmcgaW50byB0aGlzLg0K