<div>I sometimes get this exception (mono 2.8) - running fully bundled (exe + deps).  It happens very rarely.  64 bit suse system.</div>
<div> </div>
<div>How is this exception possible?</div>
<div> </div>
<div>Stack Trace:<br>    at System.Collections.Hashtable..ctor (Int32 capacity, Single loadFactor, IHashCodeProvider hcp, IComparer comparer) [0x00000] in &lt;filename unknown&gt;:0 <br>    at System.Collections.Hashtable..ctor (Int32 capacity, Single loadFactor) [0x00000] in &lt;filename unknown&gt;:0 <br>
    at System.Collections.Hashtable..ctor (Int32 capacity) [0x00000] in &lt;filename unknown&gt;:0 <br>    at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit) [0x00000] in &lt;filename unknown&gt;:0 <br>
    at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, Boolean inherit) [0x00000] in &lt;filename unknown&gt;:0 </div>
<div>    at System.Reflection.MonoField.GetCustomAttributes (Boolean inherit) [0x00000] in &lt;filename unknown&gt;:0 </div>
<div> </div>
<div> </div>
<div>Code from hashtable:</div>
<div> </div>
<div>public Hashtable (int capacity, float loadFactor, IHashCodeProvider hcp, IComparer comparer) {<br>                        if (capacity&lt;0)<br>                                throw new ArgumentOutOfRangeException (&quot;capacity&quot;, &quot;negative capacity&quot;);</div>

<div>                        if (loadFactor &lt; 0.1f || loadFactor &gt; 1.0f || Single.IsNaN (loadFactor))<br>                                throw new ArgumentOutOfRangeException (&quot;loadFactor&quot;, &quot;load factor&quot;);</div>

<div>                        if (capacity == 0) ++capacity;<br>                        this.loadFactor = 0.75f*loadFactor;<br>                        double tableSize = capacity / this.loadFactor;</div>
<div>                        if (tableSize &gt; Int32.MaxValue)<br>                                throw new ArgumentException (&quot;Size is too big&quot;);</div>
<div>                        int size = (int) tableSize;<br>                        size = ToPrime (size);<br>                        this.SetTable (new Slot [size], new int [size]);</div>
<div>                        this.hcp = hcp;<br>                        this.comparer = comparer;</div>
<div>                        this.inUse = 0;<br>                        this.modificationCount = 0;<br>                }<br></div>
<div>The only divide in there is is a float divide.  It wouldn&#39;t try to convert &#39;this.loadFactor&#39; to an int and then do int divide would it?</div>
<div> </div>
<div>Thanks</div>
<div> </div>