[Mono-bugs] [Bug 354996] New: Interaction between ResourceManager, worker thread and remoting configuration causes spurious InvalidCastException or NullReferenceException

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Jan 20 15:45:47 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=354996


           Summary: Interaction between ResourceManager, worker thread and
                    remoting configuration causes spurious
                    InvalidCastException or NullReferenceException
           Product: Mono: Runtime
           Version: 1.2.6
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: misc
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: rcook at opiumtrail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development


Created an attachment (id=191120)
 --> (https://bugzilla.novell.com/attachment.cgi?id=191120)
Repro sources

This is a strange one. I have a repro (see attachment) but unfortunately I
haven't been able to isolate exactly what's going on. It seems to be a strange
interaction between the following three subsystems:

* A ResourceManager instance
* Adding a struct to a queue and dequeuing it on a worker thread
* Configuring remoting

If I remove any one of these three items from the repro code, then either the
issue goes away or the program crashes in yet another bizarre, and usually
unpredictable, manner.

The main symptom is that a string array that is created in the main thread of
the program is being corrupted or coerced either into the type System.Object[]
or a null reference when referenced in the worker thread resulting in a
spurious InvalidCastException or NullReferenceException.

This code fails reliably in one of three ways:

1. Unhandled Exception: System.InvalidCastException: Cannot cast from source
type to destination type.
  at Trac112.Logger+EventRecord.GetArgs () [0x00000] 
  at Trac112.Logger.WorkerFunction () [0x00000] 

2. Unhandled Exception: System.NullReferenceException: Object reference not set
to an instance of an object
  at Trac112.Logger+EventRecord.GetArgs () [0x00000] 
  at Trac112.Logger.WorkerFunction () [0x00000] 

3. ** (./Trac112.exe:26870): WARNING **: mono_class_from_mono_type: implement
me 0x43


** ERROR **: file class.c: line 3959 (mono_class_from_mono_type): should not be
reached
aborting...
Abort trap


-- 
Configure bugmail: https://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