Memory leak in session_manager container_config_add_cgroup_device from login_manager ParseDeviceList |
||||
Issue descriptionhttps://build.chromium.org/p/chromiumos.chromium/builders/amd64-generic-tot-asan-informational/builds/12996 chromeos-login-0.0.2-r2858: Error: /var/cache/portage/chromeos-base/chromeos-login/out/Default/session_manager_test: failed with exit code 1 chromeos-login-0.0.2-r2858: * ERROR: chromeos-base/chromeos-login-0.0.2-r2858::chromiumos failed (test phase): chromeos-login-0.0.2-r2858: * (no error message) chromeos-login-0.0.2-r2858: * chromeos-login-0.0.2-r2858: * Call stack: chromeos-login-0.0.2-r2858: * ebuild.sh, line 93: Called src_test chromeos-login-0.0.2-r2858: * environment, line 3637: Called platform_src_test chromeos-login-0.0.2-r2858: * environment, line 3209: Called platform_pkg_test chromeos-login-0.0.2-r2858: * environment, line 3191: Called platform_test 'run' '/build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/session_manager_test' '0' '' '' chromeos-login-0.0.2-r2858: * environment, line 3242: Called die chromeos-login-0.0.2-r2858: * The specific snippet of code: chromeos-login-0.0.2-r2858: * "${cmd[@]}" || die chromeos-login-0.0.2-r2858: * chromeos-login-0.0.2-r2858: * If you need support, post the output of `emerge --info '=chromeos-base/chromeos-login-0.0.2-r2858::chromiumos'`, chromeos-login-0.0.2-r2858: * the complete build log and the output of `emerge -pqv '=chromeos-base/chromeos-login-0.0.2-r2858::chromiumos'`. chromeos-login-0.0.2-r2858: chromeos-login-0.0.2-r2858: * ASAN error detected: chromeos-login-0.0.2-r2858: * chromeos-login-0.0.2-r2858: * ================================================================= chromeos-login-0.0.2-r2858: * ==17==ERROR: LeakSanitizer: detected memory leaks chromeos-login-0.0.2-r2858: * chromeos-login-0.0.2-r2858: * Direct leak of 28 byte(s) in 1 object(s) allocated from: chromeos-login-0.0.2-r2858: * #0 0x7f81e1e9e0fd in __interceptor_realloc (/var/cache/portage/chromeos-base/chromeos-login/out/Default/session_manager_test+0x7210fd) chromeos-login-0.0.2-r2858: * #1 0x7f81e1664753 in container_config_add_cgroup_device /build/amd64-generic/var/cache/portage/chromeos-base/libcontainer/out/Default/../../../../../../../../../mnt/host/source/src/platform2/libcontainer/libcontainer.c:413:12 chromeos-login-0.0.2-r2858: * #2 0x7f81e16650a4 in container_config_add_device /build/amd64-generic/var/cache/portage/chromeos-base/libcontainer/out/Default/../../../../../../../../../mnt/host/source/src/platform2/libcontainer/libcontainer.c:474:7 chromeos-login-0.0.2-r2858: * #3 0x7f81e2287c39 in login_manager::(anonymous namespace)::ParseDeviceList(base::DictionaryValue const&, std::unique_ptr<container_config, void (*)(container_config*)>*) /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/container_config_parser.cc:408:5 chromeos-login-0.0.2-r2858: * #4 0x7f81e2287c39 in login_manager::(anonymous namespace)::ParseLinuxConfigDict(base::DictionaryValue const&, std::unique_ptr<container_config, void (*)(container_config*)>*) /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/container_config_parser.cc:490 chromeos-login-0.0.2-r2858: * #5 0x7f81e2287c39 in login_manager::(anonymous namespace)::ParseConfigDicts(base::DictionaryValue const&, base::DictionaryValue const&, base::FilePath const&, std::string const&, std::unique_ptr<container_config, void (*)(container_config*)>*) /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/container_config_parser.cc:531 chromeos-login-0.0.2-r2858: * #6 0x7f81e2281076 in login_manager::ParseContainerConfig(std::string const&, std::string const&, std::string const&, std::string const&, std::string const&, base::FilePath const&, std::unique_ptr<container_config, void (*)(container_config*)>*) /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/container_config_parser.cc:575:8 chromeos-login-0.0.2-r2858: * #7 0x7f81e1f2129d in login_manager::ContainerConfigParserTest_TestBasicConfigAndroid_Test::TestBody() /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/container_config_parser_unittest.cc:203:3 chromeos-login-0.0.2-r2858: * #8 0x7f81e1759bef in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2078:10 chromeos-login-0.0.2-r2858: * #9 0x7f81e1759bef in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2114 chromeos-login-0.0.2-r2858: * #10 0x7f81e173b111 in testing::Test::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2150:5 chromeos-login-0.0.2-r2858: * #11 0x7f81e173c510 in testing::TestInfo::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2326:11 chromeos-login-0.0.2-r2858: * #12 0x7f81e173cd56 in testing::TestCase::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2444:28 chromeos-login-0.0.2-r2858: * #13 0x7f81e17464c6 in testing::internal::UnitTestImpl::RunAllTests() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:4315:43 chromeos-login-0.0.2-r2858: * #14 0x7f81e175a8af in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2078:10 chromeos-login-0.0.2-r2858: * #15 0x7f81e175a8af in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:2114 chromeos-login-0.0.2-r2858: * #16 0x7f81e1746081 in testing::UnitTest::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.7.0/work/gtest-1.7.0-abi_x86_64.amd64/./src/gtest.cc:3926:10 chromeos-login-0.0.2-r2858: * #17 0x7f81e22487c5 in RUN_ALL_TESTS() /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../usr/include/gtest/gtest.h:2288:46 chromeos-login-0.0.2-r2858: * #18 0x7f81e22487c5 in main /build/amd64-generic/var/cache/portage/chromeos-base/chromeos-login/out/Default/../../../../../../../../../mnt/host/source/src/platform2/login_manager/session_manager_testrunner.cc:11 chromeos-login-0.0.2-r2858: * #19 0x7f81df602815 in __libc_start_main /var/tmp/portage/cross-x86_64-cros-linux-gnu/glibc-2.23-r6/work/glibc-2.23/csu/../csu/libc-start.c:289 chromeos-login-0.0.2-r2858: * #20 0x7f81e1dd74b8 in _start (/var/cache/portage/chromeos-base/chromeos-login/out/Default/session_manager_test+0x65a4b8) dgreid, maybe a problem in libcontainer? I don't see any recent changes in src/platform2/login_manager
,
May 12 2017
I'm still seeing similar leaks on builds today: https://build.chromium.org/p/chromiumos.chromium/builders/amd64-generic-tot-asan-informational/builds/13015 but I thought I saw a fix go by. Did a fix land, or is there still an issue?
,
May 12 2017
damn commit queue hasn't been cooperating this week. I'll give it another try now.
,
May 12 2017
For other gardeners: Fix is https://chromium-review.googlesource.com/c/501535/
,
May 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a34f81648ff81edb316aff722c39f3afd41b5149 commit a34f81648ff81edb316aff722c39f3afd41b5149 Author: Dylan Reid <dgreid@chromium.org> Date: Sat May 13 03:58:04 2017 libcontainer: free cgroup_devices during destruction cgroup_devices needs to be freed when the container is destroyed. BUG= 720542 TEST=build, unittests pass, containers run on device. Change-Id: Ia87631116579acda9baa7e174689f631fc51cc73 Signed-off-by: Dylan Reid <dgreid@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/501535 Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/a34f81648ff81edb316aff722c39f3afd41b5149/libcontainer/libcontainer.c
,
May 15 2017
,
Aug 1 2017
,
Jan 22 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by dgreid@chromium.org
, May 10 2017