openbmc / webui-vue

Web-based user interface built on Vue.js for managing OpenBMC systems
https://openbmc.github.io/webui-vue/
Apache License 2.0
57 stars 55 forks source link

Network settings for eth1 may actually take effective for eth0 sometimes. #125

Open yongyuandeconan opened 4 months ago

yongyuandeconan commented 4 months ago

Network settings such as DHCP or IP changes for eth1 may actually take effective for eth0 sometimes.

To Reproduce Steps to reproduce the behavior:

  1. Go to "Settings" -> "Network"
  2. Click on 'eth1' tab on "Network" page then add a new series of IP settings.
  3. Continue to add a new IP for eth1.
  4. You can see the first IP add action works well but the second one takes effective for eth0 interface. Actually a new IP is added for eth0.
  5. In browser's debug page "Network" the first action triggers a redfish PATCH API "redfish/v1/Managers/bmc/EthernetInterfaces/eth1". But the second triggers "redfish/v1/Managers/bmc/EthernetInterfaces/eth1".
  6. When this issue happens switch 'eth1' tab to 'eth0' then back to 'eth1' can successfully set related settings to eth1.

Expected behavior IP settings should be set for the right eth interface.

Screenshots image

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

yongyuandeconan commented 4 months ago

root cause: https://github.com/openbmc/webui-vue/blob/210b12760d2c4020387e132c759ec2ae9b5f5490/src/store/modules/Settings/NetworkStore.js#L102

mdmillerii commented 3 months ago
  1. In browser's debug page "Network" the first action triggers a redfish PATCH API "redfish/v1/Managers/bmc/EthernetInterfaces/eth1". But the second triggers "redfish/v1/Managers/bmc/EthernetInterfaces/eth1".

I'm failing to see the difference, is this an editing error? If so can you correct?

In your commentroot cause: you appear to identify where you believe the code is issuing the request but not a reason for why the code is wrong or the issue you believe is occurring is being triggered.

yongyuandeconan commented 3 months ago
  1. In browser's debug page "Network" the first action triggers a redfish PATCH API "redfish/v1/Managers/bmc/EthernetInterfaces/eth1". But the second triggers "redfish/v1/Managers/bmc/EthernetInterfaces/eth1".

I'm failing to see the difference, is this an editing error? If so can you correct?

In your commentroot cause: you appear to identify where you believe the code is issuing the request but not a reason for why the code is wrong or the issue you believe is occurring is being triggered.

Sorry, I mean "redfish/v1/Managers/bmc/EthernetInterfaces/eth0" for the second IP adding action.

mdmillerii commented 3 months ago

orry, I mean "redfish/v1/Managers/bmc/EthernetInterfaces/eth0" for the second IP adding action.

Great, a bit less confusion.

You identified the line of code that is possibly issueing the request. Can you trace back why it seems to have the

Reading your original description again, this occurs when you try to change multiple settings at once? Can you give a specific example list of which fields you tried to change?

Do you see a patch for each field or one for multiple fields? wrong parameter in the incorrect invocation? Is it looping with the state choosing the tab out of scope? Looping for the interface inside vs loop for modified fields?

I'm not a web developer but I didn't see anyone else jumping in to help you isolate the error. Just trying to help you state the observation in detail.