From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32816) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1MnF-0001tM-Ba for qemu-devel@nongnu.org; Mon, 22 Jul 2013 16:33:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1MnD-0005Eo-CD for qemu-devel@nongnu.org; Mon, 22 Jul 2013 16:33:17 -0400 Received: from mail-ie0-x236.google.com ([2607:f8b0:4001:c03::236]:55176) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1MnD-0005Eh-5B for qemu-devel@nongnu.org; Mon, 22 Jul 2013 16:33:15 -0400 Received: by mail-ie0-f182.google.com with SMTP id s9so16664252iec.27 for ; Mon, 22 Jul 2013 13:33:14 -0700 (PDT) Sender: fluxion Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Roth In-Reply-To: References: <20130715162023.16676.87828.stgit@outback>, <20130718221931.6125.77804@loki>, Message-ID: <20130722203310.16294.4607@loki> Date: Mon, 22 Jul 2013 15:33:10 -0500 Subject: Re: [Qemu-devel] [PATCH v7 00/10] qemu-ga: fsfreeze on Windows using VSS List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tomoki Sekiyama , "qemu-devel@nongnu.org" Cc: "libaiqing@huawei.com" , "ghammer@redhat.com" , "stefanha@gmail.com" , "lcapitulino@redhat.com" , "vrozenfe@redhat.com" , "pbonzini@redhat.com" , Seiji Aguchi , "lersek@redhat.com" , "areis@redhat.com" Quoting Tomoki Sekiyama (2013-07-22 15:02:23) > Hi Michael, > = > >> "CoCreateInstance(VSSCoordinator) failed. (Error: 80040154) Class not = registered > >I have seen this error when I ran 32bit qemu-ga on 64bit Windows (2008 s= erver R2). > >Just in case, could you confirm qemu-ga.exe and qga-vss.dll are built fo= r the > >correct architecture? > = > I have confirmed that using 32bit qemu-ga.exe on 64bit Windows causes exa= ctly > what you explained at the previous e-mail. (And maybe the hung is caused = by a > dialog box popped up *behind* the terminal.... I think this is because th= e box > belongs to a Windows service, but I don't know how to avoid it...) Thanks, I was just about to confirm as well :) Problem doesn't seem to be present if I switch to a 64-bit version. And you're right, in the instances where the -s install freezes a dialog box *does* pop up behind the terminal with the above error. > = > Could you tell me which arch (32bit/64bit) of Windows and mingw > (mingw32-* or mingw64-* in Fedora package) are you using? This was a 32-bit binary (--cross-prefix=3Di686-w64-mingw32-) on a 64-bit Windows 7 vm. I've since built a 64-bit binary (--cross-prefix=3Dx86_64-w64-mingw32-) and= have gotten past service install and successfully issued the freeze/thaw command= s. So I think that solves the 'hang'/CoCreateInstance issue, although it would be nice if 32-bit could run on 64-bit, since that's supported currently. Is this a known issue/limitation? If so, perhaps we can avoid registering the VSS provider if the arch doesn't match? Also, with 64-bit qemu-ga I do find that if I don't issue `net stop vss` pr= ior to service install I still get the following error: C:\Users\mdroth\Documents\qga>qemu-ga.exe -s install Registering QEMU Guest Agent VSS Provider: C:\Users\mdroth\Documents\qga\qga-vss.dll C:\Users\mdroth\Documents\qga\qga-vss.tlb Failed to pCatalog->InstallComponent. (Error: 8011045c) The application na= me is not unique and cannot be resolved to an application id = CoCreateInstance. (Error: 80040154) Class not registered = Removing COM+ Application: QEMU Guest Agent VSS Provider Removing COM+ Application: QEMU Guest Agent VSS Provider Is this expected? And if there's no way around it, would it be possible to notify users that they need to stop the VSS service prior to install the service? Thanks for looking into this! > = > Thanks, > Tomoki Sekiyama > = > ________________________________________ > From: fluxion [flukshun@gmail.com] on behalf of Michael Roth [mdroth@linu= x.vnet.ibm.com] > Sent: Thursday, July 18, 2013 6:19 PM > To: Tomoki Sekiyama; qemu-devel@nongnu.org > Cc: libaiqing@huawei.com; lersek@redhat.com; ghammer@redhat.com; stefanha= @gmail.com; lcapitulino@redhat.com; vrozenfe@redhat.com; pbonzini@redhat.co= m; Seiji Aguchi; eblake@redhat.com; areis@redhat.com > Subject: Re: [PATCH v7 00/10] qemu-ga: fsfreeze on Windows using VSS > = > Quoting Tomoki Sekiyama (2013-07-15 11:20:23) > > Hi, > > > > This is v7 of patch series to add fsfreeze for Windows qemu-guest-agent. > > > > changes from v7: > > - Fix COM initialization issue for Windows service thread (patch 07/10) > > > > v6: http://lists.nongnu.org/archive/html/qemu-devel/2013-07/msg01788.ht= ml > = > Hi Tomoki, > = > I'm also having some issues testing this, though I think my problem is a = little > different than the issue in v6: > = > When I initially ran qemu-ga -s install, I got some output indicating the= VSS > service was registered, but then it hung. I noticed afterward that I'd al= ready > had the service running, so figured that that might've been the problem. = So I > stopped the service and unregistered it (using a qemu-ga install that was= in > a separate directory). > = > Then I went back to install via qemu-ga.exe -s install, and it just hangs= with > no output. I wasn't sure how to reset the state, so I took the Windows ap= proach > and rebooted. > = > After reboot, running qemu-ga -s install gives me: > = > C:\Users\mdroth\Documents\qga>qemu-ga.exe -s install > Registering QEMU Guest Agent VSS Provider: > C:\Users\mdroth\Documents\qga\qga-vss.dll > C:\Users\mdroth\Documents\qga\qga-vss.tlb > Failed to pCatalog->InstallComponent. (Error: 8011045c) The application n= ame is > not unique and cannot be resolved to an application id > = > CoCreateInstance. (Error: 80040154) Class not registered > = > Removing COM+ Application: QEMU Guest Agent VSS Provider > Removing COM+ Application: QEMU Guest Agent VSS Provider > = > [mdroth@vm5 ~]$ > = > I'm not sure if I'm still in a bad state from earlier, but I can't seem to > recover from here. > = > If I try running qemu-ga -s uninstall, then qemu-ga -s install again, I g= et a > pop-up error saying: > = > "CoCreateInstance(VSSCoordinator) failed. (Error: 80040154) Class not reg= istered > = > Any ideas what's going on here? I'm on a Windows 7 vm and built using a F= edora > 18 mingw environment. Let me know if you need any additional information = to > debug. > = > Thanks! > = > > > > > > * Description > > In Windows, VSS (Volume Shadow Copy Service) provides a facility to > > quiesce filesystems and applications before disk snapshots are taken. > > This patch series implements "fsfreeze" command of qemu-ga using VSS. > > > > > > * How to build & run qemu-ga with VSS support > > > > - Download Microsoft VSS SDK from: > > http://www.microsoft.com/en-us/download/details.aspx?id=3D23490 > > > > - Setup the SDK > > scripts/extract-vsssdk-headers setup.exe (on POSIX-systems) > > > > - Specify installed SDK directory to configure option as: > > ./configure -with-vss-sdk=3D"path/to/VSS SDK" --cross-prefix=3Di686-= w64-mingw32- > > > > - make qemu-ga.exe qga/vss-win32/qga-vss.{dll,tlb} > > > > - Install qemu-ga.exe, qga/vss-win32/qga-vss.{dll,tlb}, and > > the other required mingw libraries into the same directory in guests > > > > - Run `qemu-ga.exe -s install' and `net start qemu-ga' in the guests > > > > Any feedback are appreciated. > > > > --- > > Tomoki Sekiyama (10): > > configure: Support configuring C++ compiler > > Add c++ keywords to QAPI helper script > > checkpatch.pl: Check .cpp files > > Add a script to extract VSS SDK headers on POSIX system > > qemu-ga: Add configure options to specify path to Windows/VSS SDK > > error: Add error_set_win32 and error_setg_win32 > > qemu-ga: Add Windows VSS provider and requester as DLL > > qemu-ga: Call Windows VSS requester in fsfreeze command handler > > qemu-ga: Install Windows VSS provider on `qemu-ga -s install' > > QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze= command > > > > > > .gitignore | 1 > > Makefile | 3 > > Makefile.objs | 2 > > QMP/qemu-ga-client | 4 > > configure | 87 +++++++ > > hmp.c | 2 > > hw/pci/pci.c | 2 > > include/qapi/error.h | 13 + > > qga/Makefile.objs | 5 > > qga/commands-win32.c | 82 ++++++ > > qga/main.c | 10 + > > qga/vss-win32.c | 154 ++++++++++++ > > qga/vss-win32.h | 27 ++ > > qga/vss-win32/Makefile.objs | 23 ++ > > qga/vss-win32/install.cpp | 424 +++++++++++++++++++++++++++++++++ > > qga/vss-win32/provider.cpp | 513 ++++++++++++++++++++++++++++++++= ++++++++ > > qga/vss-win32/qga-vss.def | 13 + > > qga/vss-win32/qga-vss.idl | 20 ++ > > qga/vss-win32/qga-vss.tlb | Bin > > qga/vss-win32/requester.cpp | 487 ++++++++++++++++++++++++++++++++= ++++++ > > qga/vss-win32/requester.h | 42 +++ > > qga/vss-win32/vss-common.h | 128 ++++++++++ > > rules.mak | 9 + > > scripts/checkpatch.pl | 37 ++- > > scripts/extract-vsssdk-headers | 35 +++ > > scripts/qapi.py | 12 + > > util/error.c | 35 +++ > > 27 files changed, 2146 insertions(+), 24 deletions(-) > > create mode 100644 qga/vss-win32.c > > create mode 100644 qga/vss-win32.h > > create mode 100644 qga/vss-win32/Makefile.objs > > create mode 100644 qga/vss-win32/install.cpp > > create mode 100644 qga/vss-win32/provider.cpp > > create mode 100644 qga/vss-win32/qga-vss.def > > create mode 100644 qga/vss-win32/qga-vss.idl > > create mode 100644 qga/vss-win32/qga-vss.tlb > > create mode 100644 qga/vss-win32/requester.cpp > > create mode 100644 qga/vss-win32/requester.h > > create mode 100644 qga/vss-win32/vss-common.h > > create mode 100755 scripts/extract-vsssdk-headers