Random Crashes?

Discussions on GFL SDK, the graphic library for reading and writing graphic files

Moderators: XnTriq, helmut, xnview

DigitalFusion
Posts: 3
Joined: Wed Jun 07, 2017 4:51 pm

Random Crashes?

Post by DigitalFusion »

Hello All,

We are using GflAx 2.82 on a legacy web-based application on Classic ASP running on a Windows 2012 R2 server. The component works great, but very randomly we see this error:

Error: File /inc/inc_displayImage.asp CreateObject Exception. The CreateObject of '(null)' caused exception C0000005..

This happens anywhere from once every few days to several times a day. As soon as this error is thrown, its followed by the Application Pool crashing:

A process serving application pool 'DefaultAppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3208'. The data field contains the error number.

I have been going crazy trying to figure out why this is happening. If anyone has any thoughts at all on what could be happening I would appreciate it!

Here is the code if that helps:

Code: Select all


<%
strTable = noXSSQueryString("table")
strImageField = noXSSQueryString("imageField")
strImageExt = noXSSQueryString("imageExt")
strImageFileName = noXSSQueryString("imageFileName")
strIDfield = noXSSQueryString("idField")
strID = noXSSQueryString("id")
strHeight = noXSSQueryString("height")
strWidth = noXSSQueryString("width")
strCrop = noXSSQueryString("crop")

	If Len(strImageFileName) > 0 Then Response.AddHeader "content-disposition","inline;filename=" & strImageFileName

	strSQL = "Select " & strImageField & " From " & strTable & " Where " & strIDfield & "=? AND " & strImageField & " IS NOT NULL"
	strParams = Array(strID)
	rsSQL objRS, strSQL, strParams
    If not objRS.eof Then 

	    If Len(strCrop) < 1 Then
		    If Len(strHeight) > 0 Or Len(strWidth) > 0 Then
			    'Set ctrl = server.createobject("GflAx.GflAx")
			    Set ctrl = createobject("GflAx.GflAx")	
			    With ctrl
				    '.ReceiveBinary objRS(strImageField).value
				    .getBlob objRS(strImageField).value
				    .SaveformatName = "jpeg"
				
				    If Len(strWidth) > 0 And Len(strHeight) > 0 Then
					    newWidth = strWidth
					    newHeight = (strWidth * .Height) / .Width
					    If newHeight > strHeight Then
						    newWidth = (strHeight * .width) / .height
						    newHeight = strHeight
					    End If
					    .Resize newWidth, newHeight
				    ElseIf Len(strWidth) > 0 Then
					    newWidth = strWidth
					    newHeight = (strWidth * .Height) / .Width
					    .Resize newWidth, newHeight
				    ElseIf Len(strHeight) > 0 Then
					    newWidth = (strHeight * .width) / .height
					    newHeight = strHeight
					    .Resize newWidth, newHeight
				    Else
					    .Resize 100,100
				    End If
				
				    If strWatermark = True Then
					    .FontName = "impact"
					    .FontSize = 21
					    .TextOut "", 2, 2, RGB(0, 176, 216)
				    End if

				    .SaveJPEGQuality = 90
				    response.contentType = "image/jpeg"
				    response.binarywrite .SendBinary
			    End With
			    Set ctrl=nothing
		    Else		
			    Response.ContentType = "image/jpg"
	            Response.BinaryWrite(objRS(strImageField))
            End If
	    End If
	
	    If Len(strCrop) > 0 Then
	    strRatio = strWidth / strHeight
		    If Len(strHeight) > 0 Or Len(strWidth) > 0 Then
			    'Set ctrl = server.createobject("GflAx.GflAx")
			    Set ctrl = createobject("GflAx.GflAx")
			    With ctrl
				    .getBlob objRS(strImageField).value
				    .SaveformatName = "jpeg"
					
				    If strWidth / strHeight < strRatio Then
					    newWidth = strWidth
					    newHeight = (newWidth * .Height) / .Width
				    ElseIf strWidth / strHeight > strRatio Then
					    newHeight = strHeight
					    newWidth = (newHeight * .Width) / .Height		
				    Else
					    newWidth = strWidth
					    newHeight = (newWidth * .Height) / .Width
				    End If
				
				    .Resize newWidth, newHeight
				    .ResizeCanvas strWidth, strHeight, strCrop
			
				    .SaveJPEGQuality = 90
				    response.contentType = "image/jpeg"
				    response.binarywrite .SendBinary
			    End With
			    Set ctrl=nothing
		    Else		
			    Response.ContentType = "image/jpg"
	            Response.BinaryWrite(objRS(strImageField))
            End If
	    End If
    end if
	rsCLOSE(objRS)
%>

DigitalFusion
Posts: 3
Joined: Wed Jun 07, 2017 4:51 pm

Re: Random Crashes?

Post by DigitalFusion »

I updated the component to the latest version, and it didnt have this error for a week. It just did it again.
DigitalFusion
Posts: 3
Joined: Wed Jun 07, 2017 4:51 pm

Re: Random Crashes?

Post by DigitalFusion »

This issue continues to plague us, and is getting worse as our site grows and sees more traffic. It works fine for weeks or months, and then it crashes causing hundreds of errors, with the only way to resolve being to restart IIS.

I take it that it is safe to assume that support for this component ended long ago?
User avatar
xnview
Author of XnView
Posts: 44885
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Re: Random Crashes?

Post by xnview »

DigitalFusion wrote: Fri Oct 12, 2018 5:24 pm I take it that it is safe to assume that support for this component ended long ago?
yes sorry but the GflAX is no more supported
Pierre.