[Mono-bugs] [Bug 692422] New: ThreadAbortException corrupts mono runtime (especially NHibernate)

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sat May 7 03:07:59 EDT 2011


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

https://bugzilla.novell.com/show_bug.cgi?id=692422#c0


           Summary: ThreadAbortException corrupts mono runtime (especially
                    NHibernate)
    Classification: Mono
           Product: Mono: Runtime
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: misc
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: josef.semmler at dark-id.de
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20100101
Firefox/4.0.1

We're driving a website - using NHibernate as database abstraction layer. We
encountered the following issue:
If requests take too long to be processed, a ThreadAbortException is generated
- after that NHibernate does not work as expected anymore (a lot of "Array
index out of range", even wrong results from querys, ...). The whole website
needs to be restarted to recover.

After several tests we can say:
* it is not related to the website, it can be reproduced with a command line
application, too (create two threads using NHibernate, abort one ...)
* it does not happen each time - sometimes the system still behaves normal

* it does not happen using Microsoft .Net 

So when a ThreadAbortException is generated within the mono-runtime internally
something must happen which corrupts the overall runtime ...

Reproducible: Sometimes

Steps to Reproduce:
1. Create a small application with two threads
2. Launch some queries using NHibernate within these threads
3. Abort one thread
4. Watch the behavior of NHibernate
Actual Results:  
Somehow the internal state of the runtime is "corrupt" - especially within
NHibernate internal datastructures seem to get inconsistent ...

Expected Results:  
When a ThreadAbortException occurs the runtime should not be affected - all
threads and classes should remain in a "consistent" state.

We tried with Microsoft .Net, too ... this probem does not occur with MS .Net.
Already tried to discuss this problem with NHibernate people - but they claim
this is a mono issue ... as the problem does not happen with MS .Net.

Personally i consider this issue rather problematic - as NHibernate and mono is
common combination ... however, our tests have shown, that database results are
not reliable anymore as soon as you once got a ThreadAbortException ... this
however puts the whole usage of mono into question.

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