ice icon indicating copy to clipboard operation
ice copied to clipboard

C# Ice.PluginInitializationException for IceDiscovery when IP address is not specified

Open ayoitslilith opened this issue 8 months ago • 3 comments

Version

  • Ice 3.8 Nightly
  • Windows 11

Describe the bug

When attempting to initialize a communicator for a server in C# using IceDiscovery to listen for clients on Windows 11, you will get an Ice.PluginInitializationException unless you specify an IP. In my case, specifying the IP was done through a command argument dotnet run --IceDiscovery.Interface=127.0.0.1.

Expected behavior

Instead of throwing an exception, the server is expected to finish initializing and begin listening for clients.

Additional context

No response

ayoitslilith avatar Apr 21 '25 17:04 ayoitslilith

Can you attach the exception stack?

pepone avatar Apr 21 '25 17:04 pepone

>dotnet run
Unhandled exception. Ice.PluginInitializationException: Plugin 'IceDiscovery' initialization failed.
 ---> Ice.SocketException: Exception of type 'Ice.SocketException' was thrown.
 ---> System.Net.Sockets.SocketException (10049): The requested address is not valid in its context.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.SetMulticastOption(SocketOptionName optionName, MulticastOption MR)
   at Ice.Internal.Network.setMcastGroup(Socket s, IPAddress group, String iface) in D:\a\ice\ice\csharp\src\Ice\Internal\Network.cs:line 369
   --- End of inner exception stack trace ---
   at Ice.Internal.Network.setMcastGroup(Socket s, IPAddress group, String iface) in D:\a\ice\ice\csharp\src\Ice\Internal\Network.cs:line 393
   at Ice.Internal.UdpTransceiver.bind() in D:\a\ice\ice\csharp\src\Ice\Internal\UdpTransceiver.cs:line 99
   at Ice.Internal.IncomingConnectionFactory..ctor(Instance instance, EndpointI endpoint, ObjectAdapter adapter) in D:\a\ice\ice\csharp\src\Ice\Internal\ConnectionFactory.cs:line 1368
   at Ice.ObjectAdapter..ctor(Instance instance, Communicator communicator, ObjectAdapterFactory objectAdapterFactory, String name, RouterPrx router, Boolean noConfig, SslServerAuthenticationOptions serverAuthenticationOptions) in D:\a\ice\ice\csharp\src\Ice\ObjectAdapter.cs:line 1134
   at Ice.Internal.ObjectAdapterFactory.createObjectAdapter(String name, RouterPrx router, SslServerAuthenticationOptions serverAuthenticationOptions) in D:\a\ice\ice\csharp\src\Ice\Internal\ObjectAdapterFactory.cs:line 170
   at Ice.Communicator.createObjectAdapter(String name, SslServerAuthenticationOptions serverAuthenticationOptions) in D:\a\ice\ice\csharp\src\Ice\Communicator.cs:line 189
   at IceDiscovery.PluginI.initialize() in D:\a\ice\ice\csharp\src\IceDiscovery\PluginI.cs:line 79
   at Ice.PluginManagerI.initializePlugins() in D:\a\ice\ice\csharp\src\Ice\PluginManagerI.cs:line 51
   --- End of inner exception stack trace ---
   at Ice.PluginManagerI.initializePlugins() in D:\a\ice\ice\csharp\src\Ice\PluginManagerI.cs:line 59
   at Ice.Internal.Instance.finishSetup(String[]& args, Communicator communicator) in D:\a\ice\ice\csharp\src\Ice\Internal\Instance.cs:line 1009
   at Ice.Communicator.finishSetup(String[]& args) in D:\a\ice\ice\csharp\src\Ice\Communicator.cs:line 428
   at Ice.Util.initialize(InitializationData initData) in D:\a\ice\ice\csharp\src\Ice\Util.cs:line 164
   at Program.<Main>$(String[] args) in C:\Users\Lilith\Desktop\repos\ice-demos\csharp\IceDiscovery\Greeter\Server\Program.cs:line 20
   at Program.<Main>(String[] args)

ayoitslilith avatar Apr 21 '25 17:04 ayoitslilith

I believe this issue occurs only on Windows 11.

bernardnormier avatar Apr 21 '25 18:04 bernardnormier

I ran the csharp/IceDiscovery/Greeter and csharp/IceDiscovery/Replication demos on my Windows 11 machine. Both demos built and ran just fine for me.

InsertCreativityHere avatar Aug 22 '25 15:08 InsertCreativityHere