Skip to content

Arithmetic Overflow in ExecuteNonQuery #966

@akamor

Description

@akamor

Running a series of ALTER TABLE statements and get this exception. The queries themselves are simply dropping the AUTO_INCREMENT property on a bunch of tables, e.g .ALTER TABLE

MODIFY COLUMN bigint(20) NOT NULL;

Not sure how we could get an overflow but looking at the code a bit it might be happening during establishing a connection?

One last thing to note is that for some reason one of these queries caused a hang that lasted ~13 hours. The command timeout is set to 0, however, and normally when we do so timeout exceptions the error message is quite clear.

MySqlConnector.MySqlException (0x80004005): Failed to read the result set. 
 ---> System.OverflowException: Arithmetic operation resulted in an overflow. 
   at MySqlConnector.Protocol.Payloads.OkPayload.Create(ReadOnlySpan`1 span, Boolean deprecateEof, Boolean clientSessionTrack) in /_/src/MySqlConnector/Protocol/Payloads/OkPayload.cs:line 31 
   at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) 
   at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 119 
   at MySqlConnector.MySqlDataReader.CreateAsync(CommandListPosition commandListPosition, ICommandPayloadCreator payloadCreator, IDictionary`2 cachedProcedures, IMySqlCommand command, CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 444 
   at MySqlConnector.Core.CommandExecutor.ExecuteReaderAsync(IReadOnlyList`1 commands, ICommandPayloadCreator payloadCreator, CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/CommandExecutor.cs:line 60 
   at MySqlConnector.MySqlCommand.ExecuteNonQueryAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlCommand.cs:line 266 
   at MySqlConnector.MySqlCommand.ExecuteNonQuery() in /_/src/MySqlConnecto

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions