<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:36:03 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CSHARP-188] Deadlock possible between BsonDefaultSerializer and BsonClassMap when classes are AutoMapped on the fly</title>
                <link>https://jira.mongodb.org/browse/CSHARP-188</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;In a heavily multithreaded environment it is possible to get a deadlock between threads when classes are AutoMapped on the fly as needed.&lt;/p&gt;

&lt;p&gt;Sample program to reproduce attached. Must add a 1 second sleep to BsonDefaultSerializer.LookupActualType right after the lock on staticLock is acquired to have high probability of encountering the deadlock (the deadlock can occur without the sleep but with such low probability that it would be harder to reproduce).&lt;/p&gt;</description>
                <environment></environment>
        <key id="15405">CSHARP-188</key>
            <summary>Deadlock possible between BsonDefaultSerializer and BsonClassMap when classes are AutoMapped on the fly</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="robert@mongodb.com">Robert Stam</reporter>
                        <labels>
                    </labels>
                <created>Thu, 31 Mar 2011 18:06:55 +0000</created>
                <updated>Thu, 2 Apr 2015 18:28:13 +0000</updated>
                            <resolved>Thu, 31 Mar 2011 18:29:30 +0000</resolved>
                                    <version>1.0</version>
                                    <fixVersion>1.1</fixVersion>
                                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="27554" author="rstam" created="Fri, 1 Apr 2011 17:45:24 +0000"  >&lt;p&gt;Further removed any possiblity of deadlock by changing the three thread-safe serialization classes (BsonSerializer, BsonDefaultSerializer and BsonClassMap) to share a single static ConfigLock.&lt;/p&gt;

&lt;p&gt;As an aside: I don&apos;t consider it worthwhile to try to use a ReaderWriterLockSlim here instead. The reason is that the exclusive lock is released &lt;b&gt;very&lt;/b&gt; quickly (unless some configuration has to happen, but that only happens once). Therefore the extra complexity of using ReaderWriterLockSlim just wouldn&apos;t be worth it.&lt;/p&gt;</comment>
                            <comment id="27438" author="rstam" created="Thu, 31 Mar 2011 18:29:30 +0000"  >&lt;p&gt;Fixed by calling LookupClassMap outside of the lock in BsonDefaultSerializer. Also improved implementation to only call LookupClassMap if it is necessary.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="11212" name="Program.cs" size="1587" author="robert@mongodb.com" created="Thu, 31 Mar 2011 18:06:55 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrh96n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14287</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>