[Mono-bugs] [Bug 470568] New: mono_thread_current() called after TlsFree(current_object_key)
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Jan 29 06:19:36 EST 2009
https://bugzilla.novell.com/show_bug.cgi?id=470568
Summary: mono_thread_current() called after
TlsFree(current_object_key)
Classification: Mono
Product: Mono: Runtime
Version: 2.4.x
Platform: Other
OS/Version: Other
Status: NEW
Severity: Minor
Priority: P5 - None
Component: misc
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: andyhume32 at yahoo.co.uk
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Created an attachment (id=268601)
--> (https://bugzilla.novell.com/attachment.cgi?id=268601)
Application Verifier log
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR
2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648;
NET CLR 3.5.21022)
Might this instead be titled: mono_thread_current called after
mono_thread_cleanup, or is that necessary behaviour?
Running App Verifier on Windows shows the error below[1].
[[
..
<avrf:logEntry … LayerName="TLS" StopCode="0x352" Severity="Error">
<avrf:message>Using an invalid TLS index.</avrf:message>
<avrf:parameter1>1aabba - TLS index</avrf:parameter1>
<avrf:stackTrace>
<avrf:trace>vfbasics!CheckTlsIndex+ce</avrf:trace>
<avrf:trace>vfbasics!AVrfpTlsGetValue+48</avrf:trace>
<avrf:trace>mono!mono_thread_current+13</avrf:trace>
..
]]
The complete log is attached.
With some debugging, the key value used in TlsGetValue is the same are was
given by TlsAlloc, however further debugging shows an intervening call to
TlsFree(current_object_key) in mono_thread_cleanup. Some printf debugging:
[[
mono_thread_init: Allocated current_object_key 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
…cut…
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
mono_thread_cleanup: TlsFree current_object_key 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
mono_thread_current: mono_thread_current calling GET_CURRENT_OBJECT key: 0x18
]]
A debugger log containing the stack traces of the three calls is attached
(though as no symbols it has approximate locations).
Don’t know how serious this is (except for [1] :-,)), marking as MINOR
initially. AppVerifier reports it presumably in case a future OS version is
less forgiving about accessing free'd TLS entries.
--
[1] Note that this app verifier error is also reported through the debugger,
thus the mono.exe process doesn't exit until a debugger is attached and the
process shutdown from there.
Reproducible: Always
--
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