Copy link to clipboard
Copied
Since moving to CF2016 I've been seeing quite a lot of the error below in the exception log file. I did some research and can't quite figure out what is going on and if this is indeed having an impact on the end user. I've tested the download link on http://www.hiddentoolbox.com and it appears to work fine
"Error","ajp-nio-8016-exec-6","03/26/18","11:55:46","myapp","The cause of this output exception was that: org.apache.catalina.connector.ClientAbortException: java.io.IOException: An established connection was aborted by the software in your host machine. The specific sequence of files included or processed is: C:\ACS\hiddentoolbox\downloadfile.cfm, line: 15 "
coldfusion.tagext.OutputException: The cause of this output exception was that: org.apache.catalina.connector.ClientAbortException: java.io.IOException: An established connection was aborted by the software in your host machine.
I was wondering if this is as simple as people closing their browser before the download is completed, although I could not replicate myself by starting and closing a browser before it had completed.
Could anybody help throw some light on it?
Thanks
Mark
Fixed! I used the fix from Jamo (Thanks Jamo)
By adding the CFTRY and CFCATCH I no longer have a record in the logs, so now I'll be able to find the true errors in the log file.
Btw: I realized this was not caused by spiders because any legit request for the download was also creating a log record.
So here's what cured the problem. I'm not sure of the mechanics as I have not really done much with CFTRY and CFCATCH, but it definately works
<cftry>
<cfcontent type="application/unknown" file="#
It does indeed work without the CFABORT and plain text, giving this (Will change to this as the right answer)
<cftry>
<cfcontent type="application/unknown" file="#downloadlocation#\toolbox.exe" />
<cfcatch>
</cfcatch>
</cftry>
Copy link to clipboard
Copied
I'd recommend that you remove the CFABORT and the plain text output in your CFCATCH - or at least try that and see if it's happening. I can easily see that breaking some clients downloading your files.
Dave Watts, Eidolon LLC
Copy link to clipboard
Copied
It does indeed work without the CFABORT and plain text, giving this (Will change to this as the right answer)
<cftry>
<cfcontent type="application/unknown" file="#downloadlocation#\toolbox.exe" />
<cfcatch>
</cfcatch>
</cftry>
Copy link to clipboard
Copied
@dave AFAIK the client has already terminated the connection at this point and is not in the process of downloading anything. If the client is no longer downloading, the download has already been broken.
In ACF9 & 10 (we didn't use CF11), when the connection was aborted by the client, no CF error was thrown or logged.
We added logging, text and an ABORT just to be safe. Since the process doesn't stop because of the error, we wanted to be 100% sure that the CATCH aborted and didn't continue with any logic that may follow the CFContent-download.
Copy link to clipboard
Copied
Sure, when CFCONTENT runs it aborts the connection. So, now you have another abort connection request right after that. I don't think it should affect most clients, but at the level of TCP SYN and ACK messages being sent between the client and server I'm not sure what would happen. That's the only reason I suggested removing the plain text and CFABORT.
Dave Watts, Eidolon LLC