Jump to content

IIS: Crash with multiple Hyperservers on the same folder


aventrax

Recommended Posts

What I'll describe has been tested with version 1.70.1485 but even with the latest 1.90.1519, having same results.

  1. Compiled a very simple demo app displaying just a text message
  2. Configured IIS with just one 'TEST' Application pointing to C:\UniGUI\TEST\
  3. Configured Hyperserver running my app (it has been renamed to test.dll with my demo app as test.exe)
  4. The Hyperserver test.cfg file has only the following modifications
...
[http_transport]
start_port=16384

[hyper_server]
binary_name=test.exe
...

Calling http://10.1.1.110:10080/TEST/test.dll  opens my simple demo app without any problem.

Log - C:\UniGUI\TEST\log\test_dll\A2020-02-07.log

test.dll: 00000C20: 17:32:58 []:>--------------------------------------------------------------<
test.dll: 00000C20: 17:32:58 []:Starting Server. Module Handle: 0000000001140000
test.dll: 00000C20: 17:32:58 [TUniServerModule]:Server First Init.
test.dll: 00000C20: 17:32:58 [TUniHyperServer]:InitInterceptor
test.dll: 00000C20: 17:32:58 [Transport.PoolSize]:516
test.dll: 00000C20: 17:32:59 []:Server Started. Module Handle: 0000000001140000

 

Log - C:\UniGUI\TEST\log\test_exe\n0\A2020-02-07.log

test.exe: 00000DD4: 17:32:58 []:>--------------------------------------------------------------<
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Server First Init.
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Node Id = 0
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Starting HTTP Server on Port: 16384...
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:HTTP Server Started on Port: 16384

 

Log - C:\UniGUI\TEST\log\test_exe\n1\A2020-02-07.log

test.exe: 00000BEC: 17:32:58 []:>--------------------------------------------------------------<
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Server First Init.
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Node Id = 1
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Starting HTTP Server on Port: 16385...
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:HTTP Server Started on Port: 16385

 

That's ok.  Proceeding..

  1. Copy the same app with a different name (myapp.exe)
  2. Configuring Hyperserver with the following myapp.cfg
...
[http_transport]
start_port=16784

[hyper_server]
binary_name=myapp.exe
...

 

Now I will trigger the problem, calling http://10.1.1.110:10080/TEST/myapp.dll

myapp opens BUT my other app test.dll crashes with : Socket Error # 10054 Connection reset by peer.

 

Here the logs...

 

Log - C:\UniGUI\TEST\log\myapp_dll\A2020-02-07.log

myapp.dll: 00000964: 17:41:23 []:>--------------------------------------------------------------<
myapp.dll: 00000964: 17:41:23 []:Starting Server. Module Handle: 0000000001AD0000
myapp.dll: 00000964: 17:41:23 [TUniServerModule]:Server First Init.
myapp.dll: 00000964: 17:41:23 [TUniHyperServer]:InitInterceptor
myapp.dll: 00000964: 17:41:23 [Transport.PoolSize]:516
myapp.dll: 00000964: 17:41:33 []:Server Started. Module Handle: 0000000001AD0000

 

Log - C:\UniGUI\TEST\log\myapp_exe\n0\A2020-02-07.log

myapp.exe: 00000D6C: 17:41:32 []:>--------------------------------------------------------------<
myapp.exe: 00000D6C: 17:41:32 [TUniServerModule]:Server First Init.
myapp.exe: 00000D6C: 17:41:32 [TUniServerModule]:Node Id = 0
myapp.exe: 00000D6C: 17:41:32 [TUniServerModule]:Node MaxSessions = 250
myapp.exe: 00000D6C: 17:41:32 [TUniServerModule]:Starting HTTP Server on Port: 16784...
myapp.exe: 00000D6C: 17:41:32 [TUniServerModule]:HTTP Server Started on Port: 16784

 

Log - C:\UniGUI\TEST\log\myapp_exe\n1\A2020-02-07.log

myapp.exe: 00000744: 17:41:33 []:>--------------------------------------------------------------<
myapp.exe: 00000744: 17:41:33 [TUniServerModule]:Server First Init.
myapp.exe: 00000744: 17:41:33 [TUniServerModule]:Node Id = 1
myapp.exe: 00000744: 17:41:33 [TUniServerModule]:Node MaxSessions = 250
myapp.exe: 00000744: 17:41:33 [TUniServerModule]:Starting HTTP Server on Port: 16785...
myapp.exe: 00000744: 17:41:33 [TUniServerModule]:HTTP Server Started on Port: 16785

 

Log - C:\UniGUI\TEST\log\myapp_exe\n2\A2020-02-07.log

myapp.exe: 00000EC4: 17:41:33 []:>--------------------------------------------------------------<
myapp.exe: 00000EC4: 17:41:33 [TUniServerModule]:Server First Init.
myapp.exe: 00000EC4: 17:41:33 [TUniServerModule]:Node Id = 2
myapp.exe: 00000EC4: 17:41:33 [TUniServerModule]:Node MaxSessions = 250
myapp.exe: 00000EC4: 17:41:33 [TUniServerModule]:Starting HTTP Server on Port: 16786...
myapp.exe: 00000EC4: 17:41:33 [TUniServerModule]:HTTP Server Started on Port: 16786

 

And now the problem...

Log - C:\UniGUI\TEST\log\test_dll\A2020-02-07.log

test.dll: 00000C20: 17:32:58 []:>--------------------------------------------------------------<
test.dll: 00000C20: 17:32:58 []:Starting Server. Module Handle: 0000000001140000
test.dll: 00000C20: 17:32:58 [TUniServerModule]:Server First Init.
test.dll: 00000C20: 17:32:58 [TUniHyperServer]:InitInterceptor
test.dll: 00000C20: 17:32:58 [Transport.PoolSize]:516
test.dll: 00000C20: 17:32:59 []:Server Started. Module Handle: 0000000001140000
test.dll: 00000BD0: 17:41:31 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:31 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:41 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:41 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:41 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:41 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:51 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:51 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:51 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:41:51 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:42:02 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:42:02 [SendCommand Error, Node: 0]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:42:02 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:42:02 [SendCommand Error, Node: 1]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000BD0: 17:42:02 [Node #1]:Node Status request timed out. Node purged.
test.dll: 00000964: 17:42:02 [TUniHyperServer.HandleHTTPRequest(), Node:[0]]:Socket Error # 10054
Connection reset by peer.
test.dll: 00000964: 17:42:02 [HttpExtensionProc[10.1.2.40]]:EIdSocketError : Socket Error # 10054
Connection reset by peer. : Addr: $012B9C00
test.dll: 00000BD0: 17:42:13 [SendCommand Error, Node: 0]:Socket Error # 10061
Connection refused.
test.dll: 00000BD0: 17:42:14 [SendCommand Error, Node: 0]:Socket Error # 10061
Connection refused.
test.dll: 00000BD0: 17:42:14 [Node #0]:Node Status request timed out. Node purged.

 

Log - C:\UniGUI\TEST\log\test_exe\n0\A2020-02-07.log

test.exe: 00000DD4: 17:32:58 []:>--------------------------------------------------------------<
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Server First Init.
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Node Id = 0
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:Starting HTTP Server on Port: 16384...
test.exe: 00000DD4: 17:32:58 [TUniServerModule]:HTTP Server Started on Port: 16384
test.exe: 00000F50: 17:42:24 []:>--------------------------------------------------------------<
test.exe: 00000F50: 17:42:24 [TUniServerModule]:Server First Init.
test.exe: 00000F50: 17:42:24 [TUniServerModule]:Node Id = 0
test.exe: 00000F50: 17:42:24 [TUniServerModule]:Global Cache Folder Erased. <2> Files deleted.
test.exe: 00000F50: 17:42:24 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000F50: 17:42:24 [TUniServerModule]:Starting HTTP Server on Port: 16384...
test.exe: 00000F50: 17:42:24 [TUniServerModule]:HTTP Server Started on Port: 16384

 

Log - C:\UniGUI\TEST\log\test_exe\n1\A2020-02-07.log

test.exe: 00000BEC: 17:32:58 []:>--------------------------------------------------------------<
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Server First Init.
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Node Id = 1
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:Starting HTTP Server on Port: 16385...
test.exe: 00000BEC: 17:32:58 [TUniServerModule]:HTTP Server Started on Port: 16385
test.exe: 00000D38: 17:42:12 []:>--------------------------------------------------------------<
test.exe: 00000D38: 17:42:12 [TUniServerModule]:Server First Init.
test.exe: 00000D38: 17:42:12 [TUniServerModule]:Node Id = 1
test.exe: 00000D38: 17:42:12 [TUniServerModule]:Global Cache Folder Erased. <1> Files deleted.
test.exe: 00000D38: 17:42:12 [TUniServerModule]:Node MaxSessions = 250
test.exe: 00000D38: 17:42:12 [TUniServerModule]:Starting HTTP Server on Port: 16385...
test.exe: 00000D38: 17:42:12 [TUniServerModule]:HTTP Server Started on Port: 16385

 

As you can see calling myapp.dll triggers a crash on test.dll.

This happens only because they're on the same folder C:\UniGUI\TEST\, If i put myapp on C:\UniGUI\MYAPP\ it has no problems!

Anywhere on the documentation having one dedicated fodler per-app has been specified, moreover the logs are placed per-process in different sub-folders, in other words having 2 dll/exe on the same folder is something that seems supported by design.

 

Any help?

 

 

Link to comment
Share on other sites

Thank you for moving the post to General.

 

About the issue: I have not restarted the application pool during the test but this is repeatable so what I can do is:

  1. Reboot the web server
  2. Open http://10.1.1.110:10080/TEST/test.dll
  3. Call http://10.1.1.110:10080/TEST/myapp.dll 

On the step 3, with a clean situation, the error came up and the problem is exactly the same as described above.

 

Just a small note: After the nodes being purged, the newly created nodes/sessions has no problem at all. The problem happens only during the "first hyperserver init". In this situation the server works perfectly for months but if I reboot the server or simply restart IIS the problem arises.

Link to comment
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...