Hello,
I have just updated ROSDK to version 10.0.0.1627 and while running my set of tests, I’m now seeing the exception in the title with the following call stack:
exception class : EROBaseAsyncSocketError
exception message : Response already sent.
thread $26c0 (TROClientThread):
00741d53 +04b ASMServer.exe uROAsyncHttpServer 434 +2 TROAsyncContext.SendResponse
00192370 +010 ASMServer.exe System 39031 +10 @IntfClear
00192381 +009 ASMServer.exe System 39078 +6 @IntfCopy
00748898 +11c ASMServer.exe uROSuperHttpServer 261 +18 TROSuperHTTPServer.SendResponse
007217c9 +0b9 ASMServer.exe uROBaseSuperHttpServer 971 +9 TROBaseSuperHTTPServer.AddWaitingRequest
0072312f +72b ASMServer.exe uROBaseSuperHttpServer 1486 +165 TROBaseSuperHTTPServer.IncomingData
00723a6f +8a3 ASMServer.exe uROBaseSuperHttpServer 1637 +126 TROBaseSuperHTTPServer.HandleRequest
0074868a +04a ASMServer.exe uROSuperHttpServer 223 +1 TROSuperHTTPServer.IntRequest
00741a2f +08f ASMServer.exe uROAsyncHttpServer 396 +9 TROAsyncContext.DoRequest
00741792 +68a ASMServer.exe uROAsyncHttpServer 378 +76 TROAsyncContext.DoRead
007426fd +05d ASMServer.exe uROAsyncHttpServer 627 +3 TROAsyncHTTPServer.DoNewConnection
007464ca +03a ASMServer.exe uROAsyncSocket 155 +2 TROClientThread.IntExecute
0051be57 +07f ASMServer.exe uROInitializedThread 58 +7 TROInitializedThread.Execute
00240913 +02b ASMServer.exe madExcept HookedTThreadExecute
0024097e +096 ASMServer.exe madExcept HookedTThreadExecute
002d23d1 +049 ASMServer.exe System.Classes 15845 +18 ThreadProc
002d2434 +0ac ASMServer.exe System.Classes 15874 +47 ThreadProc
0018ccac +028 ASMServer.exe System 25778 +45 ThreadWrapper
002407f9 +00d ASMServer.exe madExcept CallThreadProcSafe
0024085e +032 ASMServer.exe madExcept ThreadExceptFrame
002408d4 +0a8 ASMServer.exe madExcept ThreadExceptFrame
76f05d47 +017 KERNEL32.DLL BaseThreadInitThunk
>> created by thread $2158 (TROListenThread) at:
002d2498 +018 ASMServer.exe System.Classes 15903 +1 TThread.Create
thread $26c0 (TROClientThread), inner exception level 1:
>> EROBaseAsyncSocketError, Response already sent
00741d53 +04b ASMServer.exe uROAsyncHttpServer 434 +2 TROAsyncContext.SendResponse
00192370 +010 ASMServer.exe System 39031 +10 @IntfClear
00192381 +009 ASMServer.exe System 39078 +6 @IntfCopy
00748898 +11c ASMServer.exe uROSuperHttpServer 261 +18 TROSuperHTTPServer.SendResponse
007217c9 +0b9 ASMServer.exe uROBaseSuperHttpServer 971 +9 TROBaseSuperHTTPServer.AddWaitingRequest
0072312f +72b ASMServer.exe uROBaseSuperHttpServer 1486 +165 TROBaseSuperHTTPServer.IncomingData
00723a6f +8a3 ASMServer.exe uROBaseSuperHttpServer 1637 +126 TROBaseSuperHTTPServer.HandleRequest
0074868a +04a ASMServer.exe uROSuperHttpServer 223 +1 TROSuperHTTPServer.IntRequest
00741a2f +08f ASMServer.exe uROAsyncHttpServer 396 +9 TROAsyncContext.DoRequest
00741792 +68a ASMServer.exe uROAsyncHttpServer 378 +76 TROAsyncContext.DoRead
007426fd +05d ASMServer.exe uROAsyncHttpServer 627 +3 TROAsyncHTTPServer.DoNewConnection
007464ca +03a ASMServer.exe uROAsyncSocket 155 +2 TROClientThread.IntExecute
0051be57 +07f ASMServer.exe uROInitializedThread 58 +7 TROInitializedThread.Execute
002d23d1 +049 ASMServer.exe System.Classes 15845 +18 ThreadProc
002d2434 +0ac ASMServer.exe System.Classes 15874 +47 ThreadProc
0018ccac +028 ASMServer.exe System 25778 +45 ThreadWrapper
002407f9 +00d ASMServer.exe madExcept CallThreadProcSafe
0024085e +032 ASMServer.exe madExcept ThreadExceptFrame
002408d4 +0a8 ASMServer.exe madExcept ThreadExceptFrame
76f05d47 +017 KERNEL32.DLL BaseThreadInitThunk
002d2498 +018 ASMServer.exe System.Classes 15903 +1 TThread.Create
thread $26c0 (TROClientThread), inner exception level 2:
>> EROBaseAsyncSocketError, Response already sent
00741d53 +04b ASMServer.exe uROAsyncHttpServer 434 +2 TROAsyncContext.SendResponse
00192370 +010 ASMServer.exe System 39031 +10 @IntfClear
00192381 +009 ASMServer.exe System 39078 +6 @IntfCopy
00748898 +11c ASMServer.exe uROSuperHttpServer 261 +18 TROSuperHTTPServer.SendResponse
007217c9 +0b9 ASMServer.exe uROBaseSuperHttpServer 971 +9 TROBaseSuperHTTPServer.AddWaitingRequest
0072312f +72b ASMServer.exe uROBaseSuperHttpServer 1486 +165 TROBaseSuperHTTPServer.IncomingData
00723a6f +8a3 ASMServer.exe uROBaseSuperHttpServer 1637 +126 TROBaseSuperHTTPServer.HandleRequest
0074868a +04a ASMServer.exe uROSuperHttpServer 223 +1 TROSuperHTTPServer.IntRequest
00741a2f +08f ASMServer.exe uROAsyncHttpServer 396 +9 TROAsyncContext.DoRequest
00741792 +68a ASMServer.exe uROAsyncHttpServer 378 +76 TROAsyncContext.DoRead
007426fd +05d ASMServer.exe uROAsyncHttpServer 627 +3 TROAsyncHTTPServer.DoNewConnection
007464ca +03a ASMServer.exe uROAsyncSocket 155 +2 TROClientThread.IntExecute
0051be57 +07f ASMServer.exe uROInitializedThread 58 +7 TROInitializedThread.Execute
002d23d1 +049 ASMServer.exe System.Classes 15845 +18 ThreadProc
002d2434 +0ac ASMServer.exe System.Classes 15874 +47 ThreadProc
0018ccac +028 ASMServer.exe System 25778 +45 ThreadWrapper
002407f9 +00d ASMServer.exe madExcept CallThreadProcSafe
0024085e +032 ASMServer.exe madExcept ThreadExceptFrame
002408d4 +0a8 ASMServer.exe madExcept ThreadExceptFrame
76f05d47 +017 KERNEL32.DLL BaseThreadInitThunk
002d2498 +018 ASMServer.exe System.Classes 15903 +1 TThread.Create
This is quite annoying as it leads to the server termination, effectively resulting in a denial of service.
This happens with only the SSL server part, which uses a TROSuperHTTPServer instance with OpenSSL.SSLEnabled set to true.
Now, this is a quite elusive issue in that if I don’t run some other unit tests before hand, it doesn’t arise.
But as I’m still investigating to narrow down the precise conditions needed to reproduce this, I’m also looking for opinions from your side as to what could be causing this.
Regards