Using 1.6.2 and an ESX VM. There's something very wrong caused by a RevertToSnapshot + Disconnect call. I can reproduce this 100%. Maybe I can have symbols for vix.dll or a developer can contact me? - Thx
gvmomi.dll!036c58ba()
http://Frames below may be incorrect and/or missing, no symbols loaded for gvmomi.dll
gobject-2.0.dll!0368718c()
glib-2.0.dll!035cb0d8()
glib-2.0.dll!035cb44e()
gobject-2.0.dll!03684f7f()
gobject-2.0.dll!03687926()
vix.dll!1114a888()
vix.dll!11119135()
vix.dll!11119150()
vix.dll!111070ab()
vix.dll!111079ca()
vix.dll!1110394d()
vix.dll!1115f23f()
vix.dll!1115f950()
vix.dll!11165353()
vix.dll!11154a79()
vix.dll!111540a3()
vix.dll!11153db5()
vix.dll!11165353()
vix.dll!11165277()
vix.dll!11102678()
vix.dll!11165353()
vix.dll!11154a79()
vix.dll!1115fa93()
vix.dll!1110198d()
vix.dll!11191380()
kernel32.dll!7c80b683()
Greetings my friend!
Yes, I'm calling OpenVM in the same function I call host connect. I'll test using more than one function. I let you know if I have success!!!
About the code ... I'm not sure if it helps because I could reproduce the issue even with the workaround provided.
I'm not 100% sure this issue is related to multiple host connections. In fact, I could reproduce it, once, right after rebooting my OS at the first host connection (same point - OpenVM).
Best Regards!
I've isolated the host connection in a single function, but the issue persists.
God news, bad news…
I’ve got a newer version of glib (2.20) in http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib and just replaced the current one. After that, it works!! Even in the workaround solution!!!
But with the following assertion failures:
Connecting to host
Opening VM
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 18
52: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `(null)'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `(null)'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 18
52: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `(null)'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `(null)' in
cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `(null)'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `GParamInt6
4' in cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 18
52: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `GParamInt6
4' in cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `GParamInt64'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(VMWareCrash.exe:4052): WARNING **: invalid uninstantiatable type `GParamInt6
4' in cast to `GObject'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gobject.c: line 59
6: assertion `G_IS_OBJECT (object)' failed
(VMWareCrash.exe:4052): WARNING **: instance of invalid non-instantiatable ty
pe `GParamInt64'
(VMWareCrash.exe:4052): CRITICAL **: file ..\..\..\gobject\gsignal.c: line 21
26: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
Fetching root snapshot
Reverting to snapshot
GC
Disconnecting
Any thoughts?
To someone from vmware,
I would like to know when are you planning to release a new VIX version?
Regards,
Marteleras.
I'll second the last post. My biggest gripe(s) about Vix are:
Give us some expectations about when bugs get fixed. I am not talking about features.
Give us a beta program where we can try the fixes before they release. If you release 1.6.3 and I still have problems that I can't fix quickly (till the next release of VixCOM, maybe next year?) I am going to have some pissed off customers.
cheers
dB.
marteleras and dblock:
The original bug mentioned in this thread will likely be fixed in the beta version of Vix for the next version of
Workstation. While I cannot share exactly when this will be, I will be sure to
notify you when it is available. You will both be given the opportunity to test
the beta version so that you can work with it prior to release.
marterleras:
I am unsure if the bug you encountering is the same one experienced by dblock. In order to provide you with a workaround and eventual fix, could you please include the source code that triggers this error on your machine? That will help me with its reproduction.
Thank you,
Joe
Please include me in the beta as well. I will be able to test from a different angle than dblock.
Joe,
I'm not sure if the bug is the same one experienced by dblock too. However, the source code provided by dblock in this thread triggers the bug on my machine. Sometimes it works, sometimes not.
Executing this application in a batch loop.. I would say that in 10 attempts it works ~4 times.
marteleras: The code appears to be crashing because of the location of your Garbage Collection. The call to the Garbage Collector must occur outside the block the VMOpen call is made in. In order for the VM Object's COM destructor to fire, it must first go out of scope and then the GC must run.
Let me know if you need help moving the garbage collector out of the block containing the VMOpen call (you can also see dblock's properly functioning code included later in the thread for an example). If you still encounter the error even after moving the GC call, let me know and upload your source code for further investigation. Thank you.
fixitChris: I will be sure to include you in the beta as well.
Joe,
Sorry for the late response, I was out of office last week.
The first version of my app had the GC call only outside the block, but it crashes anyway.... I've just moved that GC call for tests.
BTW, I've created a similar application in C, it crashes at the same point and like the first one, it's an indeterministic error, it works from time to time. I've compiled and run in Windows and Linux.. same error in both. Actually, in Linux the application doesn't crash in the Open command, but in the next one. ("Power on" or "Revert to snapshot").
Its really annoying!!!!
Linux log:
-
In this attempt, the application did not fail at the open command, but the next command have failed.
-
Trying to connect...
Trying to open...
(process:28294): GLib-GObject-WARNING **: invalid uninstantiatable type `gdouble' in cast to `GObject'
(process:28294): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed
(process:28294): GLib-GObject-WARNING **: invalid uninstantiatable type `gdouble' in cast to `GObject'
(process:28294): GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT (object)' failed
(process:28294): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `gdouble'
(process:28294): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(process:28294): GLib-GObject-WARNING **: invalid uninstantiatable type `gdouble' in cast to `GObject'
(process:28294): GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT (object)' failed
(process:28294): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `gdouble'
(process:28294): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
Trying to power on...
ERROR **: file /build/mts/release/bora-127388/bora/vim/lib/gvmomi/gvmomiSession.c: line 1253 (gvmomi_session_invoke_method): assertion failed: (NULL == g_hash_table_lookup(session->priv->listenerTable, listener))
aborting...
Aborted
-
In the attachments is the C code.
Best Regards,
Marteleras.
marteleras: Did you get those errors still using the newer version of glib you replaced the old one with? If it is, can you please revert to the version that shipped with Vix and test again?
Thanks,
Joe
No Joe,
I've got those errors using the glib shipped with Vix.
Regards,
Marteleras.
dblock,
have you run into issues with 1.7 where GC.Collect needs to be called?
Chris