Showstopper/Critical PdfFileEditor.Concatenate() Stack Overflow Bug!

Please see link for sample code:

https://drive.google.com/file/d/1OqP1TlLXmQN7oGxHNBEBgyLaKWKtVXZL/view?usp=sharing

Combining PDFs using the PdfFileEditor.Concatenate() is throwing a stack overflow exception, which is completely crashing our Production applications. This is happening in the most recent version of Aspose.PDF (23.8). For some strange reason, the stack overflow ONLY occurs when the license file is assigned, NOT when using the trial version of Aspose.PDF, so BE SURE to assign a license file before you use the test code!

This is the 3rd stack overflow bug that we have found in Aspose products in the last few years that have crashed our Production applications!!! It is ABSOULTELY CRITICAL that your code NEVER stack overflows, as this exception is NOT catchable and will completely crash any running process when it happens! PLEASE check ALL of your recursive code that could potentially stack overflow so that it will NEVER stack overflow, by using some sort of recursive count in any recursive code!

Please notify us as soon as this showstopper bug has been fixed!

> Starting ...
> Combine file 2 ...
> Combine file 3 ...
> Stack overflow.
>    at #=quzdLA3ukfcrDdrxWKkz2JHLXO1H5QInuMSR__47v$6E=.#=zDoDuuQ9BJQqVOpw3Y9Uk8_esO202PZZAcmz_s0nUdNDFiF3dg8b117YYEYfMeLYAS0aaRtGUBUbR()
>    at #=qU1aUmTW_gsegxw9W85HGQg56f7QgAWcpXV8ubPjgiDc=.#=z9QBelEqhpN8bAxyW54xl3cQx_VR9WAr4vA==()
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zTEdF$A7ObnL4JUEKUe$0Ss9uiA9e(#=qU1aUmTW_gsegxw9W85HGQg56f7QgAWcpXV8ubPjgiDc=)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=z97VZPkoIUEnaPKyIEbTCTNFasrs5eXvvjJFJdxA=(Int32)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zE9a8jwfcbvL_ogSpSZNK3HA=(Int32)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zjA9UKRgnFs4RK$6g1Xayaxjn2VEiK09uWw==(#=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=, #=qrEA$91818aD0ufGKGRRZrgZX6DwJM7tr0OJXZ_s5ZY4=)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zLRd_BLKuSnRcCZBAd3w$85ZsjjhW()
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zJo$QC6FbmurYgzHK0_cN9XweuMt1JAxKHQ==(Boolean)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zQXVkEAqAChh60CIn7HaI9vF7xfDB2Ys4aw7o5AI=()
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zn0s$5hkco$5sfWsch6Gun6boNfFVbdPaQg==(System.Object[], System.Type[], System.Type[], System.Object[])
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zAUFIpYldW$YalGiKPQ==(System.IO.Stream, Int32, System.Object[], System.Type[], System.Type[], System.Object[])
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zOjNPTRT$Q5lK6Si5lK0goC0kz6f08v$1Hg==(Int32, System.Type[], System.Type[], Boolean)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zeOwrZSnQEWc4V0T_Lf_v0MCoVXg0WZLEu5qUnck=(#=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=, #=qrEA$91818aD0ufGKGRRZrgZX6DwJM7tr0OJXZ_s5ZY4=)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zLRd_BLKuSnRcCZBAd3w$85ZsjjhW()
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zJo$QC6FbmurYgzHK0_cN9XweuMt1JAxKHQ==(Boolean)
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zQXVkEAqAChh60CIn7HaI9vF7xfDB2Ys4aw7o5AI=()
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zn0s$5hkco$5sfWsch6Gun6boNfFVbdPaQg==(System.Object[], System.Type[], System.Type[], System.Object[])
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zzeJLP9AY6dKjsJvLU8umNes=(System.IO.Stream, System.String, System.Object[], System.Type[], System.Type[], System.Object[])
>    at #=qsDi$hpAYwdc6vpXRF1kcZ1jTjKyzRjJbGz9T19r5tb8=.#=zKH2um3NkPQ0eib4$37ZbYKTi$7EDHcNwtr4Mwz8=(System.IO.Stream, System.String, System.Object[])
>    at Aspose.Pdf.OutlineCollection+#=zWTF0WCrQrKFe1RJNag==.MoveNext()
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)
>    at Aspose.Pdf.Facades.PdfFileEditor.#=z$T_RbKkZNMzG(Aspose.Pdf.OutlineItemCollection)

@ted-1

We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): PDFNET-55466

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

Irrespective of Free or Paid support, I certainly hope the Aspose Team will mark this as an absolutely critical bug that needs to be fixed ASAP. Aspose product usage in apllications, whether the customer has purchased Free or Paid support, should NEVER crash the process it is running inside with a Stack Overflow exception like this. Completely unacceptable, and there is no viable workaround at all. Please get a fix in for this ASAP.

Also, where is the link to the PDFNET-55466 bug ticket? If I do a search on PDFNET-55466, I just get this ticket. How can I see and follow the actual bug ticket PDFNET-55466?

@ted-1

We have already paid attention to your comments and marked the logged ticket with importance. We will surely keep your concerns in view and investigate the ticket accordingly. Furthermore, it is logged in our internal issue tracking system to which - we are afraid - you don’t have any access. However, you can check the linked ticket at the bottom of this thread. You can check status of the ticket there.

Along with the above, we will also keep you informed about the progress against ticket resolution. Please be patient and spare us some time. We apologize for the inconvenience.

@asad.ali, thank you. I think it is critical that the Aspose Team makes a concerted effort to review all of their recursive code and ensure that a StackOverflow exception can never happen from any Apsose toolkit code. This is the third such bug we’ve reported over the years! StackOverflow exceptions completely crash the running host and wreak havoc on our Production systems, as there is no viable way to catch this type of exception and handle it gracefully. It also requires a considerable amount of time and effort to track down and replicate exactly what is causing this issue, too, as we can’t even log output to track the stackoverflow exception. Please pass on this critical concern to the Aspose Team! I can’t emphasize this strongly enough. If we run into a fourth bug like this, we will have to look at moving to another company besides Apsose for our needs … this issue is that concerning. Thank you.

@ted-1

We have noted your feedback and we do realize the severity of the issue for you. We have updated the ticket priority to the next level as well. You will be informed in this forum thread as soon as we have results against our investigation. We sincerely apologize for the inconvenience caused.

@ted-1

This is to inform you that the issue has been checked and fixed. Its fix will be available in upcoming versions (versions 23.10 - 23.11).

The issues you have found earlier (filed as PDFNET-55466) have been fixed in this update.