After waking from suspend, my Ubuntu 21.04 system had network issues. I'd guess about 50% of IP sockets failed. This included failures of both ssh
and ping
. By "fail" I mean that a connection attempt blocks, and then eventually times-out. (Aside: maybe ping
doesn't use sockets?) I believe all programs that attempted network access encountered the same failure rate.
I've been suspending the system every night for several weeks. Today was the first time I had any problems after resuming.
I rebooted the system, which seems to have solved the problem (at least until it happens again).
After rebooting, I discovered various messages in syslog
.
I see the below two lines on every suspend:
Sep 4 09:00:18 hostname kernel: [896165.908582] igc 0000:b0:00.0: no suspend buffer for PTM
Sep 4 09:00:18 hostname kernel: [896165.908589] igc 0000:af:00.0: no suspend buffer for PTM
(Aside: While the above lines refer to events that happened prior to the suspend, I believe the log entries were only created after the system resumed. Consequently, the events actually happened hours before the indicated times.)
And two identical lines on every resume:
Sep 4 09:00:18 hostname kernel: [896166.257107] igc 0000:af:00.0: no suspend buffer for PTM
Sep 4 09:00:18 hostname kernel: [896166.257177] igc 0000:b0:00.0: no suspend buffer for PTM
(Aside: Maybe there are two lines because the system has two built-in NICs?)
And here are the log entries that only occurred on my most recent resume, which is when the network problems started:
Sep 4 09:00:19 hostname kernel: [896168.214463] igc 0000:b0:00.0 enp176s0: Register Dump
Sep 4 09:00:19 hostname kernel: [896168.214467] igc 0000:b0:00.0 enp176s0: Register Name Value
Sep 4 09:00:19 hostname kernel: [896168.214478] igc 0000:b0:00.0 enp176s0: CTRL 081c0641
Sep 4 09:00:19 hostname kernel: [896168.214481] igc 0000:b0:00.0 enp176s0: STATUS 40380401
Sep 4 09:00:19 hostname kernel: [896168.214483] igc 0000:b0:00.0 enp176s0: CTRL_EXT 10000040
Sep 4 09:00:19 hostname kernel: [896168.214486] igc 0000:b0:00.0 enp176s0: MDIC 18017949
Sep 4 09:00:19 hostname kernel: [896168.214488] igc 0000:b0:00.0 enp176s0: ICR 00000001
Sep 4 09:00:19 hostname kernel: [896168.214490] igc 0000:b0:00.0 enp176s0: RCTL 04408022
Sep 4 09:00:19 hostname kernel: [896168.214497] igc 0000:b0:00.0 enp176s0: RDLEN[0-3] 00001000 00001000 00001000 00001000
Sep 4 09:00:19 hostname kernel: [896168.214504] igc 0000:b0:00.0 enp176s0: RDH[0-3] 00000000 00000000 00000000 00000000
Sep 4 09:00:19 hostname kernel: [896168.214511] igc 0000:b0:00.0 enp176s0: RDT[0-3] 000000ff 000000ff 000000ff 000000ff
Sep 4 09:00:19 hostname kernel: [896168.214518] igc 0000:b0:00.0 enp176s0: RXDCTL[0-3] 02040808 02040808 02040808 02040808
Sep 4 09:00:19 hostname kernel: [896168.214525] igc 0000:b0:00.0 enp176s0: RDBAL[0-3] 2e35d000 51576000 337b2000 29a5b000
Sep 4 09:00:19 hostname kernel: [896168.214532] igc 0000:b0:00.0 enp176s0: RDBAH[0-3] 00000001 00000001 00000002 00000001
Sep 4 09:00:19 hostname kernel: [896168.214534] igc 0000:b0:00.0 enp176s0: TCTL a50400fa
Sep 4 09:00:19 hostname kernel: [896168.214541] igc 0000:b0:00.0 enp176s0: TDBAL[0-3] 2e35d000 51576000 337b2000 29a5b000
Sep 4 09:00:19 hostname kernel: [896168.214548] igc 0000:b0:00.0 enp176s0: TDBAH[0-3] 00000001 00000002 00000001 00000001
Sep 4 09:00:19 hostname kernel: [896168.214555] igc 0000:b0:00.0 enp176s0: TDLEN[0-3] 00001000 00001000 00001000 00001000
Sep 4 09:00:19 hostname kernel: [896168.214562] igc 0000:b0:00.0 enp176s0: TDH[0-3] 00000007 00000009 00000004 00000000
Sep 4 09:00:19 hostname kernel: [896168.214568] igc 0000:b0:00.0 enp176s0: TDT[0-3] 0000000d 00000011 00000004 00000001
Sep 4 09:00:19 hostname kernel: [896168.214575] igc 0000:b0:00.0 enp176s0: TXDCTL[0-3] 02100108 02100108 02100108 02100108
Sep 4 09:00:19 hostname kernel: [896168.214576] igc 0000:b0:00.0 enp176s0: Reset adapter
And then there were many (over 19,000) entries like the below:
Sep 4 09:01:22 hostname kernel: [896231.189109] igc 0000:b0:00.0 enp176s0: Detected Tx Unit Hang
Sep 4 09:01:22 hostname kernel: [896231.189109] Tx Queue <1>
Sep 4 09:01:22 hostname kernel: [896231.189109] TDH <9>
Sep 4 09:01:22 hostname kernel: [896231.189109] TDT <9>
Sep 4 09:01:22 hostname kernel: [896231.189109] next_to_use <9>
Sep 4 09:01:22 hostname kernel: [896231.189109] next_to_clean <9>
Sep 4 09:01:22 hostname kernel: [896231.189109] buffer_info[next_to_clean]
Sep 4 09:01:22 hostname kernel: [896231.189109] time_stamp <10d596f4c>
Sep 4 09:01:22 hostname kernel: [896231.189109] next_to_watch <000000002b25478e>
Sep 4 09:01:22 hostname kernel: [896231.189109] jiffies <10d59ad90>
Sep 4 09:01:22 hostname kernel: [896231.189109] desc.status <0>
My question is, other than a full system reboot, is there some way I can manually reset/reboot the network interface from the command line?
The system is a desktop workstation, so I have keyboard access.
After rebooting, I realized that maybe I should try re-suspending and re-waking the system. But I only thought of that after doing the full reboot.