Ethernet and Wifi Static IP are reset each time when network settings are accessed |
||||||||||||
Issue descriptionChromeOS version: 63,64,65,66 ChromeOS device model: any Case#: 15193857 Description: Reproduced on most of recent versions in SVL-TC3: When configured, static IP settings for ethernet are working fine, unless users access network settings. After that settings are reset to default. Steps to reproduce: 1. Connect chromebook to ethernet, configure static IP for ethernet, e.g. IP 102.168.10.100 mask 255.255.255.0 gw 192.168.10.1 at login page. 2. Device works fine, network settings are remembered and applied, even after restarts, adding users, guest mode, etc. 3. Navigate to network settings at login page. Current Behavior / Reproduction: Static IP settings are reset to 192.168.1.1 per screehshot Expected Behavior: Settings are not reset and remains as configured previously.
,
Mar 21 2018
,
Mar 21 2018
snanda@, kirtika@, can you review? We started to receive a few reports from enterprise customers.
,
Mar 21 2018
Found relevant UpdateFromIPConfig events in net.log, but it seems like the network used for testing is not working. 2018-03-21T10:55:02.209695-07:00 INFO shill[1374]: [INFO:connection.cc(272)] UpdateFromIPConfig: Flushing old addresses and routes. 2018-03-21T10:55:02.210962-07:00 INFO shill[1374]: [INFO:connection.cc(277)] UpdateFromIPConfig: Installing with parameters: local=192.168.10.12 broadcast=192.168.10.255 peer=<unknown> gateway=192.168.1.1 2018-03-21T10:55:22.286257-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(277)] Connection diagnostics events: 2018-03-21T10:55:22.286307-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #0: Event: Portal detection Phase: End (DNS) Result: Timeout 2018-03-21T10:55:22.286337-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #1: Event: Ping DNS servers Phase: Start Result: Success 2018-03-21T10:55:22.286368-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #2: Event: Ping DNS servers Phase: End Result: Failure Msg: No DNS servers responded to pings. Pinging first DNS server at 8.8.4.4 2018-03-21T10:55:22.286578-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #3: Event: Find route Phase: Start Result: Success Msg: Requesting route to 8.8.4.4 2018-03-21T10:55:22.286600-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #4: Event: Find route Phase: End Result: Success Msg: Found route to 8.8.4.4 (remote) 2018-03-21T10:55:22.286615-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #5: Event: ARP table lookup Phase: Start Result: Success Msg: Finding ARP table entry for 8.8.4.4 2018-03-21T10:55:22.286674-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #6: Event: ARP table lookup Phase: End Result: Failure Msg: Could not find ARP table entry for 8.8.4.4 2018-03-21T10:55:22.286805-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #7: Event: IP collision check Phase: Start Result: Success 2018-03-21T10:55:22.286835-07:00 INFO shill[1374]: [INFO:connection_diagnostics.cc(279)] #8: Event: IP collision check Phase: End Result: Failure Msg: No IP collision found 2018-03-21T10:56:45.818343-07:00 WARNING shill[1374]: [WARNING:connection.cc(242)] Broadcast address is not set. Using default. 2018-03-21T10:56:45.818367-07:00 INFO shill[1374]: [INFO:connection.cc(272)] UpdateFromIPConfig: Flushing old addresses and routes. 2018-03-21T10:56:45.818908-07:00 INFO shill[1374]: [INFO:connection.cc(277)] UpdateFromIPConfig: Installing with parameters: local=192.168.1.1 broadcast=192.168.1.255 peer=<unknown> gateway=192.168.1.1 marchuk@, does the issue repro with working networks too?
,
Mar 21 2018
Yes, (in #2 repro, forgot to specify gateway to 192.168.10.1). On working networks it's also reproduced, both on ethernet and wifi
,
Mar 21 2018
Thanks for the info. I am also able to see this issue - static IP config resets to 192.168.1.1 when you open settings outside of user sessions. 1) Boot device, connect to wifi and configure static IP (Go to settings > network > gear icon, and disable "Configure IP address automatically") 2) Open the network setting UI again and see IP address is set to 192.168.1.1 In other words, if I connect to wifi and configure static IP and do NOT open the settings UI again, I can keep the connection and sign-in to user accounts. This would be a workaround. snanda@, can you review?
,
Mar 21 2018
My simple repro sequence:
1) Reboot system, get back to the login page
2) System menu -> network -> gear icon
3) Turn off "Configure IP address automatically"
4) Static IP field autopopulates with the last IP obtained via DHCP. Close dialog.
5) Static IP is OK (confirmed by clicking the (i) icon). This gets sent to shill around line 14359 in log.txt.
6) System menu -> network -> gear icon
7) Dialog now shows "Configure IP address automatically" disabled (good) but defaults back to 192.168.1.1 IP configuration (bad). The bad configuration gets sent to shill around line 16871 in log.txt.
Sniffing dbus, I see that shill is returning the correct static IP configuration from GetProperties, but right after Chrome receives that information, it immediately overwrites it with the "192.168.1.1" IPs:
method call time=1521669155.837177 sender=:1.7 -> destination=org.chromium.flimflam serial=658 path=/service/2; interface=org.chromium.flimflam.Service; member=GetProperties
method return time=1521669155.837502 sender=:1.33 -> destination=:1.7 serial=1141 reply_serial=658
[snip]
dict entry(
string "Device"
variant object path "/device/eth0"
)
[snip]
dict entry(
string "GUID"
variant string "36b352de-dd10-493a-a36a-5d2d00c0131c"
)
dict entry(
string "IPConfig"
variant object path "/ipconfig/eth0_0_dhcp"
)
[snip]
dict entry(
string "SavedIPConfig"
variant array [
dict entry(
string "Address"
variant string "100.127.29.55"
)
dict entry(
string "ExcludedRoutes"
variant array [
]
)
dict entry(
string "Gateway"
variant string "100.127.31.254"
)
dict entry(
string "IncludedRoutes"
variant array [
]
)
dict entry(
string "Mtu"
variant int32 0
)
dict entry(
string "NameServers"
variant array [
string "8.8.8.8"
string "8.8.4.4"
]
)
dict entry(
string "PeerAddress"
variant string ""
)
dict entry(
string "Prefixlen"
variant int32 21
)
dict entry(
string "SearchDomains"
variant array [
string "corp.google.com"
string "prod.google.com"
string "prodz.google.com"
string "google.com"
]
)
]
)
dict entry(
string "State"
variant string "online"
)
dict entry(
string "StaticIP.Address"
variant string "100.127.29.55"
)
dict entry(
string "StaticIP.Gateway"
variant string "100.127.31.254"
)
dict entry(
string "StaticIP.Prefixlen"
variant int32 21
)
dict entry(
string "StaticIPConfig"
variant array [
dict entry(
string "Address"
variant string "100.127.29.55"
)
dict entry(
string "Gateway"
variant string "100.127.31.254"
)
dict entry(
string "Prefixlen"
variant int32 21
)
]
)
[snip]
dict entry(
string "UIData"
variant string "{"user_settings":{"IPAddressConfigType":"Static","NameServersConfigType":"DHCP","StaticIPConfig":{"Gateway":"100.127.31.254","IPAddress":"100.127.29.55","RoutingPrefix":21,"Type":"IPv4"},"Type":"Ethernet"}}"
)
[snip]
dict entry(
string "Visible"
variant boolean true
)
]
method call time=1521669155.877609 sender=:1.7 -> destination=org.chromium.flimflam serial=659 path=/service/2; interface=org.chromium.flimflam.Service; member=SetProperties
array [
dict entry(
string "GUID"
variant string "36b352de-dd10-493a-a36a-5d2d00c0131c"
)
dict entry(
string "Profile"
variant string "/profile/default"
)
dict entry(
string "StaticIPConfig"
variant array [
]
)
dict entry(
string "UIData"
variant string "{"user_settings":{"IPAddressConfigType":"DHCP","NameServersConfigType":"DHCP","Type":"Ethernet"}}"
)
]
method call time=1521669155.877650 sender=:1.7 -> destination=org.chromium.flimflam serial=660 path=/device/eth0; interface=org.chromium.flimflam.Device; member=GetProperties
method call time=1521669155.879503 sender=:1.7 -> destination=org.chromium.flimflam serial=661 path=/service/2; interface=org.chromium.flimflam.Service; member=SetProperties
array [
dict entry(
string "GUID"
variant string "36b352de-dd10-493a-a36a-5d2d00c0131c"
)
dict entry(
string "Profile"
variant string "/profile/default"
)
dict entry(
string "StaticIPConfig"
variant array [
dict entry(
string "Address"
variant string "192.168.1.1"
)
dict entry(
string "Gateway"
variant string "192.168.1.1"
)
dict entry(
string "Prefixlen"
variant int32 24
)
]
)
dict entry(
string "UIData"
variant string "{"user_settings":{"IPAddressConfigType":"Static","NameServersConfigType":"DHCP","StaticIPConfig":{"Gateway":"192.168.1.1","IPAddress":"192.168.1.1","RoutingPrefix":24,"Type":"IPv4"},"Type":"Ethernet"}}"
)
]
I think |this.ipConfig_| might not be getting set prior to entering this function?
https://cs.chromium.org/chromium/src/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js?q=%22192.168.1.1%22+chromeos&sq=package:chromium&l=115&dr=C
,
Mar 21 2018
Ugh, looks like this has been around for a while. Looking into it now.
,
Mar 21 2018
It looks like this only appears to occur when inspecting the network properties from the login screen. Please confirm.
,
Mar 21 2018
Yes - Checking IP config within user session or guest mode doesn't reset client ip, if that what #c9 is about.
,
Mar 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b69bc652e78052d674228215cf1f59a015dfe4b8 commit b69bc652e78052d674228215cf1f59a015dfe4b8 Author: Steven Bennetts <stevenjb@chromium.org> Date: Thu Mar 22 02:31:29 2018 Network config: Only call automaticChanged_ on user action Currently setting automatic_ may trigger automaticChanged_ before ipConfig_ is set, causing unexpected behavior. We should only trigger the automaticChanged_ function on user action. Bug: 823525 Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation Change-Id: Id653bb88bb20b22abd9c85d8c1417b2b8355f5ca Reviewed-on: https://chromium-review.googlesource.com/974510 Reviewed-by: Toni Barzic <tbarzic@chromium.org> Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Cr-Commit-Position: refs/heads/master@{#544954} [modify] https://crrev.com/b69bc652e78052d674228215cf1f59a015dfe4b8/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html [modify] https://crrev.com/b69bc652e78052d674228215cf1f59a015dfe4b8/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
,
Mar 22 2018
,
Mar 23 2018
This bug requires manual review: M66 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 23 2018
@Josafat, can you review if this can be merged to M66? This issue affects ChromeOS connectivity, and is impacting large EDU deployment.
,
Mar 26 2018
,
Mar 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1b177573352b87118911e8bcd2bdbc04e859bc8a commit 1b177573352b87118911e8bcd2bdbc04e859bc8a Author: Steven Bennetts <stevenjb@chromium.org> Date: Mon Mar 26 17:29:40 2018 Network config: Only call automaticChanged_ on user action Currently setting automatic_ may trigger automaticChanged_ before ipConfig_ is set, causing unexpected behavior. We should only trigger the automaticChanged_ function on user action. TBR=stevenjb@chromium.org (cherry picked from commit b69bc652e78052d674228215cf1f59a015dfe4b8) Bug: 823525 Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation Change-Id: Id653bb88bb20b22abd9c85d8c1417b2b8355f5ca Reviewed-on: https://chromium-review.googlesource.com/974510 Reviewed-by: Toni Barzic <tbarzic@chromium.org> Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#544954} Reviewed-on: https://chromium-review.googlesource.com/981077 Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Cr-Commit-Position: refs/branch-heads/3359@{#438} Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276} [modify] https://crrev.com/1b177573352b87118911e8bcd2bdbc04e859bc8a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html [modify] https://crrev.com/1b177573352b87118911e8bcd2bdbc04e859bc8a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
,
Mar 27 2018
Not resetting anymore on both ethernet and wifi on 66.0.3359.62 for me
,
May 10 2018
Verified this on M66-10452.85.0 for Wifi & Ethernet, it WAI. |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by marchuk@chromium.org
, Mar 21 20183.9 MB
3.9 MB View Download
1.5 MB
1.5 MB View Download