-
Notifications
You must be signed in to change notification settings - Fork 611
Open
Labels
Description
复现版本 v3.11.11
网络配置:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp125s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: enp125s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
4: enp189s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
5: enp189s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff permaddr XX:XX:XX:XX:XX:XX
7530: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
7531: bond0.204@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.XXX.XXX/24 brd XXX.XXX.XXX.XXX scope global noprefixroute bond0.204
valid_lft forever preferred_lft forever
inet6 fe80::XXXX:XXXX:XXXX:XXXX/64 scope link noprefixroute
valid_lft forever preferred_lft forever
问题日记:
[info 2025-12-23 00:23:15 hostinfo.(*SHostInfo).ensureMasterNetworks(hostinfo.go:1270)] Master ip 192.168.204.81 to fetch wire
[info 2025-12-23 00:23:15 hostinfo.(*SHostInfo).initZoneInfo(hostinfo.go:1314)] Start GetZoneInfo adf18367-169b-4a82-84cf-7f677202dcd1
[info 2025-12-23 00:23:15 hostinfo.(*SHostInfo).ensureHostRecord(hostinfo.go:1356)] Master MAC: 60:10:9e:64:77:85
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).initHostRecord(hostinfo.go:1215)] host health manager on host down
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doSendPhysicalNicInfo(hostinfo.go:1801)] upload physical nic: enp125s0f0(60:10:9e:64:77:81)
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doUploadNicInfoInternal(hostinfo.go:1818)] Upload NIC br: if:enp125s0f0
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doSendPhysicalNicInfo(hostinfo.go:1801)] upload physical nic: enp125s0f1(60:10:9e:64:77:82)
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doUploadNicInfoInternal(hostinfo.go:1818)] Upload NIC br: if:enp125s0f1
[warning 2025-12-23 00:23:16 hostinfo.(*SHostInfo).uploadNetworkInfo(hostinfo.go:1743)] phyNics 2 &types.SNicDevInfo{Dev:"enp189s0f0", Mac:net.HardwareAddr{0x60, 0x10, 0x9e, 0x64, 0x77, 0x85}, Speed:10000, Up:(*bool)(0x40014ac9d0), Mtu:1500} is managed interface
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doSendPhysicalNicInfo(hostinfo.go:1801)] upload physical nic: enp189s0f1(60:10:9e:64:77:86)
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doUploadNicInfoInternal(hostinfo.go:1818)] Upload NIC br: if:enp189s0f1
[info 2025-12-23 00:23:16 hostinfo.(*SHostInfo).doUploadNicInfoInternal(hostinfo.go:1818)] Upload NIC br:br0 if:bond0.204
[error 2025-12-23 00:23:16 hostinfo.(*SHostInfo).onFail(hostinfo.go:1166)] register failed: initHostNetworks: uploadNetworkInfo: doSyncNicInfo bond0.204: doUploadNicInfoInternal: modules.Hosts.PerformAction add-netif: {"bridge":"br0","interface":"bond0.204","ip_addr":"192.168.204.81","link_up":true,"mac":"60:10:9e:64:77:85","nic_type":"admin","reserve":true,"vlan_id":204,"wire":"bcast0"}: {"error":{"class":"BadRequestError","code":400,"details":"addNetif: {\"error\":{\"class\":\"BadRequestError\",\"code\":400,\"data\":{\"fields\":[{}],\"id\":\"%!v(MISSING)\"},\"details\":\"hh.Attach2Network: net.GetFreeIP: getFreeIP: {\\\"error\\\":{\\\"class\\\":\\\"InsufficientResourceError\\\",\\\"code\\\":400,\\\"data\\\":{\\\"id\\\":\\\"Out of IP address\\\"},\\\"details\\\":\\\"Out of IP address\\\"}}\"}}","request":{"body":"{\"host\":{\"bridge\":\"br0\",\"interface\":\"bond0.204\",\"ip_addr\":\"192.168.204.81\",\"link_up\":true,\"mac\":\"60:...id\":204,\"wire\":\"bcast0\"}}","headers":{"Content-Length":"181","Content-Type":"application/json","User-Agent":"yunioncloud-go/201708","X-Auth-Token":"*","X-Yunion-Parent-Id":"","X-Yunion-Peer-Service-Name":"host","X-Yunion-Remote-Addr":"default-region:30888","X-Yunion-Span-Id":"0","X-Yunion-Span-Name":"","X-Yunion-Strace-Debug":"true","X-Yunion-Strace-Id":"f87b8359"},"method":"POST","url":"https://default-region:30888/hosts/06325b2b-860d-49be-8a93-c1e7e281de60/add-netif"}}}
排查发现,对应的 region 组件中,相应的宿主机网络信息记录不正确(下图是手动修改过后的)
具体发现初始化代码,并不会保存相应的 VLAN ID
cloudpods/pkg/compute/models/hosts.go
Lines 5801 to 5812 in a5d13ea
| return nil, fmt.Errorf("IP address %s is occupied, get %s instead", ipAddr, freeIp) | |
| } | |
| bn := &SHostnetwork{} | |
| bn.BaremetalId = hh.Id | |
| bn.SetModelManager(HostnetworkManager, bn) | |
| bn.NetworkId = net.Id | |
| bn.IpAddr = freeIp | |
| bn.MacAddr = netif.Mac | |
| err = HostnetworkManager.TableSpec().Insert(ctx, bn) | |
| if err != nil { | |
| return nil, errors.Wrap(err, "HostnetworkManager.TableSpec().Insert") | |
| } |
新版代码变动过大,但依旧没有保存相应 VLAN ID 的逻辑
相关 issue
#19771