Heap corruption while printing images
Posted: Mon Apr 22, 2013 11:40 am
I have a report with data columns containing lots of small icon images as byte arrays. This images are rendered in a data band. Occasional -not always- we got an unhandled exception caused be a heap curruption while printing these images.
Currently we are using an older sr version 2011.3.1200.0 and running on a Windows Server 2008 R2 machine.
Any idea how to fix this? I have not found any comparable thread in the forum. Have you ever heard of a problem like that?
The stack trace of the corresponding dump file looks like the following:
Exception code: 0xc0000374
ntdll.dll!_RtlReportCriticalFailure@8() + 0x57 bytes
ntdll.dll!_RtlpReportHeapFailure@4() + 0x21 bytes
ntdll.dll!_RtlpLogHeapFailure@24() + 0xa1 bytes
ntdll.dll!_RtlFreeHeap@12() + 0x50050 bytes
gdi32.dll!_IcmDeleteLocalDC@12() + 0x10185 bytes
gdi32.dll!_InternalDeleteDC@8() + 0x8617 bytes
gdi32.dll!_DeleteDC@4() + 0x12 bytes
GdiPlus.dll!DriverNonPS::OutputBufferDIB() + 0x77d bytes
GdiPlus.dll!DriverPrint::DrawImage() + 0x15de bytes
GdiPlus.dll!GpGraphics::DrvDrawImage() + 0x215b bytes
GdiPlus.dll!GpGraphics::DrawImage() + 0x386 bytes
GdiPlus.dll!GpGraphics::DrawImage() + 0x51 bytes
GdiPlus.dll!_GdipDrawImageRectRect@56() + 0x1e8 bytes
GdiPlus.dll!_GdipDrawImageRectRectI@56() + 0x80 bytes
[Managed to Native Transition]
System.Drawing.dll!System.Drawing.Graphics.DrawImage + 0x7d bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiViewGdiPainter.PaintImage + 0x735 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiViewGdiPainter.Paint + 0x469 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiImageGdiPainter.Paint + 0x10b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiComponent.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiContainerGdiPainter.PaintComponents + 0x1cb bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiPageGdiPainter.Paint + 0x1807 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiComponent.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiPage.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Print.StiPrintProvider.OnPrintPage + 0x177 bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument.OnPrintPage + 0x15 bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument._OnPrintPage + 0xb bytes
System.Drawing.dll!System.Drawing.Printing.PrintController.PrintLoop + 0xc6 bytes
System.Drawing.dll!System.Drawing.Printing.PrintController.Print + 0x10d bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument.Print + 0x70 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Print.StiPrintProvider.Print + 0x933 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.StiReport.Print + 0xd7 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.StiReport.Print + 0x27 bytes
> XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.RPL.WindowsPrinter.WindowsPrintJob.Print Line 336 + 0xf bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.RPL.WindowsPrinter.WindowsPrintJob.Execute Line 293 + 0x15 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintService.Print Line 40 + 0x9 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintWFS.ServerSidePrinting Line 243 + 0x18 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintWFS.AsyncServerSidePrinting Line 234 + 0x31 bytes C#
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context + 0x9c bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal + 0xa7 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run + 0x16 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run + 0x41 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart + 0x4e bytes
[Native to Managed Transition]
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
Currently we are using an older sr version 2011.3.1200.0 and running on a Windows Server 2008 R2 machine.
Any idea how to fix this? I have not found any comparable thread in the forum. Have you ever heard of a problem like that?
The stack trace of the corresponding dump file looks like the following:
Exception code: 0xc0000374
ntdll.dll!_RtlReportCriticalFailure@8() + 0x57 bytes
ntdll.dll!_RtlpReportHeapFailure@4() + 0x21 bytes
ntdll.dll!_RtlpLogHeapFailure@24() + 0xa1 bytes
ntdll.dll!_RtlFreeHeap@12() + 0x50050 bytes
gdi32.dll!_IcmDeleteLocalDC@12() + 0x10185 bytes
gdi32.dll!_InternalDeleteDC@8() + 0x8617 bytes
gdi32.dll!_DeleteDC@4() + 0x12 bytes
GdiPlus.dll!DriverNonPS::OutputBufferDIB() + 0x77d bytes
GdiPlus.dll!DriverPrint::DrawImage() + 0x15de bytes
GdiPlus.dll!GpGraphics::DrvDrawImage() + 0x215b bytes
GdiPlus.dll!GpGraphics::DrawImage() + 0x386 bytes
GdiPlus.dll!GpGraphics::DrawImage() + 0x51 bytes
GdiPlus.dll!_GdipDrawImageRectRect@56() + 0x1e8 bytes
GdiPlus.dll!_GdipDrawImageRectRectI@56() + 0x80 bytes
[Managed to Native Transition]
System.Drawing.dll!System.Drawing.Graphics.DrawImage + 0x7d bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiViewGdiPainter.PaintImage + 0x735 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiViewGdiPainter.Paint + 0x469 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiImageGdiPainter.Paint + 0x10b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiComponent.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiContainerGdiPainter.PaintComponents + 0x1cb bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Painters.StiPageGdiPainter.Paint + 0x1807 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiComponent.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Components.StiPage.Paint + 0x5b bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Print.StiPrintProvider.OnPrintPage + 0x177 bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument.OnPrintPage + 0x15 bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument._OnPrintPage + 0xb bytes
System.Drawing.dll!System.Drawing.Printing.PrintController.PrintLoop + 0xc6 bytes
System.Drawing.dll!System.Drawing.Printing.PrintController.Print + 0x10d bytes
System.Drawing.dll!System.Drawing.Printing.PrintDocument.Print + 0x70 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.Print.StiPrintProvider.Print + 0x933 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.StiReport.Print + 0xd7 bytes
Stimulsoft.Report.dll!Stimulsoft.Report.StiReport.Print + 0x27 bytes
> XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.RPL.WindowsPrinter.WindowsPrintJob.Print Line 336 + 0xf bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.RPL.WindowsPrinter.WindowsPrintJob.Execute Line 293 + 0x15 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintService.Print Line 40 + 0x9 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintWFS.ServerSidePrinting Line 243 + 0x18 bytes C#
XTplus.Report.dll!Pharmatechnik.Apotheke.XTplus.Report.WFL.PrintWFS.AsyncServerSidePrinting Line 234 + 0x31 bytes C#
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context + 0x9c bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal + 0xa7 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run + 0x16 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run + 0x41 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart + 0x4e bytes
[Native to Managed Transition]
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes