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

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













































































Popular posts from this blog

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

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?