bchavez / RethinkDb.Driver

:headphones: A NoSQL C#/.NET RethinkDB database driver with 100% ReQL API coverage.
http://rethinkdb.com/api/java
Other
383 stars 134 forks source link

Various exceptions when updating a document #161

Closed DrewRidley closed 3 years ago

DrewRidley commented 3 years ago

Version Information

Software Version(s)
NuGet Package Latest
.NET Core?
.NET Full Framework?
Driver Windows OS? Latest
Driver Linux OS?
Visual Studio?
RethinkDB Server
Server Windows OS?
Server Linux OS? rethinkdb 2.4.1~0focal

What is the expected behavior?

No error is thrown when executing a query, or if an error is thrown , the exception is derived of a driver type.

What is the actual behavior?

System.Net.WebException: An error occurred while sending the request. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: The response ended prematurely.

Other notes on how to reproduce the issue?

Not sure, its possible the driver just doesn't work correctly with the latest version of the server.

Please provide JSON protocol traces and log files.

No protocol traces are available.

Any possible solutions?

System.Net.WebException: An error occurred while sending the request. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: The response ended prematurely. at System.Net.Http.HttpConnection.FillAsync(Boolean async) at System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean async, Boolean foldedHeadersAllowed) at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool

Can you identify the location in the driver source code where the problem exists?

Not yet, no

If the bug is confirmed, would you be willing to submit a PR?

Absolutely

Yes / No (Help can be provided if you need assistance submitting a PR)

No

bchavez commented 3 years ago

Hello,

The exception stack trace posted references HttpRequestException. Nowhere in the driver code do we attempt to make an HTTP request.

The exception you are experiencing is most likely arising inside your application code somewhere. A possible cause is some kind of background async task not being awaited properly and an exception is being thrown from a continuation on a thread from the .NET thread-pool.

Also, if you have any HTTP request in your code that triggers during Class.Property access then you'd want to consider changing that behavior.

I don't think this has anything to do with the RethinkDB C# driver.

If you find a problem with the driver, you'll need to present a unit test that can reproduce the bug in the driver; then, and only then, I can help with a fix.

Thanks, Brian