kawansoft / AceQL.Client2

C# Client toolkit for easy access of remote SQL databases managed with AceQL HTTP.
https://www.aceql.com
Apache License 2.0
3 stars 1 forks source link

No response after query execution using ExecuteReaderAsync #7

Closed santhosh250595 closed 3 years ago

santhosh250595 commented 3 years ago

Hello Nicolas Hope you are doing good.

I'm using a .Net framework 4.7.2 Class library using AceQl Client 6.0 .

After a set of query execution I'm not getting any response from ExecuteReaderAsync (kind of Application hanged). This behavior I can find only in AceQl 6.0 but with 5.5 it works very normally. I tried to execute the query flow in a test solution with AceQl 6 but it works normally there and I didn't get any hint about the issue. I also checked the compatibility of .Net Standard with our framework version which looks compatible Is there anything you can suggest me to try to find out the issue

ndepomereu commented 3 years ago

Hi Santosh,

This is very weird, and I could not reproduce it. I have checked a C# program that runs in a loop, there are no hangs. I suspect trouble somewhere in the native C# HttpClient stack, but this is not sure.

Can you please try with both True/False options ofAceQLConnection.GzipResult property? There could be a problem with this option when set to default True value.

After that, I will think of another tests & traces.

santhosh250595 commented 3 years ago

Hi Nicolas,

I've tried setting GZipResult to both true and false but no change in behavior.

ndepomereu commented 3 years ago

Hi Santhosh,

Does the hang happen on same request? Does the hang happen at same time after start? How long client is running before hang? How many clients are running, does it happen on all of them? Just restarting only the client side allows to continue until next hang?

Do you have any message on server size? There are AceQL logs and stdout when running server side.

Do you have any pattern on the content of SQL order? Size of the SQL order? Size of the result?

Please send me any hint, info, deduction you have in mind...

I will then add asap some trace to find exact point of hang on client side.

santhosh250595 commented 3 years ago

Hello Nicolas

I downloaded the code and tried adding more logs to HttpManager class to get more info. Response is not coming after PostAsync. This link gave some clue about deadlock possibiity in PostAsync. https://stackoverflow.com/questions/34078296/httpclient-postasync-never-return-response. So I added configureawait to PostAsync and then it was successful. response = await httpClient.PostAsync(theUrl, content).ConfigureAwait(false); Can you please take a look.

ndepomereu commented 3 years ago

Hi Santhosh,

Thanks for debugging and finding this Big One! We forgot to add ConfigureAwait(false)to await httpClient.PostAsync(theUrl, content)

I will generate a clean new version asap today.

santhosh250595 commented 3 years ago

Hello Nicolas

Thanks for the quick release. It resolved my issue.