VMware {code} Community
leeor
Contributor
Contributor

Converting managed VM -> managed VM fails through the SDK

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

Starting service with args:

[2010-10-24 15:35:51.965 09244 info 'vmomi.soapStub Resetting stub adapter for server PIPE:
.\pipe\vmware-converter-worker-soap : Closed

Found 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.

-- BEGIN -- Convert

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)

task-15:task-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 : Closed

Suspended 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.

0 Kudos
5 Replies
Bonev
VMware Employee
VMware Employee

Can you attach the worker logs - they should be in the same location as the server logs. Thanks.

0 Kudos
leeor
Contributor
Contributor

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: OS-Info

Key was not found: HW-Info

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.

0 Kudos
peevs
VMware Employee
VMware Employee

Hi leeor,

Could you provide you source code? I am particullary interested in how you build the JobSpec for the managed source.

0 Kudos
leeor
Contributor
Contributor

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.

http://www.cloudshare.com

Replicate & Share Entire IT Environments, Online

0 Kudos
patanassov
VMware Employee
VMware Employee

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

0 Kudos