Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 458556 - sys-process/iotop fails to run
Summary: sys-process/iotop fails to run
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Justin Lecher (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-21 10:08 UTC by Patrick Lauer
Modified: 2016-11-13 02:59 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Lauer gentoo-dev 2013-02-21 10:08:47 UTC
# iotop
Traceback (most recent call last):
  File "/usr/sbin/iotop-python2.7", line 16, in <module>
    main()
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 605, in main
    main_loop()
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 595, in <lambda>
    main_loop = lambda: run_iotop(options)
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 493, in run_iotop
    return curses.wrapper(run_iotop_window, options)
  File "/usr/lib64/python2.7/curses/wrapper.py", line 43, in wrapper
    return func(stdscr, *args, **kwds)
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 486, in run_iotop_window
    ui.run()
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 155, in run
    self.process_list.duration)
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 431, in refresh_display
    lines = self.get_data()
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 412, in get_data
    return list(map(format, processes))
  File "/usr/lib64/python2.7/site-packages/iotop/ui.py", line 385, in format
    cmdline = p.get_cmdline()
  File "/usr/lib64/python2.7/site-packages/iotop/data.py", line 292, in get_cmdline
    proc_status = parse_proc_pid_status(self.pid)
  File "/usr/lib64/python2.7/site-packages/iotop/data.py", line 196, in parse_proc_pid_status
    key, value = line.split(':\t', 1)

Portage 2.2.0_alpha163 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.2, glibc-2.16.0, 3.7.9-vs2.3.5.6 x86_64)
=================================================================
System uname: Linux-3.7.9-vs2.3.5.6-x86_64-AMD_Phenom-tm-_II_X4_965_Processor-with-gentoo-2.2
KiB Mem:     7921088 total,   1981116 free
KiB Swap:   29360100 total,  29080468 free
Timestamp of tree: Unknown
ld GNU ld (GNU Binutils) 2.23.1
app-shells/bash:          4.2_p42
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.3-r3
dev-util/cmake:           2.8.10.2-r1
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.6, 1.13.1
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.7.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.7 (virtual/os-headers)
sys-libs/glibc:           2.16.0
Repositories: gentoo laurentb
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -ggdb"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe -ggdb"
DISTDIR="/chroot/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirrors.sohu.com/gentoo/ http://ftp.kaist.ac.kr/pub/gentoo/ http://gentoo.mirrors.hoobly.com/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/chroot/build"
PORTDIR="/home/pl/code/gentoo-x86"
PORTDIR_OVERLAY="/var/lib/layman/laurentb"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cjk cli compat consolekit crypt cups curl cxx dbus declarative dri dts dvd dvdr dvdread emboss encode exif expat fam ffmpeg firefox flac foomaticdb fortran ftp gcj gd gdbm gif gmp gnutls gpm gtk iconv icq idn imagemagick imap imlib innodb ipod ipv6 jabber javascript jingle jpeg jpeg2k kde kdehiddenvisibility kipi lame lcms libnotify lzo mad matroska md5sum midi mmap mmx mng modules mp3 mp4 mpeg mplayer msn mudflap multilib musepack musicbrainz mysql ncurses nls nptl nsplugin offensive ogg openal openexr opengl openmp oscar pam pango pcre pdf perl php plasma png policykit ppds python qt3support qt4 quicktime raw rdesktop readline rss samba sdl semantic-desktop session speex spell sqlite sqlite3 sse sse2 sse3 ssl ssse3 startup-notification subversion svg syslog taglib tcpd threads tidy tiff tk truetype udev udisks unicode upower usb vlc vorbis wifi wmf wxwidgets wxwindows x264 xattr xcb xcomposite xine xinerama xml xmlrpc xpm xscreensaver xulrunner xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB de de_DE" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Justin Lecher (RETIRED) gentoo-dev 2013-02-21 10:23:09 UTC
anything special on this box?
Comment 2 Patrick Lauer gentoo-dev 2013-02-25 03:33:50 UTC
(In reply to comment #1)
> anything special on this box?

Possibly vserver-sources kernel. Can't reproduce it on a different machine. Any debug output you need to figure out what's happening?
Comment 3 Justin Lecher (RETIRED) gentoo-dev 2013-02-25 07:31:10 UTC
let me point upstream to this. Perhaps we can get some answers there.
Comment 4 Thomas Capricelli 2013-06-29 01:41:08 UTC
Hello, got the same problem here. The box is a vserver as well. It fails with sys-process/iotop-0.5-r1 and sys-process/iotop-0.6.
I could swear it once worked on this box, but I couldn't say if that was a previous version(0.4.4 here) or because of a change in kernel/vserver...
Comment 5 Thomas Capricelli 2013-06-29 01:47:57 UTC
The code that fails is about parsing /proc/xx/status. A quick python shows that the lines that fail are : VxID and NxID, which are exactly the lines that appear on my vserver and do not appear on any other box.

So it's definitely a vserver-related box, and probably something that upstream should fix.
Comment 6 Thomas Capricelli 2013-06-29 01:48:42 UTC
(In reply to Thomas Capricelli from comment #5)
> So it's definitely a vserver-related box, and probably something that

vserver-related PROBLEM, of course
Comment 7 Michael Weber (RETIRED) gentoo-dev 2013-07-07 07:59:56 UTC
(In reply to Thomas Capricelli from comment #5)
> The code that fails is about parsing /proc/xx/status. A quick python shows
> that the lines that fail are : VxID and NxID, which are exactly the lines
> that appear on my vserver and do not appear on any other box.
Can you please provide the output of `cat /proc/1/status` as an example, so that we can work on a patch? Thanks


(In reply to Justin Lecher from comment #3)
> let me point upstream to this. Perhaps we can get some answers there.
Is there an upstream bug report to referred to, or did you write an email?
Comment 8 Justin Lecher (RETIRED) gentoo-dev 2013-07-07 14:07:16 UTC
(In reply to Michael Weber from comment #7)
> (In reply to Justin Lecher from comment #3)
> > let me point upstream to this. Perhaps we can get some answers there.
> Is there an upstream bug report to referred to, or did you write an email?

I drop him a mail, but never got a reply.
Comment 9 Thomas Capricelli 2013-07-07 23:41:53 UTC
(In reply to Michael Weber from comment #7)
> Can you please provide the output of `cat /proc/1/status` as an example, so
> that we can work on a patch? Thanks

Sure. I thought we would just hope/wait for a fix upstream.

~ # cat /proc/1/status 
Name:   init
State:  S (sleeping)
Tgid:   1
Pid:    1
PPid:   0
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 64
Groups:
VmPeak:     4216 kB
VmSize:     4212 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:       680 kB
VmRSS:       652 kB
VmData:      172 kB
VmStk:       136 kB
VmExe:        36 kB
VmLib:      1780 kB
VmPTE:        28 kB
VmSwap:       16 kB
Threads:        1
SigQ:   1/61420
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: fffffffe57f0d8fc
SigCgt: 00000000280b2603
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp:        0
Cpus_allowed:   3
Cpus_allowed_list:      0-1
VxID: 0
NxID: 0
voluntary_ctxt_switches:        157787
nonvoluntary_ctxt_switches:     32
Comment 10 Thomas Capricelli 2014-12-26 01:20:23 UTC
problem still present with sys-process/iotop-0.6
Comment 11 Justin Lecher (RETIRED) gentoo-dev 2015-12-20 17:04:33 UTC
Dropped long ago
Comment 12 Thomas Capricelli 2015-12-20 21:06:53 UTC
What do you mean "dropped" ???
Comment 13 Justin Lecher (RETIRED) gentoo-dev 2015-12-20 22:22:16 UTC
(In reply to Thomas Capricelli from comment #12)
> What do you mean "dropped" ???

Didn't recognised that this issue still exists. We need to update the summary always.
Comment 14 Thomas Capricelli 2015-12-20 23:34:21 UTC
On the other hand, i can't confirm the bug. I've removed (emerge -C) and re-emerged iotop-0.6, and I can't reproduce the bug on the vserver where I had the bug.

It might be that vserver was patched since then to produce correct output in /proc/*/status.

For reference, the server is running 3.18.7-vs2.3.7.4, and was updated since my last confirmation (december 26th, 2014, almost one year ago).
Comment 15 Paul Wise (Debian) 2016-07-28 05:14:39 UTC
Debian iotop packager and upstream committer here.

The initial bug report didn't mention what exception was thrown, but I am betting it is this:

ValueError: need more than 1 value to unpack

I am betting iotop is choking on this line:

Groups:

However, it is hard to tell because it was copy-pasted and that could have modified the content.
Comment 16 Paul Wise (Debian) 2016-07-28 05:21:56 UTC
Could someone who uses vserver attach a tarball containing their /proc/1/status file? If you can determine which process causes this and copy that one too, that would help fixing this.

tar cf iotop-debug.tar /proc/1/status
Comment 17 Paul Wise (Debian) 2016-07-28 05:29:51 UTC
I've pushed a commit upstream that should fix this if it happens again:

http://repo.or.cz/iotop.git/commitdiff/7814f30a5ed65acd07f284bba991ca557788ee80
Comment 18 Thomas Capricelli 2016-07-28 12:10:55 UTC
(In reply to Paul Wise (Debian) from comment #16)
> Could someone who uses vserver attach a tarball containing their
> /proc/1/status file? If you can determine which process causes this and copy
> that one too, that would help fixing this.
> 
> tar cf iotop-debug.tar /proc/1/status

You misread, there's an example of /proc/1/status in comment 9 + detailed explanations of what's going on.
Comment 19 Thomas Capricelli 2016-07-28 12:15:47 UTC
(In reply to Paul Wise (Debian) from comment #17)
> I've pushed a commit upstream that should fix this if it happens again:
> 
> http://repo.or.cz/iotop.git/commitdiff/
> 7814f30a5ed65acd07f284bba991ca557788ee80


Not sure this is needed anymore. With my kernel 4.1.25-vs2.3.8.4, i can confirm that even the VxID/NxID lines are exactly as others ("VxID:<tab>0").

(and iotop works well, unpatched)
Comment 20 Paul Wise (Debian) 2016-11-13 02:59:54 UTC
Comment 9 included spaces not tabs, in all of the fields, so it wasn't useful for checking this bug.

Glad your kernel got fixed, the patch will be useful in case it ever gets reintroduced in another field though.