Hi,
Again we are having trouble releasing our products due to issues with Aspose.
below is the scenario, the same presentation generates fine in our single threaded client environment. but the batch generation which uses multi threading fails for the report and crashes and stop the batch generation .
we used debug dias 1.2 and found out that the issue was caused by the following stack:
NET Call Stack
Function
DomainBoundILStubClass.IL_STUB_PInvoke(System.Runtime.InteropServices.HandleRef, System.String, Int32, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, Int32 ByRef, Int32 ByRef)
System.Drawing.SafeNativeMethods+Gdip.GdipMeasureString(System.Runtime.InteropServices.HandleRef, System.String, Int32, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, Int32 ByRef, Int32 ByRef)
System.Drawing.Graphics.MeasureString(System.String, System.Drawing.Font, System.Drawing.PointF, System.Drawing.StringFormat)
..(System.String, System.Drawing.PointF, .a)
..(, , .a, .a, ByRef)
..(, , Aspose.Slides.Pptx.PortionEx)
..()
.…ctor(Aspose.Slides.Pptx.ParagraphFormatEx[], Aspose.Slides.Pptx.ParagraphExCollection, Single, Single, Int32, Single, Boolean, Aspose.Slides.Pptx.TextAnchorTypeEx, Boolean, Aspose.Slides.Pptx.BaseSlideEx, FloatColor, Aspose.Slides.Pptx.FontsEx, Aspose.Slides.Pptx.FontCollectionIndexEx, Single, Single, Int32)
Aspose.Slides.Pptx.TextFrameEx.(Single, Single, ., .�)
Aspose.Slides.Pptx.TableEx.(.[,], .�)
Aspose.Slides.Pptx.TableEx.()
Assette.PowerPointGenerator.PresentationGenerator.PopulateRowTablePaged(Aspose.Slides.Pptx.BaseSlideEx, Aspose.Slides.Pptx.ShapeEx, Aspose.Slides.Pptx.PresentationEx, Boolean, Single, Int32, Int32)
Assette.PowerPointGenerator.PresentationGenerator.ProcessSlide(Int32 ByRef, Aspose.Slides.Pptx.BaseSlideEx, Int32, Int32, Boolean)
Assette.PowerPointGenerator.PresentationGenerator.GeneratePresentaion(System.String, System.String, Int32, System.String, Int32)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Boolean, System.String ByRef)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, Boolean, System.String ByRef)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String ByRef)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String, System.String, System.String, System.String, System.String ByRef)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String, System.String, System.String ByRef)
Assette.PowerPointGenerator.Generator.GeneratePresentation(Int32, Int32, System.String)
Assette.CA.StatementGeneratorService.StatementPptGenerationWorker.Doer()
System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart()
Full Call Stack
Function Arg 1 Arg 2 Arg 3 Arg 4 Source
GdiPlus!GdipMeasureString+df 18958590 31f390b8 00000001 10876fd0
DomainBoundILStubClass.IL_STUB_PInvoke(System.Runtime.InteropServices.HandleRef, System.String, Int32, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, System.Runtime.InteropServices.HandleRef, System.Drawing.Internal.GPRECTF ByRef, Int32 ByRef, Int32 ByRef) 0454d9e0 0454d9e4 0454d9e8 31f37488
System.Drawing.Graphics.MeasureString(System.String, System.Drawing.Font, System.Drawing.PointF, System.Drawing.StringFormat) 31f37488 00000000 00000000 31f390d8
..(System.String, System.Drawing.PointF, .a) 31f38bf8 00000000 00000000 3208ee98
..(, , .a, .a, ByRef) 0454dac8 31f38e54 31f3751c 00000000
..(, , Aspose.Slides.Pptx.PortionEx) 31f3751c 00000000 0000000a 31f3751c
..() 3f800000 320811b8 32089994 2005532c
.…ctor(Aspose.Slides.Pptx.ParagraphFormatEx[], Aspose.Slides.Pptx.ParagraphExCollection, Single, Single, Int32, Single, Boolean, Aspose.Slides.Pptx.TextAnchorTypeEx, Boolean, Aspose.Slides.Pptx.BaseSlideEx, FloatColor, Aspose.Slides.Pptx.FontsEx, Aspose.Slides.Pptx.FontCollectionIndexEx, Single, Single, Int32) 00000010 00000000 3f800000 00000000
Aspose.Slides.Pptx.TextFrameEx.(Single, Single, ., .�) 00000002 323285ec 00000000 00000008
System.Globalization.CompareInfo.IsPrefix(System.String, System.String, System.Globalization.CompareOptions) 00000038 0161aee0 79163839 1d953ba0
clr!COMString::IndexOfCharArray+b3 79142c26 1d953b84 0454e1ac 0454e1a4
0x3232520c 0454e1a4 0289868d 00000000 00000000
0x0454e1ac 0289868d 00000000 00000000 00000000
0x0454e1a4 1f85ffac 0454e30c 0454ec6c 082ab80f
0x26a131b4
And then we debugged the service using visual studio “Attach process” option with the code, and found out that the exception is thrown when we call TableEx.Height method for a table. this is really frustrating to have such issues, its almost more than an year we are trying to release PPTX version of our product and every time we are struggling because of some Aspose issue. really appreciate a properly tested product.
i have attached the debug dias report, the direct inner exception details, and the template in the attachment for your reference.
Thanks,
Aneef
Hi Aneef,
Mudassir,
sorry for responding late on this. but if you see, we have been working on various simulators to reproduce errors we have got. and spending alot of time in creating them without concentrating on our actual development work. to reproduce this we have to almost write the same window service and prepare the sample data which might take sometime, with having the other issues.
but appreciate if your devs can look in to the code and see if there are any threading issues because the exception throws exactly when we try to get the table.Height property. we are happy to share a remote session if you are willing to so we can recreate and show you the error. also i think the attached logs gives alot of information too.
Thanks,
Aneef
Hi Aneef,