NetCloud Engine: Persistent "Failed to create dispatcher" Exceptions
Products Supported: NetCloud Engine
This article addresses persistent "Failed to create dispatcher" exceptions that prevent the Windows client from connecting to its assigned Tunnel Server (TS). The client will cycle endlessly trying to repair the TS connection.
Here is sample gateway.log output (in the C:\Program Files\Pertino\logs folder):
2015-09-05 00:33:36,979 UTC [0x00001bd8] INFO (g2.tunnelClientThread:361) - Failed to create dispatcher: An exception occurred. The error type is: class TunnelProtocolDispatcher::Exception The error text is: Could not allocate event base! Previous errno: 9 [Bad file descriptor] Last error: 6 [The handle is invalid.] Source file name: \gatetun-common\tunnelprotocol\dispatcher\tunnelprotocol_dispatcher.cpp, #416 Function name: TunnelProtocolDispatcher::TunnelProtocolDispatcher
The backtrace is: ...
The key information is "The error text is: Could not allocate event base!" The NetCloud Engine Gateway Service (pgateway) uses Libevent for different areas of functionality that require asynchronous event handling. On Windows the client only uses Libevent for its internal dispatcher that manages its connection to the client's TS.
Libevent uses environment variables with an "EVENTNO" prefix to determine which of its internal event multiplexing subsystems to use. On Windows, Libevent only has access to its "WIN32" subsystem. If a system environment variable, "EVENTNOWIN32" exists on a Windows client, Libevent will fail and be unable to allocate any event base.
The easiest remedy is to remove the system environment variable via the System control panel ("Advanced system settings", "Environment variables", system NOT user dialog panel). Once it has been removed, the system will need to be restarted for the change to be noticed.
Published Date: 07/13/2017
This article not have what you need? Not find what you were looking for? Think this article can be improved? Please let us know at firstname.lastname@example.org.