<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:43:08 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-2650] System.ArithmeticException: Overflow or underflow in the arithmetic operation</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2650</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;HI,&lt;/p&gt;

&lt;p&gt;We have enabled the floating point overflow check (&lt;a href=&quot;https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/controlfp-s?view=vs-2019&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/controlfp-s?view=vs-2019&lt;/a&gt;) in our codebase to capture some bugs in the code. But unfortuantely it makes Mongodb driver raise an exception. here is the call stack&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Unhandled Exception: System.ArithmeticException: Overflow or underflow in the arithmetic operation.&lt;br/&gt;
 at MongoDB.Bson.BsonDouble.op_Implicit(Double value)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonDoubleSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonDocumentSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonArraySerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonDocumentSerializer.DeserializeValue(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.Serializers.BsonValueSerializerBase`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)&lt;br/&gt;
 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize&lt;span class=&quot;error&quot;&gt;&amp;#91;TValue&amp;#93;&lt;/span&gt;(IBsonSerializer`1 serializer, BsonDeserializationContext context)&lt;br/&gt;
 at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage)&lt;br/&gt;
 at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.Execute(IConnection connection, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.Execute(IConnection connection, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocol&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IWireProtocol`1 protocol, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Servers.Server.ServerChannel.Command&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(ICoreSession session, ReadPreference readPreference, DatabaseNamespace databaseNamespace, BsonDocument command, IEnumerable`1 commandPayloads, IElementNameValidator commandValidator, BsonDocument additionalOptions, Action`1 postWriteAction, CommandResponseHandling responseHandling, IBsonSerializer`1 resultSerializer, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Operations.CommandOperationBase`1.ExecuteProtocol(IChannelHandle channel, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Operations.CommandOperationBase`1.ExecuteProtocol(IChannelSource channelSource, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.Execute(IReadBinding binding, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.Core.Operations.ListDatabasesOperation.Execute(IReadBinding binding, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.OperationExecutor.ExecuteReadOperation&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.ExecuteReadOperation&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(IClientSessionHandle session, IReadOperation`1 operation, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.ListDatabases(IClientSessionHandle session, ListDatabasesOptions options, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.ListDatabases(IClientSessionHandle session, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.&amp;lt;&amp;gt;c_&lt;em&gt;DisplayClass24_0.&amp;lt;ListDatabases&amp;gt;b&lt;/em&gt;_0(IClientSessionHandle session)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.UsingImplicitSession&lt;span class=&quot;error&quot;&gt;&amp;#91;TResult&amp;#93;&lt;/span&gt;(Func`2 func, CancellationToken cancellationToken)&lt;br/&gt;
 at MongoDB.Driver.MongoClient.ListDatabases(CancellationToken cancellationToken)&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Apparrently its coming from&#160; here&#160;&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Bson/ObjectModel/BsonDouble.cs#L90&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Bson/ObjectModel/BsonDouble.cs#L90&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just above that I tried to put Console.WriteLine to see what values does this func get and it gets these (I dont know the meaing of these values)&lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
1 &lt;br/&gt;
114688 &lt;br/&gt;
589824 &lt;br/&gt;
2633105408 &lt;/p&gt;

&lt;p&gt;As you can see the last number definitely will blow when casting.&lt;/p&gt;

&lt;p&gt;To test, I have created a repo so you can see the code&#160;&lt;a href=&quot;https://github.com/sherry-ummen/mongodb-bug-report-arithmeticexception&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/sherry-ummen/mongodb-bug-report-arithmeticexception&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I would be really interested in knowing what those values are and also the fix you would be doing whether on the driver level or the core level.&lt;/p&gt;</description>
                <environment>Client:&lt;br/&gt;
Windows 10&lt;br/&gt;
Server:&lt;br/&gt;
Windows Server 2012&lt;br/&gt;
Mongodb Server 4.0.9</environment>
        <key id="814971">CSHARP-2650</key>
            <summary>System.ArithmeticException: Overflow or underflow in the arithmetic operation</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="5">Cannot Reproduce</resolution>
                                        <assignee username="wan.bachtiar@mongodb.com">Wan Bachtiar</assignee>
                                    <reporter username="sherry-ummen">Sherry Ummen</reporter>
                        <labels>
                            <label>rfw</label>
                    </labels>
                <created>Wed, 26 Jun 2019 08:38:14 +0000</created>
                <updated>Thu, 25 Jun 2020 02:32:07 +0000</updated>
                            <resolved>Thu, 25 Jun 2020 02:32:07 +0000</resolved>
                                    <version>2.8.1</version>
                                                    <component>Serialization</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2297877" author="sherry-ummen" created="Wed, 26 Jun 2019 08:39:44 +0000"  >&lt;p&gt;Uggh I wanted to add one more thing. We have two servers with same config and same version of Mongodb. And this exception happens with only one server. Weird.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </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|huwbpj:</customfieldvalue>

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