[ 
https://issues.apache.org/jira/browse/MESOS-3978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Till Toenshoff updated MESOS-3978:
----------------------------------
    Description: 
{noformat}
[ RUN      ] LimitedCpuIsolatorTest.ROOT_CGROUPS_Cfs
F1122 17:26:40.585412 23162 isolator_tests.cpp:455] CHECK_SOME(isolator): 
Failed to find 'cpu.cfs_quota_us'. Your kernel might be too old to use the CFS 
cgroups feature.
*** Check failure stack trace: ***
    @     0x7f81e3fc42ba  google::LogMessage::Fail()
    @     0x7f81e3fc4216  google::LogMessage::SendToLog()
    @     0x7f81e3fc3c0c  google::LogMessage::Flush()
    @     0x7f81e3fc69c6  google::LogMessageFatal::~LogMessageFatal()
    @           0x962139  _CheckFatal::~_CheckFatal()
    @          0x1305e48  
mesos::internal::tests::LimitedCpuIsolatorTest_ROOT_CGROUPS_Cfs_Test::TestBody()
    @          0x1439638  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
    @          0x1434544  
testing::internal::HandleExceptionsInMethodIfSupported<>()
    @          0x1415883  testing::Test::Run()
    @          0x1416011  testing::TestInfo::Run()
    @          0x141664c  testing::TestCase::Run()
    @          0x141cf9b  testing::internal::UnitTestImpl::RunAllTests()
    @          0x143a2c7  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
    @          0x14350d0  
testing::internal::HandleExceptionsInMethodIfSupported<>()
    @          0x141bccb  testing::UnitTest::Run()
    @           0xd324ac  RUN_ALL_TESTS()
    @           0xd3208a  main
    @     0x7f81dde20b45  (unknown)
    @           0x92ae59  (unknown)
{noformat}

This hints that our kernel does not support {{cpu.cfs_quota_us}}. For checking, 
I simply did a:

{noformat}
$ ls -l /sys/fs/cgroup/cpu/cpu.*
-rw-r--r-- 1 root root 0 Nov 22 17:28 /sys/fs/cgroup/cpu/cpu.shares
{noformat}

So obviously this kernel won't support this feature as it is not listed. A 
rather simple test in our test-suite could be used to dis/enable those tests.

{noformat}
$ ls -l /sys/fs/cgroup/cpu/cpu.cfs_quota_us
ls: cannot access /sys/fs/cgroup/cpu/cpu.cfs_quota_us: No such file or directory
$ echo $?
2
{noformat}

We should make sure that either the test itself does not break or that it is 
excluded in the test-runs when the system does not support this feature.

Vagrant generator script used:
{noformat}
export VAGRANT_CPUS=8
export VAGRANT_MEM=16384

cat << EOF > Vagrantfile
# -*- mode: ruby -*-" >
# vi: set ft=ruby :
Vagrant.configure(2) do |config|

  # Disable shared folder to prevent certain kernel module dependencies.
  config.vm.synced_folder ".", "/vagrant", disabled: true

  config.vm.hostname = "debian82"

  config.vm.box = "bento/debian-8.2"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = ENV['VAGRANT_MEM']
    vb.cpus = ENV['VAGRANT_CPUS']
  end

  config.vm.provider "vmware_fusion" do |vb|
    vb.memory = ENV['VAGRANT_MEM']
    vb.cpus = ENV['VAGRANT_CPUS']
  end

  config.vm.provision "shell", inline: <<-SHELL

    # Update the entire system.
    sudo apt-get update

    # Install Mesos dependecies.
    sudo apt-get install -y openjdk-7-jdk autoconf libtool
    sudo apt-get install -y build-essential python-dev python-boto 
libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

    # Install latest Docker.
    sudo wget -qO- https://get.docker.com/ | sh

    # Enable memory and swap cgroups.
    sudo echo "GRUB_CMDLINE_LINUX_DEFAULT=\"cgroup_enable=memory 
swapaccount=1\"" >>/etc/default/grub
    sudo grub-mkconfig -o /boot/grub/grub.cfg "$@"
  SHELL
end
EOF

vagrant up
vagrant reload

vagrant ssh -c "
sudo docker info

git clone  https://github.com/apache/mesos.git mesos
cd mesos
git checkout -b 0.26.0-rc1 0.26.0-rc1

./bootstrap
mkdir build
cd build

../configure --disable-java --disable-python
GTEST_FILTER="" make check -j$VAGRANT_CPUS
sudo ./bin/mesos-tests.sh
"
{noformat}

  was:
{noformat}
[ RUN      ] LimitedCpuIsolatorTest.ROOT_CGROUPS_Cfs
F1122 17:26:40.585412 23162 isolator_tests.cpp:455] CHECK_SOME(isolator): 
Failed to find 'cpu.cfs_quota_us'. Your kernel might be too old to use the CFS 
cgroups feature.
*** Check failure stack trace: ***
    @     0x7f81e3fc42ba  google::LogMessage::Fail()
    @     0x7f81e3fc4216  google::LogMessage::SendToLog()
    @     0x7f81e3fc3c0c  google::LogMessage::Flush()
    @     0x7f81e3fc69c6  google::LogMessageFatal::~LogMessageFatal()
    @           0x962139  _CheckFatal::~_CheckFatal()
    @          0x1305e48  
mesos::internal::tests::LimitedCpuIsolatorTest_ROOT_CGROUPS_Cfs_Test::TestBody()
    @          0x1439638  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
    @          0x1434544  
testing::internal::HandleExceptionsInMethodIfSupported<>()
    @          0x1415883  testing::Test::Run()
    @          0x1416011  testing::TestInfo::Run()
    @          0x141664c  testing::TestCase::Run()
    @          0x141cf9b  testing::internal::UnitTestImpl::RunAllTests()
    @          0x143a2c7  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
    @          0x14350d0  
testing::internal::HandleExceptionsInMethodIfSupported<>()
    @          0x141bccb  testing::UnitTest::Run()
    @           0xd324ac  RUN_ALL_TESTS()
    @           0xd3208a  main
    @     0x7f81dde20b45  (unknown)
    @           0x92ae59  (unknown)
{noformat}

This hints that our kernel does not support {{cpu.cfs_quota_us}}. For checking, 
I simply did a:

{noformat}
$ ls -l /sys/fs/cgroup/cpu/cpu.cfs_quota_us
ls: cannot access /sys/fs/cgroup/cpu/cpu.cfs_quota_us: No such file or directory
{noformat}

We should make sure that either the test itself does not break or that it is 
excluded in the test-runs when the system does not support this feature.

Vagrant generator script used:
{noformat}
export VAGRANT_CPUS=8
export VAGRANT_MEM=16384

cat << EOF > Vagrantfile
# -*- mode: ruby -*-" >
# vi: set ft=ruby :
Vagrant.configure(2) do |config|

  # Disable shared folder to prevent certain kernel module dependencies.
  config.vm.synced_folder ".", "/vagrant", disabled: true

  config.vm.hostname = "debian82"

  config.vm.box = "bento/debian-8.2"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = ENV['VAGRANT_MEM']
    vb.cpus = ENV['VAGRANT_CPUS']
  end

  config.vm.provider "vmware_fusion" do |vb|
    vb.memory = ENV['VAGRANT_MEM']
    vb.cpus = ENV['VAGRANT_CPUS']
  end

  config.vm.provision "shell", inline: <<-SHELL

    # Update the entire system.
    sudo apt-get update

    # Install Mesos dependecies.
    sudo apt-get install -y openjdk-7-jdk autoconf libtool
    sudo apt-get install -y build-essential python-dev python-boto 
libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

    # Install latest Docker.
    sudo wget -qO- https://get.docker.com/ | sh

    # Enable memory and swap cgroups.
    sudo echo "GRUB_CMDLINE_LINUX_DEFAULT=\"cgroup_enable=memory 
swapaccount=1\"" >>/etc/default/grub
    sudo grub-mkconfig -o /boot/grub/grub.cfg "$@"
  SHELL
end
EOF

vagrant up
vagrant reload

vagrant ssh -c "
sudo docker info

git clone  https://github.com/apache/mesos.git mesos
cd mesos
git checkout -b 0.26.0-rc1 0.26.0-rc1

./bootstrap
mkdir build
cd build

../configure --disable-java --disable-python
GTEST_FILTER="" make check -j$VAGRANT_CPUS
sudo ./bin/mesos-tests.sh
"
{noformat}


> Missing support for cpu.cfs_quota_us breaks test suite.
> -------------------------------------------------------
>
>                 Key: MESOS-3978
>                 URL: https://issues.apache.org/jira/browse/MESOS-3978
>             Project: Mesos
>          Issue Type: Bug
>         Environment: Debian 8, kernel 3.16.0-4-amd64, gcc 4.9.2
>            Reporter: Till Toenshoff
>
> {noformat}
> [ RUN      ] LimitedCpuIsolatorTest.ROOT_CGROUPS_Cfs
> F1122 17:26:40.585412 23162 isolator_tests.cpp:455] CHECK_SOME(isolator): 
> Failed to find 'cpu.cfs_quota_us'. Your kernel might be too old to use the 
> CFS cgroups feature.
> *** Check failure stack trace: ***
>     @     0x7f81e3fc42ba  google::LogMessage::Fail()
>     @     0x7f81e3fc4216  google::LogMessage::SendToLog()
>     @     0x7f81e3fc3c0c  google::LogMessage::Flush()
>     @     0x7f81e3fc69c6  google::LogMessageFatal::~LogMessageFatal()
>     @           0x962139  _CheckFatal::~_CheckFatal()
>     @          0x1305e48  
> mesos::internal::tests::LimitedCpuIsolatorTest_ROOT_CGROUPS_Cfs_Test::TestBody()
>     @          0x1439638  
> testing::internal::HandleSehExceptionsInMethodIfSupported<>()
>     @          0x1434544  
> testing::internal::HandleExceptionsInMethodIfSupported<>()
>     @          0x1415883  testing::Test::Run()
>     @          0x1416011  testing::TestInfo::Run()
>     @          0x141664c  testing::TestCase::Run()
>     @          0x141cf9b  testing::internal::UnitTestImpl::RunAllTests()
>     @          0x143a2c7  
> testing::internal::HandleSehExceptionsInMethodIfSupported<>()
>     @          0x14350d0  
> testing::internal::HandleExceptionsInMethodIfSupported<>()
>     @          0x141bccb  testing::UnitTest::Run()
>     @           0xd324ac  RUN_ALL_TESTS()
>     @           0xd3208a  main
>     @     0x7f81dde20b45  (unknown)
>     @           0x92ae59  (unknown)
> {noformat}
> This hints that our kernel does not support {{cpu.cfs_quota_us}}. For 
> checking, I simply did a:
> {noformat}
> $ ls -l /sys/fs/cgroup/cpu/cpu.*
> -rw-r--r-- 1 root root 0 Nov 22 17:28 /sys/fs/cgroup/cpu/cpu.shares
> {noformat}
> So obviously this kernel won't support this feature as it is not listed. A 
> rather simple test in our test-suite could be used to dis/enable those tests.
> {noformat}
> $ ls -l /sys/fs/cgroup/cpu/cpu.cfs_quota_us
> ls: cannot access /sys/fs/cgroup/cpu/cpu.cfs_quota_us: No such file or 
> directory
> $ echo $?
> 2
> {noformat}
> We should make sure that either the test itself does not break or that it is 
> excluded in the test-runs when the system does not support this feature.
> Vagrant generator script used:
> {noformat}
> export VAGRANT_CPUS=8
> export VAGRANT_MEM=16384
> cat << EOF > Vagrantfile
> # -*- mode: ruby -*-" >
> # vi: set ft=ruby :
> Vagrant.configure(2) do |config|
>   # Disable shared folder to prevent certain kernel module dependencies.
>   config.vm.synced_folder ".", "/vagrant", disabled: true
>   config.vm.hostname = "debian82"
>   config.vm.box = "bento/debian-8.2"
>   config.vm.provider "virtualbox" do |vb|
>     vb.memory = ENV['VAGRANT_MEM']
>     vb.cpus = ENV['VAGRANT_CPUS']
>   end
>   config.vm.provider "vmware_fusion" do |vb|
>     vb.memory = ENV['VAGRANT_MEM']
>     vb.cpus = ENV['VAGRANT_CPUS']
>   end
>   config.vm.provision "shell", inline: <<-SHELL
>     # Update the entire system.
>     sudo apt-get update
>     # Install Mesos dependecies.
>     sudo apt-get install -y openjdk-7-jdk autoconf libtool
>     sudo apt-get install -y build-essential python-dev python-boto 
> libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev
>     # Install latest Docker.
>     sudo wget -qO- https://get.docker.com/ | sh
>     # Enable memory and swap cgroups.
>     sudo echo "GRUB_CMDLINE_LINUX_DEFAULT=\"cgroup_enable=memory 
> swapaccount=1\"" >>/etc/default/grub
>     sudo grub-mkconfig -o /boot/grub/grub.cfg "$@"
>   SHELL
> end
> EOF
> vagrant up
> vagrant reload
> vagrant ssh -c "
> sudo docker info
> git clone  https://github.com/apache/mesos.git mesos
> cd mesos
> git checkout -b 0.26.0-rc1 0.26.0-rc1
> ./bootstrap
> mkdir build
> cd build
> ../configure --disable-java --disable-python
> GTEST_FILTER="" make check -j$VAGRANT_CPUS
> sudo ./bin/mesos-tests.sh
> "
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to