Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 536546 - app-emulation/docker-1.4.1 should check for CONFIG_CPUSETS CONFIG_POSIX_MQUEUE
Summary: app-emulation/docker-1.4.1 should check for CONFIG_CPUSETS CONFIG_POSIX_MQUEUE
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Kacper Kowalik (Xarthisius) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-14 04:45 UTC by Dirk Best
Modified: 2015-03-14 02:48 UTC (History)
4 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 Dirk Best 2015-01-14 04:45:08 UTC
docker-1.4.1 needs the following kernel features enabled:

- CONFIG_CPUSETS

If this is not enabled, an error message like this will be reported when running images:

$ docker run learn/tutorial echo "hello world"
FATA[0001] Error response from daemon: Cannot start container 1d0c0ca5cc7f39a271ec40c1479a80bffb7190fab97392b3453a1fc0b2dc8e78: mountpoint for cpuset not found

- CONFIG_POSIX_MQUEUE

Error message:

$ docker run learn/tutorial echo "hello world"
FATA[0002] Error response from daemon: Cannot start container 3292862107b526d9c5e595bac3a8e45db6923d86d73bc67a8b0a8a66e4cfd1a0: setup mount namespace mount system mounting mqueue into /var/lib/docker/devicemapper/mnt/3292862107b526d9c5e595bac3a8e45db6923d86d73bc67a8b0a8a66e4cfd1a0/rootfs/dev/mqueue no such device


Reproducible: Always

Steps to Reproduce:
1. Run docker with missing kernel features
2. Error reported

Actual Results:  
Error message

Expected Results:  
Running the image

Portage 2.2.14 (python 3.3.5-final-0, hardened/linux/amd64/no-multilib, gcc-4.8.3, glibc-2.19-r1, 3.14.17-hardened-r1 x86_64)
=================================================================
System uname: Linux-3.14.17-hardened-r1-x86_64-Intel-R-_Xeon-R-_CPU_E5-2620_0_@_2.00GHz-with-gentoo-2.2
KiB Mem:     2049232 total,    302104 free
KiB Swap:    4194300 total,   4194300 free
Timestamp of tree: Mon, 12 Jan 2015 08:15:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.9-r1, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.13.4
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.7.3-r1, 4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo gentoo-extras-overlay x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/gentoo-extras-overlay /usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="acl amd64 berkdb bzip2 cli cracklib crypt cxx dri gdbm hardened iconv idn ipv6 justify lzma mmx modules mysql ncurses nls nptl openmp pam pax_kernel pcre readline session sse sse2 ssl tcpd threads udev unicode urandom vhosts xattr xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 author" 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 ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Tianon 2015-03-04 15:03:48 UTC
Our kernel requirements come directly from upstream's "config/check-config.sh" script (https://github.com/docker/docker/blob/973c32c8a07bca01aa5889689f37b99694673490/contrib/check-config.sh).  I recently resynced docker-9999.ebuild in the docker-overlay to the latest which included CONFIG_POSIX_MQUEUE, but CONFIG_CPUSETS isn't in the upstream script.  I think the next step here is to update the upstream script to check for CONFIG_CPUSETS as well, and then I'll happily add it into the ebuild from there.
Comment 2 Thomas Capricelli 2015-03-13 01:48:16 UTC
I confirm, i've had the problem today. Containers wouldn't start with the error
"mountpoint for cpuset not found".

I had CONFIG_CPUSETS disabled in the kernel. Once enabled, everything worked well.

Indeed, this should be reported upstream for their (very useful) check script.
Comment 3 Malcolm Lashley 2015-03-13 13:49:47 UTC
Tianon - I agree that this is not checked by the upstream script[1] - but nevertheless it /does/ appear to be required. I'm testing docker-1.5.0 with the same results.

Perhaps we could at least add an ewarn directing people to enable CONFIG_CPUSETS IF they see the error? [ Would have saved me some digging/head-scratching. ]

[1] https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
Comment 4 Thomas Capricelli 2015-03-13 13:57:50 UTC
Would have saved me quite some time too. If upstream has fixed it, adding the test to the ebuild would be a kind of bugfix backport. Makes sense, no ?
Comment 5 Tianon 2015-03-13 15:20:13 UTC
Filed upstream: https://github.com/docker/docker/pull/11374
Comment 6 Thomas Capricelli 2015-03-13 16:45:14 UTC
And it's already done, reviewed and even merged !
Comment 7 Tianon 2015-03-13 17:19:07 UTC
Updated in the overlay, will be in docker-1.6.0.ebuild for sure.

I've leave it up to xarthisius whether he thinks we should sync this change to 1.5.0 in tree. :)
Comment 8 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2015-03-14 02:48:00 UTC
+  14 Mar 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.5.0.ebuild:
+  Check if CPUSETS are enabled in kernel wrt bug #536546 by Dirk Best <mail
+  @dirk-best.de>. Thanks to Tianon <admwiggin@gmail.com> for reporting and
+  fixing it upstream