VMware {code} Community
dblock
Enthusiast
Enthusiast

AV: assert from Glib + crash in a C# environment

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()

Reply
0 Kudos
31 Replies
marteleras
Contributor
Contributor

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!!! Smiley Happy

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!

Reply
0 Kudos
marteleras
Contributor
Contributor

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?

Reply
0 Kudos
marteleras
Contributor
Contributor

To someone from vmware,

I would like to know when are you planning to release a new VIX version?

Regards,

Marteleras.

dblock
Enthusiast
Enthusiast

I'll second the last post. My biggest gripe(s) about Vix are:

  1. Give us some expectations about when bugs get fixed. I am not talking about features.

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

Reply
0 Kudos
admin
Immortal
Immortal

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

Reply
0 Kudos
fixitchris
Hot Shot
Hot Shot

Please include me in the beta as well. I will be able to test from a different angle than dblock.

Reply
0 Kudos
marteleras
Contributor
Contributor

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.

Reply
0 Kudos
admin
Immortal
Immortal

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.

Reply
0 Kudos
marteleras
Contributor
Contributor

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.

Reply
0 Kudos
admin
Immortal
Immortal

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

Reply
0 Kudos
marteleras
Contributor
Contributor

No Joe,

I've got those errors using the glib shipped with Vix.

Regards,

Marteleras.

Reply
0 Kudos
fixitchris
Hot Shot
Hot Shot

dblock,

have you run into issues with 1.7 where GC.Collect needs to be called?

Chris

Reply
0 Kudos