Public bug reported:
Sometimes iotop fails with following error:
$ sudo iotop
Traceback (most recent call last):
File "/usr/sbin/iotop", line 17, in <module>
main()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 737, in main
main_loop()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 727, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 620, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python3.8/curses/__init__.py", line 105, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 612, in
run_iotop_window
ui.run()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 188, in run
self.refresh_display(iterations == 0, total, current,
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 476, in
refresh_display
lines = self.get_data()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 457, in get_data
return list(map(format, processes))
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 432, in format
cmdline = p.get_cmdline()
File "/usr/lib/python3/dist-packages/iotop/data.py", line 309, in get_cmdline
proc_status = parse_proc_pid_status(self.pid)
File "/usr/lib/python3/dist-packages/iotop/data.py", line 211, in
parse_proc_pid_status
for line in open('/proc/%d/status' % pid):
File "/usr/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 20:
invalid continuation byte
I found that /proc/pid/status can have an invalid UTF-8 symbol as part
of Name, for example:
$ cat /proc/112413/status
Name: Инстанц�
Umask: 0002
State: S (sleeping)
Tgid: 112291
Ngid: 0
Pid: 112413
PPid: 112287
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 4096
Groups: 4 24 27 30 46 116 126 1000
NStgid: 112291
NSpid: 112413
NSpgid: 112287
NSsid: 15882
VmPeak: 11092600 kB
VmSize: 11092564 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 5985748 kB
VmRSS: 5971968 kB
RssAnon: 5963752 kB
RssFile: 8212 kB
RssShmem: 4 kB
VmData: 6228788 kB
VmStk: 136 kB
VmExe: 8 kB
VmLib: 23640 kB
VmPTE: 12460 kB
VmSwap: 0 kB
HugetlbPages: 0 kB
CoreDumping: 0
THP_enabled: 1
Threads: 83
SigQ: 0/126975
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000004
SigIgn: 0000000000001000
SigCgt: 2000000181004ccf
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Speculation_Store_Bypass: thread vulnerable
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed:
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 571776
nonvoluntary_ctxt_switches: 10927
The attached patch fixes the problem.
ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: iotop 0.6-24-g733f3f8-1 [modified:
usr/lib/python3/dist-packages/iotop/data.py]
ProcVersionSignature: Ubuntu 5.4.0-75.84-generic 5.4.119
Uname: Linux 5.4.0-75-generic x86_64
ApportVersion: 2.20.11-0ubuntu27.18
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Fri Jun 18 15:19:11 2021
Dependencies:
InstallationDate: Installed on 2020-11-24 (205 days ago)
InstallationMedia: Ubuntu 18.04.3 LTS "Bionic Beaver" - Release amd64 (20190805)
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=ru_RU.UTF-8
SHELL=/bin/bash
SourcePackage: iotop
UpgradeStatus: Upgraded to focal on 2020-11-25 (205 days ago)
** Affects: iotop (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug focal
** Patch added: "fix-iotop-encoding-errors.diff"
https://bugs.launchpad.net/bugs/1932523/+attachment/5505435/+files/fix-iotop-encoding-errors.diff
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1932523
Title:
iotop can raise UnicodeDecodeError because /proc/pid/status can have
non-utf-8 data in Name
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/iotop/+bug/1932523/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs