diff --git a/src/plugin/net.cc b/src/plugin/net.cc index 808d6862d..95c34cefd 100644 --- a/src/plugin/net.cc +++ b/src/plugin/net.cc @@ -82,8 +82,12 @@ static ncclResult_t ncclNetPluginUnload(netPluginLib_t* pluginLib) { if ((pluginLib->dlHandle) && ((pluginLib->ncclNetPluginRefCount) == 0)) { INFO(NCCL_INIT|NCCL_NET, "Unloading plugin %s", pluginLib->name); NCCLCHECK(ncclClosePluginLib(pluginLib->dlHandle, ncclPluginTypeNet)); + char savedName[sizeof(pluginLib->name)]; + strcpy(savedName,pluginLib->name); // memset will reset the status to ncllNetPluginStateLoadReady memset(pluginLib, 0, sizeof(netPluginLib_t)); + // reset plugin name + strcpy(pluginLib->name, savedName); // reset the count of devices to UNDEF_DEV_COUNT pluginLib->netPhysDevs = pluginLib->netVirtDevs = NCCL_UNDEF_DEV_COUNT; pluginLib->collNetPhysDevs = pluginLib->collNetVirtDevs = NCCL_UNDEF_DEV_COUNT;