Skip to content

Commit 9d2004f

Browse files
littleyaclaude
andcommitted
<fix>[host]: avoid stale context timeout for capacity checks
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 50c796f commit 9d2004f

4 files changed

Lines changed: 14 additions & 8 deletions

File tree

compute/src/main/java/org/zstack/compute/host/HostAfterConnectHookExtensionPoint.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@
44
import org.zstack.header.host.ConnectHostInfo;
55
import org.zstack.header.host.HostInventory;
66

7+
/**
8+
* Runs after the hypervisor connect hook and before pre-connect extensions.
9+
*/
710
public interface HostAfterConnectHookExtensionPoint {
11+
/**
12+
* Returns a flow to run after host connection.
13+
*
14+
* @param reconnect whether this connect was triggered by host reconnect
15+
* @return null to skip, or a flow to join the connect chain
16+
*/
817
Flow createAfterConnectHookFlow(HostInventory host, ConnectHostInfo info, boolean reconnect);
918
}

compute/src/main/java/org/zstack/compute/host/HostManagerImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.zstack.core.defer.Deferred;
1515
import org.zstack.core.errorcode.ErrorFacade;
1616
import org.zstack.core.thread.*;
17-
import org.zstack.core.timeout.ApiTimeoutManager;
1817
import org.zstack.core.workflow.FlowChainBuilder;
1918
import org.zstack.header.AbstractService;
2019
import org.zstack.header.allocator.HostAllocatorConstant;
@@ -93,8 +92,6 @@ public class HostManagerImpl extends AbstractService implements HostManager, Man
9392
private ResourceConfigFacade rcf;
9493
@Autowired
9594
private ClusterResourceConfigInitializer crci;
96-
@Autowired
97-
private ApiTimeoutManager timeoutMgr;
9895

9996
private Map<Class, HostBaseExtensionFactory> hostBaseExtensionFactories = new HashMap<>();
10097
private List<HostExtensionManager> hostExtensionManagers = new ArrayList<>();
@@ -821,7 +818,7 @@ private void reportHostCapacity() {
821818
new While<>(hostUuids).step((hostUuid, completion) -> {
822819
CheckHostCapacityMsg msg = new CheckHostCapacityMsg();
823820
msg.setHostUuid(hostUuid);
824-
timeoutMgr.setMessageTimeout(msg);
821+
msg.setTimeout(HostConstant.CHECK_HOST_CAPACITY_TIMEOUT);
825822
bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid);
826823
bus.send(msg, new CloudBusCallBack(completion) {
827824
@Override

header/src/main/java/org/zstack/header/host/HostConstant.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package org.zstack.header.host;
22

3+
import java.util.concurrent.TimeUnit;
34

45
public interface HostConstant {
56
public static final String SERVICE_ID = "host";
67

78
public static final String ACTION_CATEGORY = "host";
89

10+
long CHECK_HOST_CAPACITY_TIMEOUT = TimeUnit.MINUTES.toMillis(30);
11+
912
String HOST_SYNC_SIGNATURE_PREFIX = "Host-";
1013

1114
String HOST_ARCHITECTURE_X86_64 = "x86_64";

plugin/kvm/src/main/java/org/zstack/kvm/KVMHostCapacityExtension.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import org.zstack.core.cloudbus.CloudBus;
55
import org.zstack.core.cloudbus.CloudBusCallBack;
66
import org.zstack.core.errorcode.ErrorFacade;
7-
import org.zstack.core.timeout.ApiTimeoutManager;
87
import org.zstack.header.core.Completion;
98
import org.zstack.header.core.NopeCompletion;
109
import org.zstack.header.core.workflow.Flow;
@@ -24,14 +23,12 @@ public class KVMHostCapacityExtension implements KVMHostConnectExtensionPoint, H
2423
@Autowired
2524
private ErrorFacade errf;
2625
@Autowired
27-
private ApiTimeoutManager timeoutMgr;
28-
@Autowired
2926
private ResourceConfigFacade rcf;
3027

3128
public void reportCapacity(HostInventory host, Completion completion) {
3229
CheckHostCapacityMsg msg = new CheckHostCapacityMsg();
3330
msg.setHostUuid(host.getUuid());
34-
timeoutMgr.setMessageTimeout(msg);
31+
msg.setTimeout(HostConstant.CHECK_HOST_CAPACITY_TIMEOUT);
3532
bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, host.getUuid());
3633
bus.send(msg, new CloudBusCallBack(completion) {
3734
@Override

0 commit comments

Comments
 (0)