Compare commits
31
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
131bf1e834 | ||
|
|
0da9851d5d | ||
|
|
257e13d238 | ||
|
|
016a6dcd0e | ||
|
|
b610e1c718 | ||
|
|
caa81cd8d7 | ||
|
|
eca45f4a3f | ||
|
|
d475deef60 | ||
|
|
2a3935580c | ||
|
|
28f7f11450 | ||
|
|
ca07bc4597 | ||
|
|
8e23194a2b | ||
|
|
fe09090e2d | ||
|
|
b5868cf8cf | ||
|
|
f294b40ba5 | ||
|
|
c0c1a7bb79 | ||
|
|
1b864048bd | ||
|
|
072c9c45ab | ||
|
|
af111679c3 | ||
|
|
dd9f21eaa2 | ||
|
|
f0e356df98 | ||
|
|
140bcf9ffc | ||
|
|
af69660412 | ||
|
|
6dc94c6252 | ||
|
|
eb34165670 | ||
|
|
7ce08f2148 | ||
|
|
049a8c79d9 | ||
|
|
f7a6d90012 | ||
|
|
67a2f29a89 | ||
|
|
82422fa1ff | ||
|
|
a73cf1d010 |
+1
-1
@@ -3,4 +3,4 @@
|
||||
i686
|
||||
x86_64
|
||||
libvirt-*.tar.gz
|
||||
libvirt-0.4.2.tar.gz
|
||||
libvirt-0.4.6.tar.gz
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
diff -rup libvirt-0.6.0.orig/qemud/event.c libvirt-0.6.0.new/qemud/event.c
|
||||
--- libvirt-0.6.0.orig/qemud/event.c 2008-12-22 13:02:54.000000000 +0000
|
||||
+++ libvirt-0.6.0.new/qemud/event.c 2009-02-06 19:29:28.000000000 +0000
|
||||
@@ -68,6 +68,7 @@ struct virEventTimeout {
|
||||
/* State for the main event loop */
|
||||
struct virEventLoop {
|
||||
pthread_mutex_t lock;
|
||||
+ int running;
|
||||
pthread_t leader;
|
||||
int wakeupfd[2];
|
||||
int handlesCount;
|
||||
@@ -521,6 +522,7 @@ int virEventRunOnce(void) {
|
||||
int ret, timeout, nfds;
|
||||
|
||||
virEventLock();
|
||||
+ eventLoop.running = 1;
|
||||
eventLoop.leader = pthread_self();
|
||||
if ((nfds = virEventMakePollFDs(&fds)) < 0) {
|
||||
virEventUnlock();
|
||||
@@ -572,7 +574,7 @@ int virEventRunOnce(void) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
- eventLoop.leader = 0;
|
||||
+ eventLoop.running = 0;
|
||||
virEventUnlock();
|
||||
return 0;
|
||||
}
|
||||
@@ -611,7 +613,9 @@ int virEventInit(void)
|
||||
static int virEventInterruptLocked(void)
|
||||
{
|
||||
char c = '\0';
|
||||
- if (pthread_self() == eventLoop.leader)
|
||||
+
|
||||
+ if (!eventLoop.running ||
|
||||
+ pthread_self() == eventLoop.leader)
|
||||
return 0;
|
||||
|
||||
if (safewrite(eventLoop.wakeupfd[1], &c, sizeof(c)) != sizeof(c))
|
||||
diff -rup libvirt-0.6.0.orig/qemud/qemud.c libvirt-0.6.0.new/qemud/qemud.c
|
||||
--- libvirt-0.6.0.orig/qemud/qemud.c 2009-01-31 09:04:17.000000000 +0000
|
||||
+++ libvirt-0.6.0.new/qemud/qemud.c 2009-02-06 19:29:28.000000000 +0000
|
||||
@@ -2013,11 +2013,15 @@ static int qemudOneLoop(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void qemudInactiveTimer(int timer ATTRIBUTE_UNUSED, void *data) {
|
||||
+static void qemudInactiveTimer(int timerid, void *data) {
|
||||
struct qemud_server *server = (struct qemud_server *)data;
|
||||
- DEBUG0("Got inactive timer expiry");
|
||||
- if (!virStateActive()) {
|
||||
- DEBUG0("No state active, shutting down");
|
||||
+
|
||||
+ if (virStateActive() ||
|
||||
+ server->clients) {
|
||||
+ DEBUG0("Timer expired but still active, not shutting down");
|
||||
+ virEventUpdateTimeoutImpl(timerid, -1);
|
||||
+ } else {
|
||||
+ DEBUG0("Timer expired and inactive, shutting down");
|
||||
server->shutdown = 1;
|
||||
}
|
||||
}
|
||||
@@ -2048,9 +2052,18 @@ static void qemudFreeClient(struct qemud
|
||||
static int qemudRunLoop(struct qemud_server *server) {
|
||||
int timerid = -1;
|
||||
int ret = -1, i;
|
||||
+ int timerActive = 0;
|
||||
|
||||
virMutexLock(&server->lock);
|
||||
|
||||
+ if (timeout > 0 &&
|
||||
+ (timerid = virEventAddTimeoutImpl(-1,
|
||||
+ qemudInactiveTimer,
|
||||
+ server, NULL)) < 0) {
|
||||
+ VIR_ERROR0(_("Failed to register shutdown timeout"));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
if (min_workers > max_workers)
|
||||
max_workers = min_workers;
|
||||
|
||||
@@ -2071,11 +2084,21 @@ static int qemudRunLoop(struct qemud_ser
|
||||
* if any drivers have active state, if not
|
||||
* shutdown after timeout seconds
|
||||
*/
|
||||
- if (timeout > 0 && !virStateActive() && !server->clients) {
|
||||
- timerid = virEventAddTimeoutImpl(timeout*1000,
|
||||
- qemudInactiveTimer,
|
||||
- server, NULL);
|
||||
- DEBUG("Scheduling shutdown timer %d", timerid);
|
||||
+ if (timeout > 0) {
|
||||
+ if (timerActive) {
|
||||
+ if (server->clients) {
|
||||
+ DEBUG("Deactivating shutdown timer %d", timerid);
|
||||
+ virEventUpdateTimeoutImpl(timerid, -1);
|
||||
+ timerActive = 0;
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (!virStateActive() &&
|
||||
+ !server->clients) {
|
||||
+ DEBUG("Activating shutdown timer %d", timerid);
|
||||
+ virEventUpdateTimeoutImpl(timerid, timeout * 1000);
|
||||
+ timerActive = 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
virMutexUnlock(&server->lock);
|
||||
@@ -2129,15 +2152,6 @@ static int qemudRunLoop(struct qemud_ser
|
||||
}
|
||||
}
|
||||
|
||||
- /* Unregister any timeout that's active, since we
|
||||
- * just had an event processed
|
||||
- */
|
||||
- if (timerid != -1) {
|
||||
- DEBUG("Removing shutdown timer %d", timerid);
|
||||
- virEventRemoveTimeoutImpl(timerid);
|
||||
- timerid = -1;
|
||||
- }
|
||||
-
|
||||
if (server->shutdown) {
|
||||
ret = 0;
|
||||
break;
|
||||
+37
-38
@@ -46,11 +46,13 @@
|
||||
|
||||
Summary: Library providing a simple API virtualization
|
||||
Name: libvirt
|
||||
Version: 0.6.1
|
||||
Release: 1%{?dist}%{?extra_release}
|
||||
Version: 0.6.0
|
||||
Release: 2%{?dist}%{?extra_release}
|
||||
License: LGPLv2+
|
||||
Group: Development/Libraries
|
||||
Source: libvirt-%{version}.tar.gz
|
||||
Patch1: %{name}-%{version}-timeout.patch
|
||||
Patch2: %{name}-%{version}-rpccall2.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
URL: http://libvirt.org/
|
||||
BuildRequires: python python-devel
|
||||
@@ -177,6 +179,8 @@ of recent versions of Linux (and other OSes).
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
%if ! %{with_xen}
|
||||
@@ -249,9 +253,7 @@ rm -fr %{buildroot}
|
||||
|
||||
%makeinstall
|
||||
(cd docs/examples ; make clean ; rm -rf .deps Makefile Makefile.in)
|
||||
(cd docs/examples/python ; rm -rf .deps Makefile Makefile.in)
|
||||
(cd examples/hellolibvirt ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
|
||||
(cd examples/domain-events/events-c ; make clean ;rm -rf .deps .libs Makefile Makefile.in)
|
||||
(cd docs/examples/python ; rm -f Makefile Makefile.in)
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
|
||||
@@ -446,7 +448,6 @@ fi
|
||||
%doc docs/*.html docs/html docs/*.gif
|
||||
%doc docs/examples
|
||||
%doc docs/libvirt-api.xml
|
||||
%doc examples
|
||||
|
||||
%if %{with_python}
|
||||
%files python
|
||||
@@ -462,23 +463,12 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Mar 4 2009 Daniel Veillard <veillard@redhat.com> - 0.6.1-1.fc9
|
||||
- upstream release 0.6.1
|
||||
- support for node device detach reattach and reset
|
||||
- sVirt mandatory access control support
|
||||
- many bug fixes and small improvements
|
||||
|
||||
* Wed Feb 18 2009 Daniel P. Berrange <berrange@redhat.com> - 0.6.0-3.fc9
|
||||
- Fix QEMU startup timeout/race (rhbz #484649)
|
||||
- Setup DBus threading. Don't allow dbus to call _exit / change SIGPIPE (rhbz #484553)
|
||||
- Fix timeout when autostarting session daemon
|
||||
|
||||
* Fri Feb 6 2009 Daniel P. Berrange <berrange@redhat.com> - 0.6.0-2.fc9
|
||||
* Fri Feb 6 2009 Daniel P. Berrange <berrange@redhat.com> - 0.6.0-2.fc10
|
||||
- Fix libvirtd --timeout usage
|
||||
- Fix RPC call problems and QEMU startup handling (rhbz #484414)
|
||||
- Fix unowned directories (rhbz #483442)
|
||||
|
||||
* Sat Jan 31 2009 Daniel Veillard <veillard@redhat.com> - 0.6.0-1.fc9
|
||||
* Sat Jan 31 2009 Daniel Veillard <veillard@redhat.com> - 0.6.0-1.fc10
|
||||
- upstream release 0.6.0
|
||||
- thread safety of API
|
||||
- allow QEmu/KVM domains to survive daemon restart
|
||||
@@ -487,60 +477,69 @@ fi
|
||||
- support of storage cache control options for QEmu/KVM
|
||||
- a lot of bug fixes
|
||||
|
||||
* Wed Dec 17 2008 Daniel Veillard <veillard@redhat.com> - 0.5.1-2.fc9
|
||||
* Wed Dec 17 2008 Daniel Veillard <veillard@redhat.com> - 0.5.1-2.fc10
|
||||
- fix missing read-only access checks, fixes CVE-2008-5086
|
||||
|
||||
* Fri Dec 5 2008 Daniel Veillard <veillard@redhat.com> - 0.5.1-1.fc9
|
||||
* Fri Dec 5 2008 Daniel Veillard <veillard@redhat.com> - 0.5.1-1.fc10
|
||||
- upstream release 0.5.1
|
||||
- mostly bugfixes e.g #473071
|
||||
- some driver improvments
|
||||
|
||||
* Wed Nov 26 2008 Daniel Veillard <veillard@redhat.com> - 0.5.0-1.fc9
|
||||
* Wed Nov 26 2008 Daniel Veillard <veillard@redhat.com> - 0.5.0-1.fc10
|
||||
- upstream release 0.5.0
|
||||
- domain lifecycle event support
|
||||
- node device enumeration
|
||||
- KVM/QEmu migration support
|
||||
- improved LXC support
|
||||
- SDL display configuration
|
||||
- User Mode Linux driver
|
||||
- User Mode Linux driver (Daniel Berrange)
|
||||
|
||||
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-2.fc9
|
||||
- a subtle bug in python submakefile broke the 0.4.6-1.fc9 build #463733
|
||||
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-3.fc10
|
||||
- apply the python makefile patch for #463733
|
||||
|
||||
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-1.fc9
|
||||
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-2.fc10
|
||||
- upstream release 0.4.6
|
||||
- fixes a couple of serious bugs in the previous release
|
||||
- fixes some problems with 0.4.5
|
||||
|
||||
* Tue Sep 9 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-2.fc9
|
||||
* Tue Sep 9 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-2.fc10
|
||||
- fix a crash if a QEmu/KVM domain is defined without an emulator path
|
||||
|
||||
* Mon Sep 8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-1.fc9
|
||||
* Mon Sep 8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-1.fc10
|
||||
- upstream release 0.4.5
|
||||
- a lot of bug fixes
|
||||
- major updates to QEmu/KVM and Linux containers drivers
|
||||
- support for OpenVZ if installed
|
||||
|
||||
* Tue Jul 8 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-2.fc9
|
||||
* Thu Aug 7 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.4.4-3.fc10
|
||||
- fix license tag
|
||||
|
||||
* Tue Jul 8 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-2.fc10
|
||||
- Fix booting of CDROM images with KVM (rhbz #452355)
|
||||
|
||||
* Thu Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1.fc9
|
||||
- upstream release of 0.4.4
|
||||
- fixes a few bug in previous release
|
||||
* Wed Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1.fc10
|
||||
- upstream release 0.4.4
|
||||
- fix a few bugs in previous release
|
||||
|
||||
* Thu Jun 12 2008 Daniel Veillard <veillard@redhat.com> - 0.4.3-1.fc9
|
||||
* Thu Jun 12 2008 Daniel Veillard <veillard@redhat.com> - 0.4.3-1.fc10
|
||||
- upstream release 0.4.3
|
||||
- many bug fixes
|
||||
- many small improvements
|
||||
- serious xenner fixes
|
||||
|
||||
* Wed Jun 4 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-4.fc9
|
||||
* Wed Jun 4 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-6.fc10
|
||||
- Disable lokkit support again (#449996, #447633)
|
||||
- Ensure PolicyKit is enabled (#446616)
|
||||
- Ensure %{fedora} is evaluated correctly
|
||||
|
||||
* Fri May 9 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-3.fc9
|
||||
* Thu May 15 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-5.fc10
|
||||
- Rebuild with policy enabled (rhbz #446616)
|
||||
|
||||
* Fri May 9 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-4.fc10
|
||||
- Added directory for initrd/kernel images for SELinux policy
|
||||
|
||||
* Mon Apr 28 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-2.fc9
|
||||
* Mon Apr 28 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-3.fc10
|
||||
- Simplify the way arch conditionals are handled
|
||||
|
||||
* Mon Apr 28 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-2.fc10
|
||||
- Enable lokkit support (#443796)
|
||||
|
||||
* Tue Apr 8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.2-1.fc9
|
||||
|
||||
Reference in New Issue
Block a user