[Mono-bugs] [Bug 528830] appdomain-unload.exe unit test fails
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Sat Nov 7 10:57:04 EST 2009
http://bugzilla.novell.com/show_bug.cgi?id=528830
User romain at blogreen.org added comment
http://bugzilla.novell.com/show_bug.cgi?id=528830#c19
--- Comment #19 from Romain Tartière <romain at blogreen.org> 2009-11-07 08:56:53 MST ---
Created an attachment (id=326144)
--> (http://bugzilla.novell.com/attachment.cgi?id=326144)
Workaround for AppDomain.Unload hang on FreeBSD
Hum.. I added once more quite a lot of debugging printf through the code where
the code hangs, in the loop in mono_domain_try_unload:
----8<---------------
while ((res = WaitForSingleObjectEx (thread_handle, INFINITE, TRUE) ==
WAIT_IO_COMPLETION)) {
if (mono_thread_has_appdomain_ref (mono_thread_current (), domain) &&
(mono_thread_interruption_requested ())) {
----8<---------------
I noted that when the framework hangs, both function call in the if statement
returns 0. Displaying the thread running progress, I can see this for example:
-------8<-----------
..
UNLOAD STARTING FOR DeadInvokeTest (0x824a00) IN THREAD 0x8028021c0.
BEFORE INVOKE
BEFORE DOMAIN_SET
BEFORE CREATE THREAD
AFTER RESUME THREAD
===> Wow! Unhandled event!
mono_thread_current () = 0x82ee00
domain = 0x824a00
mono_thread_has_appdomain_ref (...) = 0
mono_thread_interruption_requested (...) = 0
thread_data.failure_reason = 0x0
[THREAD] START
[THREAD] mono_thread_attach
[THREAD] mono_threads_abort_appdomain_threads
[THREAD] mono_thread_pool_remove_domain_jobs
[THREAD] mono_domain_finalize
[THREAD] mono_loader_lock
[THREAD] mono_domain_lock (0x824a00)
[THREAD] mono_domain_unlock (0x824a00)
[THREAD] mono_loader_unlock
[THREAD] mono_threads_clear_cached_culture
[THREAD] FREE 1
[THREAD] FREE 2
[THREAD] FREE 3
[THREAD] Yay, returning!
-------8<-----------
Interestingly, when the framework is hanging displaying the group of lines
after "Wow", I saw that the value of domain->friendly_name switches from the
actual friendly name to NULL after a while. Returning in this particualr
situation seems to fix the problem in this test and does not triggers
regressions as far as I can see.
I attached this workaround to this bug. Any keys about what can be happening
would be cool.
Thanks
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list