mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: fix nullpointers when removing crashed Media Node
parent
132653cde7
commit
3b3fcaa1f0
|
@ -649,8 +649,8 @@ public class SessionEventsHandler {
|
|||
* This handler must be called before cleaning any sessions or recordings hosted
|
||||
* by the crashed Media Node
|
||||
*/
|
||||
public void onMediaNodeCrashed(Kms kms, long timeOfKurentoDisconnection, List<String> sessionIds,
|
||||
List<String> recordingIds) {
|
||||
public void onMediaNodeCrashed(Kms kms, String environmentId, long timeOfKurentoDisconnection,
|
||||
List<String> sessionIds, List<String> recordingIds) {
|
||||
}
|
||||
|
||||
public void onMasterNodeCrashed(CDREventNodeCrashed event) {
|
||||
|
|
|
@ -87,7 +87,8 @@ public class FixedOneKmsManager extends KmsManager {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void removeMediaNodeUponCrash(String mediaNodeId) {
|
||||
protected String removeMediaNodeUponCrash(String mediaNodeId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -222,7 +222,7 @@ public abstract class KmsManager {
|
|||
|
||||
// 1. Remove Media Node from cluster
|
||||
log.warn("Removing Media Node {} after crash", kms.getId());
|
||||
removeMediaNodeUponCrash(kms.getId());
|
||||
String environmentId = removeMediaNodeUponCrash(kms.getId());
|
||||
|
||||
// 2. Close all sessions and recordings with reason "nodeCrashed"
|
||||
log.warn("Closing {} sessions hosted by KMS with uri {}: {}", kms.getKurentoSessions().size(),
|
||||
|
@ -237,8 +237,8 @@ public abstract class KmsManager {
|
|||
}
|
||||
|
||||
// 3. Send nodeCrashed webhook event
|
||||
sessionEventsHandler.onMediaNodeCrashed(kms, timeOfKurentoDisconnection, affectedSessionIds,
|
||||
affectedRecordingIds);
|
||||
sessionEventsHandler.onMediaNodeCrashed(kms, environmentId, timeOfKurentoDisconnection,
|
||||
affectedSessionIds, affectedRecordingIds);
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -337,7 +337,7 @@ public abstract class KmsManager {
|
|||
public abstract void decrementActiveRecordings(RecordingProperties recordingProperties, String recordingId,
|
||||
Session session);
|
||||
|
||||
protected abstract void removeMediaNodeUponCrash(String mediaNodeId);
|
||||
protected abstract String removeMediaNodeUponCrash(String mediaNodeId);
|
||||
|
||||
@PostConstruct
|
||||
protected abstract void postConstructInitKurentoClients();
|
||||
|
|
|
@ -26,8 +26,6 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import javax.ws.rs.ProcessingException;
|
||||
|
||||
import com.github.dockerjava.api.model.*;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -41,11 +39,17 @@ import com.github.dockerjava.api.exception.ConflictException;
|
|||
import com.github.dockerjava.api.exception.DockerClientException;
|
||||
import com.github.dockerjava.api.exception.InternalServerErrorException;
|
||||
import com.github.dockerjava.api.exception.NotFoundException;
|
||||
import com.github.dockerjava.api.model.Bind;
|
||||
import com.github.dockerjava.api.model.Container;
|
||||
import com.github.dockerjava.api.model.DeviceRequest;
|
||||
import com.github.dockerjava.api.model.HostConfig;
|
||||
import com.github.dockerjava.api.model.Volume;
|
||||
import com.github.dockerjava.core.DefaultDockerClientConfig;
|
||||
import com.github.dockerjava.core.DockerClientBuilder;
|
||||
import com.github.dockerjava.core.DockerClientConfig;
|
||||
import com.github.dockerjava.core.command.ExecStartResultCallback;
|
||||
import com.github.dockerjava.core.command.PullImageResultCallback;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import io.openvidu.client.OpenViduException;
|
||||
import io.openvidu.client.OpenViduException.Code;
|
||||
|
@ -134,9 +138,7 @@ public class LocalDockerManager implements DockerManager {
|
|||
|
||||
if (enableGPU) {
|
||||
DeviceRequest deviceRequest = new DeviceRequest()
|
||||
.withCapabilities(ImmutableList.of(ImmutableList.of("gpu")))
|
||||
.withCount(-1)
|
||||
.withOptions(null);
|
||||
.withCapabilities(ImmutableList.of(ImmutableList.of("gpu"))).withCount(-1).withOptions(null);
|
||||
hostConfig.withDeviceRequests(ImmutableList.of(deviceRequest));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue