1

Have an annoying issue with our production web servers. Windows 2008 R2 x64, fully patched, using php 5. Also installed is ABC PDF, php will call the COM object to convert a web page to PDF and present to user.

After 2-8 weeks or normal operation, php can no longer convert pages to PDF, and throws error like this Uncaught exception 'com_exception' with message 'Source: ABCpdf
Description:Unable to render HTML. Unable to create MSHTML document. COM error 80070008. Not enough storage is available to process this command

Here are fixes I have tried without success:
1. IISRESET
2. reinstall and re-register ABC PDF
3. Shut off all other non essential services on the server
4. Verified we have sufficient disk space on all drives and RAM
5. Modified ABC PDF to use the Mozilla browser engine that is installed with it instead of relying on IE9 installed on the web server
6. upgrade one server from 8GB to 32GB RAM, this had no impact on the behavior or the amount of time it will run succesfully

I have three identical web servers in a MS NLB cluster. They will all start to exhibit this behavior within 24 hours of one another. Only a full server restart will clear this issue and allow PDF creation to continue.

Suggestions or similar experiences?

  • When you did 5, did the symptom change? MSHTML is the IE HTML rendering engine, which doesn't seem optimal for server-side use, but I have no specific knowledge of it. You probably need to do a much deeper investigation of resources being leaked by the app if a user-mode solution doesn't work; I'd guess something's leaking/consuming kernel/GDI resources somewhere, and even though it's X64, those aren't unlimited. Disposing of objects, closing sessions, etc, would all be possible solutions, but if a recycle doesn't fix it, chances are the problem's outside the web server W3WP process. – TristanK May 27 '13 at 06:00
  • It has been some time since my last experiment... as I recall the error was different but the symptom was the same using the Mozilla engine. I also suspected memory leaking had used all allottment of some resource, but could not find any obvious culprit in PerfMon under the Memory counters. I don't dig into that arena much. I might take a fresh look at the next failure. Any tips for finding that user mode memory leak? – John Chertudi May 28 '13 at 18:11
  • Seems like memory leak issue. Are you using FastCGI and WinCache for PHP? Can you configure the IIS app pool to recycle every few hours? (go to IIS application pool setting) – MikeLim May 29 '13 at 13:53
  • using Zend Server 5.6, with its Optimizer. We do recycle every 24 hours – John Chertudi May 29 '13 at 14:02
  • No real idea, just thinking about what might be both global and not cleaned up on a recycle (short version: everything should be cleaned up on a recycle if it doesn't depend on something external to the process (if it's a COM host, restarting that EXE?) http://msdn.microsoft.com/en-us/magazine/cc301756.aspx or similar. Plus Process counters for all relevant processes - look for a steadily increasing handle count (though again, at the process level, it should be cleaned up by quitting the process... again, screams undiscovered external dependency) – TristanK Jun 05 '13 at 04:03

0 Answers0