Azure / Azure/azure-libraries-for-java

vm.getPrimaryPublicIPAddressId() can throw NPE on wedged VM delete cases

未关闭
#433 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Bug Compute Compute - VM customer-reported
主要语言
Java
星标
97
派生
102
PR 合并指标
30 天内没有已合并 PR

描述

I had a wedged VM delete that caused `vm.getPrimaryPublicIPAddressId()` to throw an NPE. Since this is a possible, albeit unlikely scenario, I think `VirtualMachineImpl.getPrimaryPublicIPAddressId()` should check for nulls during this method chain:
```
public String getPrimaryPublicIPAddressId() {
return this.getPrimaryNetworkInterface().primaryIPConfiguration().publicIPAddressId();
}
```

I got the VM into this state by doing a VM delete via the SDK (I believe) while the VM create (also via the SDK) was still in progress. This put the VM in a state where it shows up in the Azure portal Resource Group blade, however when you click on the VM to get more information it shows a "Not found" page. Neither the NIC nor the public IP show up in the RG blade -- essentially the VM "exists" (the SDK thinks the VM is not null), but is in a wedged state and does not have a NIC or a public IP.

**Additional Info**
SDK version 1.5.1

The message from the activity log:
```
"statusMessage": "{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"Conflict\",\"message\":\"The request failed due to conflict with a concurrent request. \"}]}}",
```

And the stack trace:
```
java.lang.NullPointerException: null
at com.microsoft.azure.management.compute.implementation.VirtualMachineImpl.getPrimaryPublicIPAddressId(VirtualMachineImpl.java:1460)
...
```

贡献指南

打开贡献指南

调研方向

从 VirtualMachineImpl.java 的 getPrimaryPublicIPAddressId() 开始,具体检查 issue 中所示的链式调用。重现或检查 VM 缺少网络接口或公共 IP 的卡住状态,然后验证此方法在该状态下不再抛出 NPE,并返回适当的结果。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
api, cloud
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
描述清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。