Dll hang caused by setting TROSuperTCPChannel to false


(Ryan Jantz) #1

Using Olympia for session management requires a supertcpchannel, correct?

When IIS tries to shutdown an ISAPI dll with a TROSuperTCPChannel that is there for talking to Olympia the dll hangs on shutdown at the line where it calls fw.WaitFor in unit uROBaseSuperChannel in procedure TROBaseSuperChannel.SetInactive.

This also happens only if the TROSuperTCPChannel is set to false.

The destructor sets the TROBaseSuperTCPChannel.Active to false thus initiating the noted behavior.

To replicate:
Run the client exe without debugging.
Run the w3wp.exe with the -debug switch as the host of the server dll.
In the client.exe enter the website where the dll is running and press Get Server Time.
Press q in the console window to shutdown.
Set two breakpoints in the dll’s WebModuleDestroy procedure of Unit1. One at the ROSuperTCPChannel1.Active := false; line and the other on the line after that.
Observe that the first breakpoint gets hit but not the second.

Here is a sample test project if that helps. SuperTCPChannelTest.zip (2.5 MB)

(Ryan Jantz) #3

Any update on this?

(EvgenyK) #4

you are right.

I can reproduce this issue.

(RemObjects) #5

Thanks, logged as bugs://78526

(Ryan Jantz) #7

Is there a way I can find the status of this bug?

(EvgenyK) #8

it isn’t fixed yet

(RemObjects) #9

bugs://78526 got closed with status fixed.

(Ryan Jantz) #10

Did that fix make it into the Build or will it be in the next beta?

(EvgenyK) #11

it will be in next beta

(Ryan Jantz) #12

It fixed it in the test app but it is still hanging in our production app.

(EvgenyK) #13

can you recreate a test project, pls?
You can attach it here or send directly to support@

(Ryan Jantz) #14

I somehow had Delphi pointing to a source folder for .1337 even though I had .1355 installed. It works correctly after pointing it to the .1355 source.