1. 23 8月, 2019 1 次提交
    • R
      tests: Add lib- prefix to all mocks · fde36108
      Roman Bolshakov 提交于
      In preparation libtool "-module" flag removal, add lib prefix to all
      mock shared objects.
      
      While at it, introduce VIR_TEST_MOCK macros that makes path out of mock
      name to be used with VIR_TEST_PRELOAD or VIR_TEST_MAIN_PRELOAD.  That,
      hopefully, improves readability, reduces line length and allows to
      tailor VIR_TEST_MOCK for specific platform if it has shared library
      suffix different from ".so".
      Signed-off-by: NRoman Bolshakov <r.bolshakov@yadro.com>
      fde36108
  2. 14 8月, 2019 1 次提交
  3. 25 7月, 2019 1 次提交
    • J
      qemu: Add support for overriding max threads per process limit · d5572f62
      Jim Fehlig 提交于
      Some VM configurations may result in a large number of threads created by
      the associated qemu process which can exceed the system default limit. The
      maximum number of threads allowed per process is controlled by the pids
      cgroup controller and is set to 16k when creating VMs with systemd's
      machined service. The maximum number of threads per process is recorded
      in the pids.max file under the machine's pids controller cgroup hierarchy,
      e.g.
      
      $cgrp-mnt/pids/machine.slice/machine-qemu\\x2d1\\x2dtest.scope/pids.max
      
      Maximum threads per process is controlled with the TasksMax property of
      the systemd scope for the machine. This patch adds an option to qemu.conf
      which can be used to override the maximum number of threads allowed per
      qemu process. If the value of option is greater than zero, it will be set
      in the TasksMax property of the machine's scope after creating the machine.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      d5572f62
  4. 16 7月, 2019 1 次提交
  5. 13 7月, 2019 1 次提交
    • D
      tests: skip systemd activation test if FDs 3/4/5 are open · ff09b1f6
      Daniel P. Berrangé 提交于
      With systemd activation the passed in file descriptors are required to
      be numbered from STDERR_FILENO + 1 onwards. The unit tests thus require
      FDs 3, 4 and 5 to be available.
      
      This may not be the case in all environments in which the tests run. For
      example on RHEL7 it was seen that a library constructor (gcrypt probably)
      opens /dev/urandom and leaves the file handle open. This means FD 3 is
      not available and the activation tests fail.
      
      The best way to deal with this would be to create a standalone helper
      program for the tests, but that's much more work than just skipping the
      tests if we notice we have the problem.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      ff09b1f6
  6. 12 7月, 2019 1 次提交
    • D
      util: add APIs for facilitating use of systemd activation FDs · 5b8569dd
      Daniel P. Berrangé 提交于
      When receiving multiple FDs from systemd during service activation it is
      neccessary to identify which purpose each FD is used for. While this
      could be inferred by looking for the specific IP ports or UNIX socket
      paths, this requires the systemd config to always match what is expected
      by the code. Using systemd FD names we can remove this restriction and
      simply identify FDs based on an arbitrary name.
      
      The FD names are passed by systemd in the LISTEN_FDNAMES env variable
      which is populated with the socket unit file names, unless overriden
      by using the FileDescriptorName setting.
      
      This is supported since the system 227 release and unfortunately RHEL7
      lacks this version. Thus the code has some back compat support whereby
      we look at the TCP ports or the UNIX socket paths to identify what
      socket maps to which name. This back compat code is written such that
      is it easly deleted when we are able to mandate newer systemd.
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NJán Tomko <jtomko@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      5b8569dd
  7. 14 12月, 2018 2 次提交
    • D
      Enforce a standard header file guard symbol name · 568a4172
      Daniel P. Berrangé 提交于
      Require that all headers are guarded by a symbol named
      
        LIBVIRT_$FILENAME
      
      where $FILENAME is the uppercased filename, with all characters
      outside a-z changed into '_'.
      
      Note we do not use a leading __ because that is technically a
      namespace reserved for the toolchain.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      568a4172
    • D
      Remove all Author(s): lines from source file headers · 60046283
      Daniel P. Berrangé 提交于
      In many files there are header comments that contain an Author:
      statement, supposedly reflecting who originally wrote the code.
      In a large collaborative project like libvirt, any non-trivial
      file will have been modified by a large number of different
      contributors. IOW, the Author: comments are quickly out of date,
      omitting people who have made significant contribitions.
      
      In some places Author: lines have been added despite the person
      merely being responsible for creating the file by moving existing
      code out of another file. IOW, the Author: lines give an incorrect
      record of authorship.
      
      With this all in mind, the comments are useless as a means to identify
      who to talk to about code in a particular file. Contributors will always
      be better off using 'git log' and 'git blame' if they need to  find the
      author of a particular bit of code.
      
      This commit thus deletes all Author: comments from the source and adds
      a rule to prevent them reappearing.
      
      The Copyright headers are similarly misleading and inaccurate, however,
      we cannot delete these as they have legal meaning, despite being largely
      inaccurate. In addition only the copyright holder is permitted to change
      their respective copyright statement.
      Reviewed-by: NErik Skultety <eskultet@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      60046283
  8. 20 9月, 2018 1 次提交
  9. 03 11月, 2017 1 次提交
    • A
      Remove backslash alignment attempts · 3e7db8d3
      Andrea Bolognani 提交于
      Right-aligning backslashes when defining macros or using complex
      commands in Makefiles looks cute, but as soon as any changes is
      required to the code you end up with either distractingly broken
      alignment or unnecessarily big diffs where most of the changes
      are just pushing all backslashes a few characters to one side.
      
      Generated using
      
        $ git grep -El '[[:blank:]][[:blank:]]\\$' | \
          grep -E '*\.([chx]|am|mk)$$' | \
          while read f; do \
            sed -Ei 's/[[:blank:]]*[[:blank:]]\\$/ \\/g' "$f"; \
          done
      Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
      3e7db8d3
  10. 25 7月, 2017 1 次提交
  11. 04 4月, 2017 1 次提交
  12. 06 3月, 2017 3 次提交
    • J
      Test virSystemd APIs twice to check the cache effects · 9b1bd138
      Ján Tomko 提交于
      Test virSystemd APIs twice to check the cache effects.
      9b1bd138
    • J
      Cache the presence of machine1 service · f10bd740
      Ján Tomko 提交于
      After the system has been booted, it should not change.
      
      Cache the return value of virSystemdHasMachined.
      Allow starting and terminating machines with just one
      DBus call, instead of three, reducing the chance of
      the call timing out.
      
      Also introduce a small function for resetting the cache
      to be used in tests.
      f10bd740
    • J
      Use macros for testing virSystemd APIs · 27cdbcb9
      Ján Tomko 提交于
      This hides the unused third parameter from every line
      and prepares for resetting the environment after each test
      case in the future.
      27cdbcb9
  13. 08 6月, 2016 1 次提交
  14. 12 2月, 2016 1 次提交
  15. 11 2月, 2016 1 次提交
    • M
      dbus: Don't unref NULL messages · 862298a2
      Michal Privoznik 提交于
      Apparently we are not the only ones with dumb free functions
      because dbus_message_unref() does not accept NULL either. But if
      I were to vote, this one is even more evil. Instead of returning
      an error just like we do it immediately dereference any pointer
      passed and thus crash you app. Well done DBus!
      
        Program received signal SIGSEGV, Segmentation fault.
        [Switching to Thread 0x7f878ebda700 (LWP 31264)]
        0x00007f87be4016e5 in ?? () from /usr/lib64/libdbus-1.so.3
        (gdb) bt
        #0  0x00007f87be4016e5 in ?? () from /usr/lib64/libdbus-1.so.3
        #1  0x00007f87be3f004e in dbus_message_unref () from /usr/lib64/libdbus-1.so.3
        #2  0x00007f87bf6ecf95 in virSystemdGetMachineNameByPID (pid=9849) at util/virsystemd.c:228
        #3  0x00007f879761bd4d in qemuConnectCgroup (driver=0x7f87600a32a0, vm=0x7f87600c7550) at qemu/qemu_cgroup.c:909
        #4  0x00007f87976386b7 in qemuProcessReconnect (opaque=0x7f87600db840) at qemu/qemu_process.c:3386
        #5  0x00007f87bf6edfff in virThreadHelper (data=0x7f87600d5580) at util/virthread.c:206
        #6  0x00007f87bb602334 in start_thread (arg=0x7f878ebda700) at pthread_create.c:333
        #7  0x00007f87bb3481bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
        (gdb) frame 2
        #2  0x00007f87bf6ecf95 in virSystemdGetMachineNameByPID (pid=9849) at util/virsystemd.c:228
        228         dbus_message_unref(reply);
        (gdb) p reply
        $1 = (DBusMessage *) 0x0
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      862298a2
  16. 05 2月, 2016 1 次提交
    • M
      systemd: Modernize machine naming · c3bd0019
      Martin Kletzander 提交于
      So, systemd-machined has this philosophy that machine names are like
      hostnames and hence should follow the same rules.  But we always allowed
      international characters in domain names.  Thus we need to modify the
      machine name we are passing to systemd.
      
      In order to change some machine names that we will be passing to systemd,
      we also need to call TerminateMachine at the end of a lifetime of a
      domain.  Even for domains that were started with older libvirt.  That
      can be achieved thanks to virSystemdGetMachineNameByPID().  And because
      we can change machine names, we can get rid of the inconsistent and
      pointless escaping of domain names when creating machine names.
      
      So this patch modifies the naming in the following way.  It creates the
      name as <drivername>-<id>-<name> where invalid hostname characters are
      stripped out of the name and if the resulting name is longer, it
      truncates it to 64 characters.  That way we can start domains we
      couldn't start before.  Well, at least on systemd.
      
      To make it work all together, the machineName (which is needed only with
      systemd) is saved in domain's private data.  That way the generation is
      moved to the driver and we don't need to pass various unnecessary
      arguments to cgroup functions.
      
      The only thing this complicates a bit is the scope generation when
      validating a cgroup where we must check both old and new naming, so a
      slight modification was needed there.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1282846Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      c3bd0019
  17. 03 2月, 2016 2 次提交
  18. 27 11月, 2015 1 次提交
  19. 26 11月, 2015 1 次提交
  20. 22 7月, 2015 1 次提交
    • P
      cgroup: Drop resource partition from virSystemdMakeScopeName · 88f6c007
      Peter Krempa 提交于
      The scope name, even according to our docs is
      "machine-$DRIVER\x2d$VMNAME.scope" virSystemdMakeScopeName would use the
      resource partition name instead of "machine-" if it was specified thus
      creating invalid scope paths.
      
      This makes libvirt drop cgroups for a VM that uses custom resource
      partition upon reconnecting since the detected scope name would not
      match the expected name generated by virSystemdMakeScopeName.
      
      The error is exposed by the following log entry:
      
      debug : virCgroupValidateMachineGroup:302 : Name 'machine-qemu\x2dtestvm.scope' for controller 'cpu' does not match 'testvm', 'testvm.libvirt-qemu' or 'machine-test-qemu\x2dtestvm.scope'
      
      for a "/machine/test" resource and "testvm" vm.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1238570
      88f6c007
  21. 15 1月, 2015 1 次提交
    • D
      Add support for systemd-machined CreateMachineWithNetwork · 318df5a0
      Daniel P. Berrange 提交于
      systemd-machined introduced a new method CreateMachineWithNetwork
      that obsoletes CreateMachine. It expects to be given a list of
      VETH/TAP device indexes for the host side device(s) associated
      with a container/machine.
      
      This falls back to the old CreateMachine method when the new
      one is not supported.
      318df5a0
  22. 12 9月, 2014 1 次提交
  23. 21 5月, 2014 1 次提交
    • E
      tests: avoid dlsym mocking on mingw · fa8701ea
      Eric Blake 提交于
      I got a build failure when cross-compiling to mingw with the
      mingw64-dbus package installed:
      
        CC       virmockdbus_la-virmockdbus.lo
      ../../tests/virmockdbus.c:29:6: error: 'dbus_connection_set_change_sigpipe' redeclared without dllimport attribute: previous dllimport ignored [-Werror=attributes]
       VIR_MOCK_STUB_VOID_ARGS(dbus_connection_set_change_sigpipe,
            ^
      ../../tests/virmockdbus.c:33:18: error: 'dbus_bus_get' redeclared without dllimport attribute: previous dllimport ignored [-Werror=attributes]
       VIR_MOCK_STUB_RET_ARGS(dbus_bus_get,
      ...
      
      Well duh - mingw lacks dlopen and friends, even if it can support
      dbus.  A similar failure occured in virsystemdtest.c; but in that
      file, we know that systemd is a Linux-only concept.
      
      * tests/virmockdbus.c: Cripple on mingw.
      * tests/virsystemdtest.c: Cripple on non-Linux.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      fa8701ea
  24. 12 4月, 2014 1 次提交
  25. 08 4月, 2014 1 次提交
  26. 18 3月, 2014 2 次提交
  27. 04 3月, 2014 1 次提交
  28. 08 10月, 2013 1 次提交
  29. 30 9月, 2013 1 次提交
  30. 18 9月, 2013 1 次提交
    • E
      build: skip ld_preload tests on non-Linux systems · caf65892
      Eric Blake 提交于
      A cross build to mingw fails with:
      
        CC       virsystemdtest-virsystemdtest.o
      ../../tests/virsystemdtest.c: In function 'testCreateNoSystemd':
      ../../tests/virsystemdtest.c:97:9: error: implicit declaration of function 'unsetenv' [-Werror=implicit-function-declaration]
               unsetenv("FAIL_NO_SERVICE");
               ^
      ../../tests/virsystemdtest.c:97:9: error: nested extern declaration of 'unsetenv' [-Werror=nested-externs]
      
      We could cop out and pull in the gnulib unsetenv module.  But when
      you stop and think about it, this test requires LD_PRELOAD to work,
      and systemd is a Linux-only concept anyways, both of which mean
      the test could never work on mingw in the first place.  Simpler is
      to just fix the test to behave like our other LD_PRELOAD tests.
      
      * tests/virsystemdtest.c: Provide non-Linux implementation.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      caf65892
  31. 11 9月, 2013 1 次提交
  32. 01 8月, 2013 1 次提交
  33. 24 7月, 2013 1 次提交
  34. 22 7月, 2013 1 次提交