Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft.Data.Sqlite and CommandBehavior.SingleResult throws exception #466

Closed
AdamDotNet opened this issue Feb 22, 2016 · 6 comments
Closed

Comments

@AdamDotNet
Copy link

See https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper/SqlMapper.Async.cs#L210

NuGets:
Microsoft.Data.Sqlite 1.0.0-rc1-final
Microsoft.Extensions.PlatformAbstractions 1.0.0-rc1-final

dapper-dot-net master branch

I am trying to retrieve a list of entries from a table.

columnMaps = (await connection.QueryAsync<ColumnMap>("SELECT column_id, column_name, ordinal, data_type, variable_type FROM column_map ORDER BY ordinal;").ConfigureAwait(false)).ToList();

This exception is thrown.
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at Microsoft.Data.Sqlite.SqliteCommand.d__52.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult() at Dapper.SqlMapper.<QueryAsync>d__221.MoveNext() in D:\GitHub\dapper-dot-net\Dapper\SqlMapper.Async.cs:line 210

Removing CommandBehavior.SingleResult worked, though that is obviously not the universal answer.

@mgravell
Copy link
Member

This is actually a sqlite provider bug; a PR for this has been merged. I
get that it is vexing, though. I'm tempted to try and detect this error,
set a global flag, and retry (not setting this in future). This would mean
that it works with the optimisation when fixed at the provider.

On Mon, 22 Feb 2016 19:37 AdamDotNet [email protected] wrote:

See
https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper/SqlMapper.Async.cs#L210

NuGets:
Microsoft.Data.Sqlite 1.0.0-rc1-final
Microsoft.Extensions.PlatformAbstractions 1.0.0-rc1-final

dapper-dot-net master branch

This exception is thrown.
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior
behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior
behavior, CancellationToken cancellationToken)
at Microsoft.Data.Sqlite.SqliteCommand.d__52.MoveNext()

--- End of stack trace from previous location where exception was thrown

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task)
at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1.ConfiguredTaskAwaiter.GetResult()
at Dapper.SqlMapper.d__221.MoveNext() in
D:\GitHub\dapper-dot-net\Dapper\SqlMapper.Async.cs:line 210

Removing CommandBehavior.SingleResult worked, though that is obviously
not the universal answer.


Reply to this email directly or view it on GitHub
#466.

@AdamDotNet
Copy link
Author

Fair enough! I was wondering if bugs with Dapper were actually bugs with a pre-release version of SQLite. I'll go ahead and close this one and watch for a new SQLite release.

mgravell added a commit that referenced this issue Feb 22, 2016
… by adding retry-with-fallback flags strategy
@mgravell
Copy link
Member

@AdamDotNet I added a workaround for this into the code. Of course, that doesn't help if the parameters refuse to work at all (#467), but ... this bit won't bite after the next build ;)

@AdamDotNet
Copy link
Author

Cool, thanks!

@mgravell
Copy link
Member

For reference: issue / pull request

@mgravell
Copy link
Member

mgravell commented Apr 1, 2016

deployed 1.50-beta9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants