Summary:

--enable-test-oom memory allocation failure checking [default=no]

Enabling this option would have prevented this crash to happen. I do
agree that having an OOM checker every memory allocation - in this case
small reallocs because of logging mechanism - is nothing we should
pursue because of performance issues.

This is well described in here:

https://libvirt.org/internals/oomtesting.html

** Description changed:

  This bug is just informative since I don't think the fix applies and
  I'll explain why.
+ 
+ Description:    Ubuntu 16.04.2 LTS
+ 
+ libvirt-bin          1.3.1-1ubuntu10.8    
+ qemu-system-x86      1:2.5+dfsg-5ubuntu10.9  
  
  I was given a dump with the main thread's back trace like this:
  
  #0  0x00007f94529f1428 in __GI_raise (sig=sig@entry=6) at 
../sysdeps/unix/sysv/linux/raise.c:54
  #1  0x00007f94529f302a in __GI_abort () at abort.c:89
  #2  0x00007f9452a337ea in __libc_message (do_abort=do_abort@entry=2, 
fmt=fmt@entry=0x7f9452b4c2e0 "*** Error in `%s': %s: 0x%s ***\n")
-     at ../sysdeps/posix/libc_fatal.c:175
+     at ../sysdeps/posix/libc_fatal.c:175
  #3  0x00007f9452a3ea5a in malloc_printerr (ar_ptr=0x3, ptr=<optimized out>, 
str=<optimized out>, action=3) at malloc.c:5004
  #4  _int_realloc (av=av@entry=0x7f9452d7fb20 <main_arena>, 
oldp=oldp@entry=0x55bf445eb9d0, oldsize=oldsize@entry=2912,
-     nb=nb@entry=2848) at malloc.c:4250
+     nb=nb@entry=2848) at malloc.c:4250
  #5  0x00007f9452a3fc89 in __GI___libc_realloc (oldmem=0x55bf445eb9e0, 
bytes=bytes@entry=2839) at malloc.c:3043
  #6  0x00007f945340d2f3 in virReallocN (ptrptr=ptrptr@entry=0x7ffe2f31c0a0, 
size=size@entry=1, count=count@entry=2839,
-     report=report@entry=false, domcode=domcode@entry=0, 
filename=filename@entry=0x0, funcname=0x0, linenr=0)
-     at ../../../src/util/viralloc.c:245
+     report=report@entry=false, domcode=domcode@entry=0, 
filename=filename@entry=0x0, funcname=0x0, linenr=0)
+     at ../../../src/util/viralloc.c:245
  #7  0x00007f942c00c119 in qemuProcessReadLog (msg=0x7ffe2f31c098, 
logCtxt=<optimized out>) at ../../../src/qemu/qemu_process.c:1684
  #8  qemuProcessReportLogError (logCtxt=<optimized out>, 
msgprefix=0x7f942c095548 "early end of file from monitor, possible problem")
-     at ../../../src/qemu/qemu_process.c:1696
+     at ../../../src/qemu/qemu_process.c:1696
  #9  0x00007f942c0223fc in qemuMonitorIO (watch=watch@entry=107, fd=<optimized 
out>, events=<optimized out>, events@entry=13,
-     opaque=opaque@entry=0x7f94000ab3b0) at 
../../../src/qemu/qemu_monitor.c:718
+     opaque=opaque@entry=0x7f94000ab3b0) at 
../../../src/qemu/qemu_monitor.c:718
  #10 0x00007f945342b393 in virEventPollDispatchHandles (fds=<optimized out>, 
nfds=<optimized out>)
-     at ../../../src/util/vireventpoll.c:509
+     at ../../../src/util/vireventpoll.c:509
  #11 virEventPollRunOnce () at ../../../src/util/vireventpoll.c:658
  #12 0x00007f9453429c01 in virEventRunDefaultImpl () at 
../../../src/util/virevent.c:314
  #13 0x00007f9453575b4d in virNetDaemonRun (dmn=0x55bf445c28e0) at 
../../../src/rpc/virnetdaemon.c:701
  #14 0x000055bf43449407 in main (argc=<optimized out>, argv=<optimized out>) 
at ../../../daemon/libvirtd.c:1577
  
  And the analysis goes in the comments...

** Changed in: libvirt (Ubuntu)
       Status: New => Confirmed

** Changed in: libvirt (Ubuntu)
   Importance: Undecided => Medium

** Changed in: libvirt (Ubuntu)
     Assignee: (unassigned) => Rafael David Tinoco (inaddy)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1670659

Title:
  Libvirt can crash on lack of memory when starting multiple instances

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1670659/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to