[Mono-bugs] [Bug 612509] New: deadlock in native code, possibly related to finalizers

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jun 8 08:34:37 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=612509

http://bugzilla.novell.com/show_bug.cgi?id=612509#c0


           Summary: deadlock in native code, possibly related to
                    finalizers
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.4.x
          Platform: x86-64
        OS/Version: Debian Woody
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: misc
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: novell_com at ab.id.au
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=367806)
 --> (http://bugzilla.novell.com/attachment.cgi?id=367806)
Backtrace obtained from GDB

User-Agent:       Mozilla/5.0 (compatible; Konqueror/4.3; Linux) KHTML/4.3.5
(like Gecko)

I'm trying to run a .net-based compiler for which I have binaries generated by
visual studio. This runs correctly on Windows, but is racy when run with the
Mono runtime (version 2.4.4~svn151842-2, which is current in Debian-testing).

The races sometimes (approximately 1 in 50 invocations) result in the following
warning:

** (/home/netos/tools/i686-pc-linux-gnu/bin/Bcc:17113): WARNING **: Shutting
down finalizer thread timed out.

When this warning appears, the program appears to function correctly.

However, occasionally (perhaps 1 in 100 invocations or fewer) the program
deadlocks without any additional output. The attached gdb_backtrace.txt shows a
native code backtrace of each thread in the process (the application itself is
single-threaded) when one such deadlock occurred. Notice that every thread
appears to be executing in native code in the Mono runtime.

I cannot get a native code backtrace for the program, because I don't have the
source nor Mono debugging symbols -- I do have .pdb files from MSVC, but I
gather these are useless?

Following some debugging hints I found online, I also tried sending the process
a SIGQUIT when it was deadlocked. This produced the following:

Lock 0x24b75c8 in object 0x2aaaadd34e00 held by thread 0x2aaaae35e910, nest
level: 1
Lock 0x24b75f0 in object 0x2aaaadd34d20 held by thread 0x2aaaae55f910, nest
level: 1
Total locks (in 1 array(s)): 16, used: 9, on freelist: 7, to recycle: 0
"<unnamed thread>" tid=0x0x2b1e8db260b0 this=0x0x2aaaaaadbe58 thread handle
0x404 state : waiting on 0x400 : Event  owns ()
Full thread dump:
"<unnamed thread>" tid=0x0x2b1e8db260b0 this=0x0x2aaaaaadbe58 thread handle
0x404 state : waiting on 0x400 : Event  owns ()

I'm hoping some of this information will be useful to you.

Reproducible: Sometimes

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list