[Mono-bugs] [Bug 580618] New: mono/mini/tasklets.c: Store gives OutOfMemoryException instead of descriptive message if Mark not called

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Feb 17 13:23:23 EST 2010


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

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


           Summary: mono/mini/tasklets.c: Store gives OutOfMemoryException
                    instead of descriptive message if Mark not called
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: misc
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: xocotl at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=342983)
 --> (http://bugzilla.novell.com/attachment.cgi?id=342983)
patch to fix this issue

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2)
Gecko/20100212 Ubuntu/10.04 (lucid) Firefox/3.6

Store gives OutOfMemoryException instead of descriptive message if Mark not
called.

Reproducible: Always

Steps to Reproduce:
Call Store without Mark on Mono.Tasklets.Continuation.
Actual Results:  
OutOfMemoryException

Expected Results:  
a descriptive error message

Here is a patch to fix this. It also fixes store letting the call fall through
even if it should return an exception (for example, right now if another thread
calls, it will set the error message, but still allow the call).

Two other things should be fixed:
1) If stacks are over 2GB, the tasklet code is going to burn. Speedwise, sure,
but it also uses int for stack sizes instead of pointer size. :)
2) ArgumentException is really inappropriate passed back directly by
Continuation. It is not a parameter, but instead the state of the Continuation
object: InvalidOperationException. For the low level native API,
ArgumentException works if you want to keep it, but at least try { } catch {
throw InvalidOp...

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