I am attempting to convert a VM hosted on one VC to another VC. I am using the standalone converter.
When I create the job manually, everything works and the VM is converted and imported to the destination VC just fine.
But when I try to use the SDK, based on the included P2V sample (modified to use a manged VM as a source) the conversion fails almost immediately, before the disk cloning begins.
The converter UI shows the following error:
FAILED: A general system error occurred:
Remote server closed connection after 0 response bytes read
The converter logs contain:
GetTokenInformation failed: 1312
Start worker service: vmware-converter-worker
[2010-10-24 15:35:51.965 09244 info 'vmomi.soapStub Resetting stub adapter for server PIPE:
.\pipe\vmware-converter-worker-soap : ClosedFound dangling SSL error: error:00000001:lib(0):func(0):reason(1)
Connecting to host qavc3 on port 443
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Authenticating user administrator
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Closing Response processing in unexpected state: 3
Reusing existing VIM connection to qavc3
Selected target host is vim.HostSystem:host-1087
ComputeResource for vim.HostSystem:host-1087 is vim.ClusterComputeResource:domain-c1056
ResourcePool for vim.ComputeResource:domain-c1056 is vim.ResourcePool:resgroup-1058
ComputeResource for vim.ResourcePool:resgroup-1058 is vim.ClusterComputeResource:domain-c1056
Datacenter for vim.ComputeResource:domain-c1056 is vim.Datacenter:datacenter-21
Root VM folder for vim.Datacenter:datacenter-21 is vim.Folder:group-v22
Reusing existing VIM connection to qavc3
Scheduled timer canceled, StopKeepAlive succeeds
[2010-10-24 15:36:06.489 09244 info 'vmomi.soapStub Resetting stub adapter for server TCP:qavc3:443 : Closed
Connecting to host qavc3 on port 443
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Authenticating user administrator
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Scheduled timer canceled, StopKeepAlive succeeds
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Closing Response processing in unexpected state: 3
ComputeResource for vim.ResourcePool:resgroup-1058 is vim.ClusterComputeResource:domain-c1056
[2010-10-24 15:36:06.581 09244 info 'vmomi.soapStub Resetting stub adapter for server TCP:qavc3:443 : Closed
Created new scheduler item with id = "6", firstTimeToRun = "2010-10-24 15:36:06.490", source = "", targetRPOInMinutes = "0". -- __thiscall Converter::Server::Scheduler::SchedulerItemImpl::SchedulerItemImpl(const class Converter::Server::Scheduler::SchedulerItemSpec &,const int &,const class boost::shared_ptr<class Converter::Server::Scheduler::SchedulerEnv> &,const class Vmacore::Ref<class Vmacore::Service::Logger> &,const class boost::optional<class Converter::VdbConnection &> &) ("d:/build/ob/bora-292238/bora/sysimage/ufad/server/scheduler/schedulerItemImpl.cpp:87")
scheduler item with id="6" created -- int __thiscall Converter::Server::Scheduler::PriorityQScheduler::AddSchedulerItem(const class boost::shared_ptr<class Converter::Server::Scheduler::SchedulerItemSpec> &,const class boost::optional<class Converter::VdbConnection &> &) ("d:/build/ob/bora-292238/bora/sysimage/ufad/server/scheduler/priorityQScheduler.cpp:46")
Scheduler scheduling item 6 to run at time = 2010-10-24 15:36:06.615. -- void __thiscall Converter::Server::Scheduler::SimpleScheduler::Run(void) ("d:/build/ob/bora-292238/bora/sysimage/ufad/server/scheduler/simpleScheduler.cpp:88")
Connecting to host qavc3 on port 443
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Error reading from client while waiting for header: class Vmacore::SystemException(The specified network name is no longer available. )
Authenticating user administrator
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
SSLVerifyCertAgainstSystemStore: The remote host certificate has these problems:
The host certificate chain is not complete.
Closing Response processing in unexpected state: 3
Reusing existing VIM connection to qavc3
ComputeResource for vim.HostSystem:host-1087 is vim.ClusterComputeResource:domain-c1056
ResourcePool for vim.ComputeResource:domain-c1056 is vim.ResourcePool:resgroup-1058
ComputeResource for vim.ResourcePool:resgroup-1058 is vim.ClusterComputeResource:domain-c1056
Datacenter for vim.ComputeResource:domain-c1056 is vim.Datacenter:datacenter-21
Root VM folder for vim.Datacenter:datacenter-21 is vim.Folder:group-v22
Reusing existing VIM connection to qavc3
Scheduled timer canceled, StopKeepAlive succeeds
[2010-10-24 15:36:07.017 03680 info 'vmomi.soapStub Resetting stub adapter for server TCP:qavc3:443 : Closed
Failed to send response to the client: The pipe is being closed.
Started task "task-15" for job="job-27", item ="6" -- void __thiscall Converter::Server::Job::JobProcessorImpl::StartProcessingJobs(void) ("d:/build/ob/bora-292238/bora/sysimage/lib/converter/server/job/jobProcessorImpl.cpp:351")
Found dangling SSL error: error:00000001:lib(0):func(0):reason(1)
WaitForUpdates failed: Remote server closed connection after 0 response bytes read
backtrace[00] rip 10111c03 Vmacore::System::Stacktrace::CaptureWork
backtrace[01] rip 100eaf74 Vmacore::System::SystemFactoryImpl::CreateFileWriter
backtrace[02] rip 100eb897 Vmacore::System::SystemFactoryImpl::CreateQuickBacktrace
backtrace[03] rip 10078810 Vmacore::Throwable::Throwable
backtrace[04] rip 10041360 Vmacore::Http::CreateHTTPDocRequestHandler
backtrace[05] rip 100549a0 Vmacore::Http::CreateHttpRequest
backtrace[06] rip 10054aed Vmacore::Http::CreateHttpRequest
backtrace[07] rip 10054e19 Vmacore::Http::CreateHttpRequest
backtrace[08] rip 1011696a Vmacore::System::SystemFactoryImpl::CreateNamedPipeClientStream
backtrace[09] rip 1004859b Vmacore::Http::CreateHTTPDocRequestHandler
backtrace[10] rip 1004c277 Vmacore::Http::GetDefaultConnectionPool
backtrace[11] rip 1011696a Vmacore::System::SystemFactoryImpl::CreateNamedPipeClientStream
backtrace[12] rip 1004859b Vmacore::Http::CreateHTTPDocRequestHandler
backtrace[13] rip 101bee38 Vmacore::System::Init
backtrace[14] rip 100f96f2 Vmacore::Ssl::CreateSSLContext
backtrace[15] rip 10047b46 Vmacore::Http::CreateHTTPDocRequestHandler
backtrace[16] rip 1012a2d7 Vmacore::System::IsEnlisted
backtrace[17] rip 1012aadb Vmacore::System::IsEnlisted
backtrace[18] rip 1012b46d Vmacore::System::IsEnlisted
backtrace[19] rip 1012bf39 Vmacore::System::IsEnlisted
backtrace[20] rip 10052bdf Vmacore::Http::CreateHttpUserAgent
backtrace[21] rip 10122b83 Vmacore::System::GetThreadId
backtrace[22] rip 74a629bb endthreadex
backtrace[23] rip 74a62a47 endthreadex
backtrace[24] rip 776ab495 RtlInitializeExceptionChain
backtrace[25] rip 776ab468 RtlInitializeExceptionChain
Unexpected Exception: vmodl.fault.SystemError
-- ERROR -- Convert: vmodl.fault.SystemError
(vmodl.fault.SystemError) {
dynamicType = <unset>,
faultCause = (vmodl.MethodFault) null,
reason = "Remote server closed connection after 0 response bytes read",
msg = "",
}
Retrieved taskInfo for "converter.task.Task:task-15" mapping it to "converter.task.Task:task-15".
The task with id = "task-15" was found to be a "recent" task.
No existing log bundle found for task with id = "task-15". The task is still "recent" so a log bundle will now be generated for it.
Retrieving task related diagnostics for server task with id = "task-15".
Unable to generate the task's log bundle. The system cannot find the file specified.
ConverterConnection: KeepAlive timer canceled, StopKeepAlive succeeded
ConverterConnection: Error on logout (ignored): The system cannot find the file specified.
[2010-10-24 15:36:12.529 01776 info 'vmomi.soapStub Resetting stub adapter for server PIPE:
.\pipe\vmware-converter-worker-soap : ClosedSuspended 1 scheduler items for job (job-27) -- void __thiscall Converter::Server::Job::JobProcessorImpl::SuspendJobAux(const class Converter::Server::Job::InternalJob &,class Converter::VdbConnection &) ("d:/build/ob/bora-292238/bora/sysimage/lib/converter/server/job/jobProcessorImpl.cpp:823")
The converter is installed on my laptop, which has the VCs' certificates installed to the trusted root store, and the conversion job is configured not to validate certificates and not to compare the hashes. I found several references on the web to this ssl error failing conversions, all pointed to certificate issues, but installing the certificates to my trusted root store does not seem to change a thing.
I tried using both 3.5 and 4.0 VCs, tried converting from one VC to another, from one VC to itself, it's always the same.
I went through the SDK reference several times to make sure I'm not missing any required arguments, and it all looks fine. Since importing a static VM (hosted on a CIFS share) into one of these VC servers works fine, I can only assume that the problem occurs when trying to read from the source VC/ESX, but I could convert a machine to those VC/ESX servers, so I'm not sure what's missing.
Any help would be greatly appreciated.
Thanks,
Leeor.
Can you attach the worker logs - they should be in the same location as the server logs. Thanks.
The logs I've included in my first post were obtained through the export logs menu option in the standalone converter. There is nothing that resembles worker logs in the exported archive. The only other logs are the GUI logs, which only contain:
Converter::Client::Gui::Wizard::ConverterDataProviderImpl::PropertyCollectorThread[14] - (vmodl.query.PropertyCollector.UpdateSet) {
dynamicType = <unset>,
version = "14",
filterSet = (vmodl.query.PropertyCollector.FilterUpdate) [
(vmodl.query.PropertyCollector.FilterUpdate) {
dynamicType = <unset>,
filter = 'vmodl.query.PropertyCollector.Filter:session[992E92F3-391A-4567-AE71-5897D9F6D692]A5CD6F1D-0A03-41F4-9CDF-20167F5F853A',
objectSet = (vmodl.query.PropertyCollector.ObjectUpdate) [
(vmodl.query.PropertyCollector.ObjectUpdate) {
dynamicType = <unset>,
kind = "enter",
obj = 'converter.task.Task:task-15',
changeSet = (vmodl.query.PropertyCollector.Change) [
(vmodl.query.PropertyCollector.Change) {
dynamicType = <unset>,
name = "event",
op = "assign",
val = (converter.event.Event) [
(converter.event.TaskEvent) {
dynamicType = <unset>,
key = 138,
chainId = 138,
type = "info",
createdTime = "2010-10-24T13:36:07.079304Z",
userName = "*************",
fullMessage = "Task: Convert virtual machine.",
job = <unset>,
info = (converter.task.TaskInfo) {
dynamicType = <unset>,
key = "task-15",
task = 'converter.task.Task:task-15',
name = "Convert",
descriptionId = "Convert.V2V",
userName = "***********",
source = "qavc3/Automation - Alon - Converted",
target = "qavc3/ApiConvertedVM",
state = "queued",
cancelled = false,
cancelable = true,
data = <unset>,
error = (vmodl.MethodFault) null,
result = <unset>,
progress = <unset>,
estimatedTimeRemaining = <unset>,
transferRate = <unset>,
queueTime = "2010-10-24T13:36:06.988304Z",
startTime = <unset>,
completeTime = <unset>,
eventChainId = 138,
vcTask = <unset>,
logBundleInfo = (converter.DiagnosticManager.TaskLogBundleInfo) null,
job = 'converter.server.conversion.ConversionJob:job-27',
hasChildren = <unset>,
parentTask = <unset>,
rootTask = <unset>,
},
}
],
},
(vmodl.query.PropertyCollector.Change) {
dynamicType = <unset>,
name = "info",
op = "assign",
val = (converter.task.TaskInfo) {
dynamicType = <unset>,
key = "task-15",
task = 'converter.task.Task:task-15',
name = "Convert",
descriptionId = "Convert.V2V",
userName = "*******",
source = "qavc3/Automation - Alon - Converted",
target = "qavc3/ApiConvertedVM",
state = "running",
cancelled = false,
cancelable = true,
data = <unset>,
error = (vmodl.MethodFault) null,
result = <unset>,
progress = 1,
estimatedTimeRemaining = 3600,
transferRate = <unset>,
queueTime = "2010-10-24T13:36:06.988304Z",
startTime = "2010-10-24T13:36:07.175304Z",
completeTime = <unset>,
eventChainId = 138,
vcTask = <unset>,
logBundleInfo = (converter.DiagnosticManager.TaskLogBundleInfo) null,
job = 'converter.server.conversion.ConversionJob:job-27',
hasChildren = <unset>,
parentTask = <unset>,
rootTask = <unset>,
},
}
],
}
],
}
],
truncated = <unset>,
}
Adding task: (converter.task.TaskInfo) {
dynamicType = <unset>,
key = "task-15",
task = 'converter.task.Task:task-15',
name = "Convert",
descriptionId = "Convert.V2V",
userName = "**********",
source = "qavc3/Automation - Alon - Converted",
target = "qavc3/ApiConvertedVM",
state = "running",
cancelled = false,
cancelable = true,
data = <unset>,
error = (vmodl.MethodFault) null,
result = <unset>,
progress = 1,
estimatedTimeRemaining = 3600,
transferRate = <unset>,
queueTime = "2010-10-24T13:36:06.988304Z",
startTime = "2010-10-24T13:36:07.175304Z",
completeTime = <unset>,
eventChainId = 138,
vcTask = <unset>,
logBundleInfo = (converter.DiagnosticManager.TaskLogBundleInfo) null,
job = 'converter.server.conversion.ConversionJob:job-27',
hasChildren = <unset>,
parentTask = <unset>,
rootTask = <unset>,
}
Fetching job spec for converter.task.Task:task-15
Key was not found: NetworkNameMap
Key was not found: TimeZoneList
Converter::Client::Gui::Wizard::ConverterDataProviderImpl::PropertyCollectorThread[15] - (vmodl.query.PropertyCollector.UpdateSet) {
dynamicType = <unset>,
version = "15",
filterSet = (vmodl.query.PropertyCollector.FilterUpdate) [
(vmodl.query.PropertyCollector.FilterUpdate) {
dynamicType = <unset>,
filter = 'vmodl.query.PropertyCollector.Filter:session[992E92F3-391A-4567-AE71-5897D9F6D692]A5CD6F1D-0A03-41F4-9CDF-20167F5F853A',
objectSet = (vmodl.query.PropertyCollector.ObjectUpdate) [
(vmodl.query.PropertyCollector.ObjectUpdate) {
dynamicType = <unset>,
kind = "modify",
obj = 'converter.task.Task:task-15',
changeSet = (vmodl.query.PropertyCollector.Change) [
(vmodl.query.PropertyCollector.Change) {
dynamicType = <unset>,
name = "info",
op = "assign",
val = (converter.task.TaskInfo) {
dynamicType = <unset>,
key = "task-15",
task = 'converter.task.Task:task-15',
name = "Convert",
descriptionId = "Convert.V2V",
userName = "*************",
source = "qavc3/Automation - Alon - Converted",
target = "qavc3/ApiConvertedVM",
state = "error",
cancelled = false,
cancelable = true,
data = <unset>,
error = (vmodl.fault.SystemError) {
dynamicType = <unset>,
faultCause = (vmodl.MethodFault) null,
reason = "Remote server closed connection after 0 response bytes read",
msg = "A general system error occurred: Remote server closed connection after 0 response bytes read",
},
result = <unset>,
progress = 1,
estimatedTimeRemaining = <unset>,
transferRate = <unset>,
queueTime = "2010-10-24T13:36:06.988304Z",
startTime = "2010-10-24T13:36:07.175304Z",
completeTime = "2010-10-24T13:36:12.527304Z",
eventChainId = 138,
vcTask = <unset>,
logBundleInfo = (converter.DiagnosticManager.TaskLogBundleInfo) null,
job = 'converter.server.conversion.ConversionJob:job-27',
hasChildren = <unset>,
parentTask = <unset>,
rootTask = <unset>,
},
}
],
}
],
}
],
truncated = <unset>,
}
Updating task: (converter.task.TaskInfo) {
dynamicType = <unset>,
key = "task-15",
task = 'converter.task.Task:task-15',
name = "Convert",
descriptionId = "Convert.V2V",
userName = "*************",
source = "qavc3/Automation - Alon - Converted",
target = "qavc3/ApiConvertedVM",
state = "error",
cancelled = false,
cancelable = true,
data = <unset>,
error = (vmodl.fault.SystemError) {
dynamicType = <unset>,
faultCause = (vmodl.MethodFault) null,
reason = "Remote server closed connection after 0 response bytes read",
msg = "A general system error occurred: Remote server closed connection after 0 response bytes read",
},
result = <unset>,
progress = 1,
estimatedTimeRemaining = <unset>,
transferRate = <unset>,
queueTime = "2010-10-24T13:36:06.988304Z",
startTime = "2010-10-24T13:36:07.175304Z",
completeTime = "2010-10-24T13:36:12.527304Z",
eventChainId = 138,
vcTask = <unset>,
logBundleInfo = (converter.DiagnosticManager.TaskLogBundleInfo) null,
job = 'converter.server.conversion.ConversionJob:job-27',
hasChildren = <unset>,
parentTask = <unset>,
rootTask = <unset>,
}
I could not find any other interesting logs.
Hi leeor,
Could you provide you source code? I am particullary interested in how you build the JobSpec for the managed source.
I will be back on November 28th.
--
Leeor Aharon
Team Leader, CloudShare
14 Yad Harutzim St.
3rd Floor
Tel Aviv 67778
Office. +972.3.537.9298
Fax. +972.3.542.6972
Mobile. +972.54.4924229
CloudShare, Ltd.
Replicate & Share Entire IT Environments, Online
Hello Leeor,
worker logs are named vmware-converter-worker-XX.log and they are in the same folder as server logs (e.g. VMware\VMware vCenter Converter Standalone\logs). You are using Converter 4.3, right?
Regards,
Plamen