C# Ice.PluginInitializationException for IceDiscovery when IP address is not specified
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
Can you attach the exception stack?
>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)
I believe this issue occurs only on Windows 11.
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.