Why is memory management different inside a Docker container? I'm getting “free() invalid pointer”

Multi tool use
Multi tool use

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I am trying to run a HW dev app with a UI.



  • In the Host => no problem

  • In a Docker container => I get a free() invalid pointer error

Both are based on CentOS 7.5.



I don't understand why. I have checked the glibc versions with



yum list installed | grep glibc


and both host and Docker container have the same version (glibc-2.17-222).



What is different? I don't have access to the code and I have no idea how to solve my problem. Other libraries are exactly the same version.



That's very problematic – using the same CentOS version in host and Docker container, it behaves differently. Why?



*** Error in `X': free(): invalid pointer: 0x00007f316a80aa70 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x7f31702ae499]
/lib64/libudev.so.1(udev_device_unref+0x37)[0x7f31681ae5f7]
/lib64/libudev.so.1(+0x8a31)[0x7f31681b1a31]
/lib64/libudev.so.1(+0x8c0e)[0x7f31681b1c0e]


I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU.
This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear.



strace



strace: Process 13391 attached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
47.48 0.016584 8 2100 1803 recvmsg
24.84 0.008675 9 1016 poll
6.34 0.002214 17 134 read
6.00 0.002094 9 234 write
5.78 0.002018 8 255 writev
3.34 0.001165 14 85 68 open
1.88 0.000656 219 3 access
1.24 0.000433 27 16 5 stat
0.68 0.000239 14 17 close
0.62 0.000217 9 25 mmap
0.47 0.000164 23 7 munmap
0.38 0.000132 66 2 socket
0.25 0.000088 6 14 fstat
0.23 0.000081 6 13 mprotect
0.10 0.000034 34 1 ftruncate
0.05 0.000019 6 3 fcntl
0.05 0.000019 19 1 restart_syscall
0.05 0.000017 17 1 getcwd
0.03 0.000012 6 2 openat
0.03 0.000011 6 2 getdents
0.03 0.000010 10 1 tgkill
0.03 0.000009 9 1 lstat
0.02 0.000008 8 1 fstatfs
0.02 0.000007 7 1 1 ioctl
0.01 0.000005 5 1 readlink
0.01 0.000004 4 1 lseek
0.01 0.000004 4 1 rt_sigprocmask
0.01 0.000004 4 1 uname
0.01 0.000003 2 2 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.034926 3941 1877 total


This is before the double corruption:



10:53:31 mprotect(0x7f4c40d34000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c40f4c000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41151000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41397000, 8192, PROT_READ) = 0
10:53:31 mprotect(0x7f4c4159d000, 4096, PROT_READ) = 0
10:53:31 stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7fffb00a4540) = -1 ENOENT (No such file or directory)
10:53:31 mprotect(0x7f4c44066000, 4096, PROT_READ) = 0
10:53:31 munmap(0x7f4c89d89000, 29643) = 0
10:53:31 open("/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 10
10:53:31 fstat(10, st_mode=S_IFREG) = 0
10:53:31 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4c89f20000
10:53:31 read(10, "# see udev.conf(5) for detailsnn"..., 4096) = 49
10:53:31 read(10, "", 4096) = 0
10:53:31 close(10) = 0
10:53:31 munmap(0x7f4c89f20000, 4096) = 0
10:53:31 stat("/sys/subsystem", 0x7fffb00a4b20) = -1 ENOENT (No such file or directory)
10:53:31 openat(AT_FDCWD, "/sys/bus", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 10
10:53:31 getdents(10, /* 35 entries */, 32768) = 976
10:53:31 openat(AT_FDCWD, "/sys/bus/clockevents/devices", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
10:53:31 getdents(11, /* 11 entries */, 32768) = 336
10:53:31 readlink("/sys/bus/clockevents/devices/clockevent2", "../../../devices/system/clockeve"..., 1024) = 47
10:53:31 stat("/sys/devices/system/clockevents/clockevent2/uevent", st_mode=S_IFREG) = 0
10:53:31 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 12
10:53:31 writev(12, ["*** Error in `", 14, "tierceapp", 7, "': ", 3, "double free or corruption (out)", 31, ": 0x", 4, "00007f4c432eabc0", 16, " ***n", 5], 7) = 80


The address of the corruption 00007f4c432eabc0 doesn't link to anywhere in the strace.



Update #1:



  • If I run my container with --net=host, it's working.






share|improve this question





















  • You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
    – user2066657
    Jul 14 at 0:48










  • Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
    – Alexis_FR_JP
    Jul 14 at 1:02











  • I've never used strace then give me some time to do it. Thanks!
    – Alexis_FR_JP
    Jul 14 at 1:04






  • 1




    @Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
    – vfbsilva
    Jul 14 at 1:52










  • In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
    – Alexis_FR_JP
    Jul 14 at 3:11















up vote
0
down vote

favorite












I am trying to run a HW dev app with a UI.



  • In the Host => no problem

  • In a Docker container => I get a free() invalid pointer error

Both are based on CentOS 7.5.



I don't understand why. I have checked the glibc versions with



yum list installed | grep glibc


and both host and Docker container have the same version (glibc-2.17-222).



What is different? I don't have access to the code and I have no idea how to solve my problem. Other libraries are exactly the same version.



That's very problematic – using the same CentOS version in host and Docker container, it behaves differently. Why?



*** Error in `X': free(): invalid pointer: 0x00007f316a80aa70 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x7f31702ae499]
/lib64/libudev.so.1(udev_device_unref+0x37)[0x7f31681ae5f7]
/lib64/libudev.so.1(+0x8a31)[0x7f31681b1a31]
/lib64/libudev.so.1(+0x8c0e)[0x7f31681b1c0e]


I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU.
This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear.



strace



strace: Process 13391 attached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
47.48 0.016584 8 2100 1803 recvmsg
24.84 0.008675 9 1016 poll
6.34 0.002214 17 134 read
6.00 0.002094 9 234 write
5.78 0.002018 8 255 writev
3.34 0.001165 14 85 68 open
1.88 0.000656 219 3 access
1.24 0.000433 27 16 5 stat
0.68 0.000239 14 17 close
0.62 0.000217 9 25 mmap
0.47 0.000164 23 7 munmap
0.38 0.000132 66 2 socket
0.25 0.000088 6 14 fstat
0.23 0.000081 6 13 mprotect
0.10 0.000034 34 1 ftruncate
0.05 0.000019 6 3 fcntl
0.05 0.000019 19 1 restart_syscall
0.05 0.000017 17 1 getcwd
0.03 0.000012 6 2 openat
0.03 0.000011 6 2 getdents
0.03 0.000010 10 1 tgkill
0.03 0.000009 9 1 lstat
0.02 0.000008 8 1 fstatfs
0.02 0.000007 7 1 1 ioctl
0.01 0.000005 5 1 readlink
0.01 0.000004 4 1 lseek
0.01 0.000004 4 1 rt_sigprocmask
0.01 0.000004 4 1 uname
0.01 0.000003 2 2 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.034926 3941 1877 total


This is before the double corruption:



10:53:31 mprotect(0x7f4c40d34000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c40f4c000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41151000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41397000, 8192, PROT_READ) = 0
10:53:31 mprotect(0x7f4c4159d000, 4096, PROT_READ) = 0
10:53:31 stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7fffb00a4540) = -1 ENOENT (No such file or directory)
10:53:31 mprotect(0x7f4c44066000, 4096, PROT_READ) = 0
10:53:31 munmap(0x7f4c89d89000, 29643) = 0
10:53:31 open("/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 10
10:53:31 fstat(10, st_mode=S_IFREG) = 0
10:53:31 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4c89f20000
10:53:31 read(10, "# see udev.conf(5) for detailsnn"..., 4096) = 49
10:53:31 read(10, "", 4096) = 0
10:53:31 close(10) = 0
10:53:31 munmap(0x7f4c89f20000, 4096) = 0
10:53:31 stat("/sys/subsystem", 0x7fffb00a4b20) = -1 ENOENT (No such file or directory)
10:53:31 openat(AT_FDCWD, "/sys/bus", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 10
10:53:31 getdents(10, /* 35 entries */, 32768) = 976
10:53:31 openat(AT_FDCWD, "/sys/bus/clockevents/devices", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
10:53:31 getdents(11, /* 11 entries */, 32768) = 336
10:53:31 readlink("/sys/bus/clockevents/devices/clockevent2", "../../../devices/system/clockeve"..., 1024) = 47
10:53:31 stat("/sys/devices/system/clockevents/clockevent2/uevent", st_mode=S_IFREG) = 0
10:53:31 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 12
10:53:31 writev(12, ["*** Error in `", 14, "tierceapp", 7, "': ", 3, "double free or corruption (out)", 31, ": 0x", 4, "00007f4c432eabc0", 16, " ***n", 5], 7) = 80


The address of the corruption 00007f4c432eabc0 doesn't link to anywhere in the strace.



Update #1:



  • If I run my container with --net=host, it's working.






share|improve this question





















  • You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
    – user2066657
    Jul 14 at 0:48










  • Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
    – Alexis_FR_JP
    Jul 14 at 1:02











  • I've never used strace then give me some time to do it. Thanks!
    – Alexis_FR_JP
    Jul 14 at 1:04






  • 1




    @Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
    – vfbsilva
    Jul 14 at 1:52










  • In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
    – Alexis_FR_JP
    Jul 14 at 3:11













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am trying to run a HW dev app with a UI.



  • In the Host => no problem

  • In a Docker container => I get a free() invalid pointer error

Both are based on CentOS 7.5.



I don't understand why. I have checked the glibc versions with



yum list installed | grep glibc


and both host and Docker container have the same version (glibc-2.17-222).



What is different? I don't have access to the code and I have no idea how to solve my problem. Other libraries are exactly the same version.



That's very problematic – using the same CentOS version in host and Docker container, it behaves differently. Why?



*** Error in `X': free(): invalid pointer: 0x00007f316a80aa70 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x7f31702ae499]
/lib64/libudev.so.1(udev_device_unref+0x37)[0x7f31681ae5f7]
/lib64/libudev.so.1(+0x8a31)[0x7f31681b1a31]
/lib64/libudev.so.1(+0x8c0e)[0x7f31681b1c0e]


I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU.
This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear.



strace



strace: Process 13391 attached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
47.48 0.016584 8 2100 1803 recvmsg
24.84 0.008675 9 1016 poll
6.34 0.002214 17 134 read
6.00 0.002094 9 234 write
5.78 0.002018 8 255 writev
3.34 0.001165 14 85 68 open
1.88 0.000656 219 3 access
1.24 0.000433 27 16 5 stat
0.68 0.000239 14 17 close
0.62 0.000217 9 25 mmap
0.47 0.000164 23 7 munmap
0.38 0.000132 66 2 socket
0.25 0.000088 6 14 fstat
0.23 0.000081 6 13 mprotect
0.10 0.000034 34 1 ftruncate
0.05 0.000019 6 3 fcntl
0.05 0.000019 19 1 restart_syscall
0.05 0.000017 17 1 getcwd
0.03 0.000012 6 2 openat
0.03 0.000011 6 2 getdents
0.03 0.000010 10 1 tgkill
0.03 0.000009 9 1 lstat
0.02 0.000008 8 1 fstatfs
0.02 0.000007 7 1 1 ioctl
0.01 0.000005 5 1 readlink
0.01 0.000004 4 1 lseek
0.01 0.000004 4 1 rt_sigprocmask
0.01 0.000004 4 1 uname
0.01 0.000003 2 2 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.034926 3941 1877 total


This is before the double corruption:



10:53:31 mprotect(0x7f4c40d34000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c40f4c000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41151000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41397000, 8192, PROT_READ) = 0
10:53:31 mprotect(0x7f4c4159d000, 4096, PROT_READ) = 0
10:53:31 stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7fffb00a4540) = -1 ENOENT (No such file or directory)
10:53:31 mprotect(0x7f4c44066000, 4096, PROT_READ) = 0
10:53:31 munmap(0x7f4c89d89000, 29643) = 0
10:53:31 open("/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 10
10:53:31 fstat(10, st_mode=S_IFREG) = 0
10:53:31 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4c89f20000
10:53:31 read(10, "# see udev.conf(5) for detailsnn"..., 4096) = 49
10:53:31 read(10, "", 4096) = 0
10:53:31 close(10) = 0
10:53:31 munmap(0x7f4c89f20000, 4096) = 0
10:53:31 stat("/sys/subsystem", 0x7fffb00a4b20) = -1 ENOENT (No such file or directory)
10:53:31 openat(AT_FDCWD, "/sys/bus", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 10
10:53:31 getdents(10, /* 35 entries */, 32768) = 976
10:53:31 openat(AT_FDCWD, "/sys/bus/clockevents/devices", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
10:53:31 getdents(11, /* 11 entries */, 32768) = 336
10:53:31 readlink("/sys/bus/clockevents/devices/clockevent2", "../../../devices/system/clockeve"..., 1024) = 47
10:53:31 stat("/sys/devices/system/clockevents/clockevent2/uevent", st_mode=S_IFREG) = 0
10:53:31 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 12
10:53:31 writev(12, ["*** Error in `", 14, "tierceapp", 7, "': ", 3, "double free or corruption (out)", 31, ": 0x", 4, "00007f4c432eabc0", 16, " ***n", 5], 7) = 80


The address of the corruption 00007f4c432eabc0 doesn't link to anywhere in the strace.



Update #1:



  • If I run my container with --net=host, it's working.






share|improve this question













I am trying to run a HW dev app with a UI.



  • In the Host => no problem

  • In a Docker container => I get a free() invalid pointer error

Both are based on CentOS 7.5.



I don't understand why. I have checked the glibc versions with



yum list installed | grep glibc


and both host and Docker container have the same version (glibc-2.17-222).



What is different? I don't have access to the code and I have no idea how to solve my problem. Other libraries are exactly the same version.



That's very problematic – using the same CentOS version in host and Docker container, it behaves differently. Why?



*** Error in `X': free(): invalid pointer: 0x00007f316a80aa70 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81499)[0x7f31702ae499]
/lib64/libudev.so.1(udev_device_unref+0x37)[0x7f31681ae5f7]
/lib64/libudev.so.1(+0x8a31)[0x7f31681b1a31]
/lib64/libudev.so.1(+0x8c0e)[0x7f31681b1c0e]


I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU.
This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear.



strace



strace: Process 13391 attached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
47.48 0.016584 8 2100 1803 recvmsg
24.84 0.008675 9 1016 poll
6.34 0.002214 17 134 read
6.00 0.002094 9 234 write
5.78 0.002018 8 255 writev
3.34 0.001165 14 85 68 open
1.88 0.000656 219 3 access
1.24 0.000433 27 16 5 stat
0.68 0.000239 14 17 close
0.62 0.000217 9 25 mmap
0.47 0.000164 23 7 munmap
0.38 0.000132 66 2 socket
0.25 0.000088 6 14 fstat
0.23 0.000081 6 13 mprotect
0.10 0.000034 34 1 ftruncate
0.05 0.000019 6 3 fcntl
0.05 0.000019 19 1 restart_syscall
0.05 0.000017 17 1 getcwd
0.03 0.000012 6 2 openat
0.03 0.000011 6 2 getdents
0.03 0.000010 10 1 tgkill
0.03 0.000009 9 1 lstat
0.02 0.000008 8 1 fstatfs
0.02 0.000007 7 1 1 ioctl
0.01 0.000005 5 1 readlink
0.01 0.000004 4 1 lseek
0.01 0.000004 4 1 rt_sigprocmask
0.01 0.000004 4 1 uname
0.01 0.000003 2 2 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.034926 3941 1877 total


This is before the double corruption:



10:53:31 mprotect(0x7f4c40d34000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c40f4c000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41151000, 4096, PROT_READ) = 0
10:53:31 mprotect(0x7f4c41397000, 8192, PROT_READ) = 0
10:53:31 mprotect(0x7f4c4159d000, 4096, PROT_READ) = 0
10:53:31 stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7fffb00a4540) = -1 ENOENT (No such file or directory)
10:53:31 mprotect(0x7f4c44066000, 4096, PROT_READ) = 0
10:53:31 munmap(0x7f4c89d89000, 29643) = 0
10:53:31 open("/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 10
10:53:31 fstat(10, st_mode=S_IFREG) = 0
10:53:31 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4c89f20000
10:53:31 read(10, "# see udev.conf(5) for detailsnn"..., 4096) = 49
10:53:31 read(10, "", 4096) = 0
10:53:31 close(10) = 0
10:53:31 munmap(0x7f4c89f20000, 4096) = 0
10:53:31 stat("/sys/subsystem", 0x7fffb00a4b20) = -1 ENOENT (No such file or directory)
10:53:31 openat(AT_FDCWD, "/sys/bus", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 10
10:53:31 getdents(10, /* 35 entries */, 32768) = 976
10:53:31 openat(AT_FDCWD, "/sys/bus/clockevents/devices", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 11
10:53:31 getdents(11, /* 11 entries */, 32768) = 336
10:53:31 readlink("/sys/bus/clockevents/devices/clockevent2", "../../../devices/system/clockeve"..., 1024) = 47
10:53:31 stat("/sys/devices/system/clockevents/clockevent2/uevent", st_mode=S_IFREG) = 0
10:53:31 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 12
10:53:31 writev(12, ["*** Error in `", 14, "tierceapp", 7, "': ", 3, "double free or corruption (out)", 31, ": 0x", 4, "00007f4c432eabc0", 16, " ***n", 5], 7) = 80


The address of the corruption 00007f4c432eabc0 doesn't link to anywhere in the strace.



Update #1:



  • If I run my container with --net=host, it's working.








share|improve this question












share|improve this question




share|improve this question








edited Jul 17 at 7:36
























asked Jul 12 at 6:47









Alexis_FR_JP

155110




155110











  • You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
    – user2066657
    Jul 14 at 0:48










  • Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
    – Alexis_FR_JP
    Jul 14 at 1:02











  • I've never used strace then give me some time to do it. Thanks!
    – Alexis_FR_JP
    Jul 14 at 1:04






  • 1




    @Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
    – vfbsilva
    Jul 14 at 1:52










  • In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
    – Alexis_FR_JP
    Jul 14 at 3:11

















  • You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
    – user2066657
    Jul 14 at 0:48










  • Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
    – Alexis_FR_JP
    Jul 14 at 1:02











  • I've never used strace then give me some time to do it. Thanks!
    – Alexis_FR_JP
    Jul 14 at 1:04






  • 1




    @Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
    – vfbsilva
    Jul 14 at 1:52










  • In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
    – Alexis_FR_JP
    Jul 14 at 3:11
















You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
– user2066657
Jul 14 at 0:48




You will need to give more info. Start with the purpose of this mystery app, linger a bit on why you must run it in a docker if a small centos VM will do, and finish off with your analysis of a strace. All these will help.
– user2066657
Jul 14 at 0:48












Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
– Alexis_FR_JP
Jul 14 at 1:02





Docker or not is not my question. It's an HW dev app and shouldn't be the problem since it's working perfectly in a real Centos 7 host. Nevertheless, I rejected the VM solution because the app uses 32GB+ of RAM and huge CPU. This app is officially supported for RHEL/Centos. Even tho the version is free, the issue comes when a licensing window is supposed to appear. I guess it's checking some hardware or I don't know what.
– Alexis_FR_JP
Jul 14 at 1:02













I've never used strace then give me some time to do it. Thanks!
– Alexis_FR_JP
Jul 14 at 1:04




I've never used strace then give me some time to do it. Thanks!
– Alexis_FR_JP
Jul 14 at 1:04




1




1




@Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
– vfbsilva
Jul 14 at 1:52




@Alexis_FR_JP it seems you can't free fabiokung.com/2014/03/13/memory-inside-linux-containers
– vfbsilva
Jul 14 at 1:52












In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
– Alexis_FR_JP
Jul 14 at 3:11





In a previous version (centos:7 isn't a version but latest of 7... and yum pkgs version have changed), I could run the app using gperftools TCMalloc lib and LD_PRELOAD in the container but not anymore with new versions. It was more a workaround than a real solution. Good to know that! Im gonna read it and test the solution. Thanks vfbsilva!!
– Alexis_FR_JP
Jul 14 at 3:11
















active

oldest

votes











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f454839%2fwhy-is-memory-management-different-inside-a-docker-container-im-getting-free%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes










 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f454839%2fwhy-is-memory-management-different-inside-a-docker-container-im-getting-free%23new-answer', 'question_page');

);

Post as a guest













































































wubV,7AyJPXuuOgC eFk7034bQYJv,Y,2ncy,O,6cWfbBgKn3,sI3ipXrbq nZ9BOJe5,9s5fcQG,g HSHKdSHDJ5Hb9G 1Hl00Xg9wgzxr83
UixBrYVXewrjb8xlJU9hK0 blz56kDfYoQb23E06mzX5P 9g9EyF OFI03mW DJOCr0bPkhW 7Epm1WAJj

Popular posts from this blog

How to check contact read email or not when send email to Individual?

How many registers does an x86_64 CPU actually have?

Displaying single band from multi-band raster using QGIS