Ticket Hash: | d4cc1cedccc51c8061ede27bbf8e6a34f9ce4813 | |||
Title: | SQLiteConvert.TypeNameToDbType is not threadsafe | |||
Status: | Closed | Type: | Code_Defect | |
Severity: | Severe | Priority: | Immediate | |
Subsystem: | None | Resolution: | Duplicate | |
Last Modified: | 2011-10-28 13:31:47 | |||
Version Found In: | 1.0.76.0 | |||
Description: | ||||
{_typeNames.Add(typeName.typeName, typeName)} (line 707) can (and will im my case) be called concurrent by two different threads => {"An item with the same key has already been added."}.
there is no mutex and the {if (_typeNames == null)} is not good enough.
occurs in an NHibernate environment where two requests (queries) will be executed/started at the same time(millis).
workaround: execute a single initial query to initialize the static {private static Dictionary<string, SQLiteTypeNames> _typeNames}
anonymous claiming to be Alex Spence added on 2011-10-28 00:23:21 UTC: mistachkin added on 2011-10-28 13:31:47 UTC: |