-
Notifications
You must be signed in to change notification settings - Fork 63
sql version telemetry data from input bindings #337
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
Conversation
Charles-Gagnon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well this isn't great, it's still failing with a connection closed error
Microsoft.Data.SqlClient: BeginExecuteReader requires an open and available Connection. The connection's current state is closed.
Go ahead and try putting the connection check back in and removing the isDisposed call - if that works then we'll go with that for now but also open an issue to investigate more because I'm worried there's some multi-threaded stuff messing this up so we might need to refactor how we're doing this a bit more.
|
Reverted the changes to check on connection state and created the following to track this #350 |
| private async Task<bool> GetNextRowAsync() | ||
| { | ||
| if (this._reader == null) | ||
| if (this._connection.State != System.Data.ConnectionState.Closed) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming the tests pass please create an issue for investigating this and then add a comment explaining why we're doing this with a link to the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran locally and they passed (fingers crossed), will add the comment, thanks
* Don't publish TSA results on PRs (#327) * Don't publish TSA results on PRs * fix * Add more debug logging (#328) * add debug logging * pr comments + fix test * log queries * Add benchmark project for performance tests (#294) * add benchmark project * fix logger * fix logger * copy functions to benchmark output folder * cleanup * move setup methods to base * add output binding perf * clean up * add README * fix readme * add link to integration tests * typo * cleanup + comments * address pr comments * fix readme * fix integration test base * pr comments * Fix localization/serialization issues (#329) * Fix localization issues * split tests & cleanup * Replace file copy with itemgroup * Add policheck and var for uploading to TSA (#332) * Add policheck * Upload policheck to TSA codebase * Try globbing files * Scan all * Only upload when var set * post analysis * Only on windows * break on warn * testing * re-enable and break on error * Update notification alias * Fix local build errors (#334) * Fix local build errors * Update comments * Fix log error not printing out primary key name (#335) * Don't run Roslyn analyzers on PRs (#336) * Don't run Roslyn analyzers on PRs * fix * Do not process rows if lease acquisition fails (#339) * Fix README link (#342) * Escape special characters in Readme file (#346) * Wait for error inside `StartFunctionsHostAndWaitForError` method (#349) * Add test for multiple triggered functions (#343) * Add retry when attempting to release leases (#340) * Add retry when attempting to release leases * Address comments * Address more comments * Change loop structure according to comment * sql version telemetry data from input bindings (#337) * connection info telemetry data frm input bindings * capture convert event after collecting connection * remove event * first collect telemetry * fix tests * make convert type optional * update xml * add telemetry service * clean up * remove ITelemetryService * undo changes * merge conflict * missed merge conflict * extra line * add null check * capture telemetry after opening connection * correct connection * move telemtery after connection.OpenAsync * open connection on initialize * add xml * address comments * refactor test * add xml comment * update xml * add check back * add connection state check * remove explicit checks * add isDisposed * add comments * revert isDisposed changes * add comment with github issue link * Refactor locking logic in class `SqlTableChangeMonitor` (#357) * cherry-pick c5a746f * Merge commit '76575f29e964f3487684b84e279444279296f5c2' into chgagnon/mergeFromMain1 # Conflicts: # src/SqlAsyncCollector.cs # test/GlobalSuppressions.cs * Add comments to explain LastSyncVersion selection (#358) * Fix * Move test scripts * Constructor cleanup (#362) * Initialize vars at declaration * Remove extra ; * More cleanup * Remove configuration * Add configuration for batch size/polling interval (#364) * Add configuration for batch size/polling interval * PR comments Co-authored-by: Lucy Zhang <luczhan@microsoft.com> Co-authored-by: Jatin Sanghvi <20547963+JatinSanghvi@users.noreply.github.com> Co-authored-by: AmeyaRele <35621237+AmeyaRele@users.noreply.github.com> Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
* Don't publish TSA results on PRs (#327) * Don't publish TSA results on PRs * fix * Add more debug logging (#328) * add debug logging * pr comments + fix test * log queries * Add benchmark project for performance tests (#294) * add benchmark project * fix logger * fix logger * copy functions to benchmark output folder * cleanup * move setup methods to base * add output binding perf * clean up * add README * fix readme * add link to integration tests * typo * cleanup + comments * address pr comments * fix readme * fix integration test base * pr comments * Fix localization/serialization issues (#329) * Fix localization issues * split tests & cleanup * Replace file copy with itemgroup * Add policheck and var for uploading to TSA (#332) * Add policheck * Upload policheck to TSA codebase * Try globbing files * Scan all * Only upload when var set * post analysis * Only on windows * break on warn * testing * re-enable and break on error * Update notification alias * Fix local build errors (#334) * Fix local build errors * Update comments * Fix log error not printing out primary key name (#335) * Don't run Roslyn analyzers on PRs (#336) * Don't run Roslyn analyzers on PRs * fix * Do not process rows if lease acquisition fails (#339) * Fix README link (#342) * Escape special characters in Readme file (#346) * Wait for error inside `StartFunctionsHostAndWaitForError` method (#349) * Add test for multiple triggered functions (#343) * Add retry when attempting to release leases (#340) * Add retry when attempting to release leases * Address comments * Address more comments * Change loop structure according to comment * sql version telemetry data from input bindings (#337) * connection info telemetry data frm input bindings * capture convert event after collecting connection * remove event * first collect telemetry * fix tests * make convert type optional * update xml * add telemetry service * clean up * remove ITelemetryService * undo changes * merge conflict * missed merge conflict * extra line * add null check * capture telemetry after opening connection * correct connection * move telemtery after connection.OpenAsync * open connection on initialize * add xml * address comments * refactor test * add xml comment * update xml * add check back * add connection state check * remove explicit checks * add isDisposed * add comments * revert isDisposed changes * add comment with github issue link * Refactor locking logic in class `SqlTableChangeMonitor` (#357) * cherry-pick 6f23a5a * Merge commit 'd594efe88f0f7d32e4dcd31faad22885291d4902' into chgagnon/mergeFromMain1 # Conflicts: # src/SqlAsyncCollector.cs # test/GlobalSuppressions.cs * Add comments to explain LastSyncVersion selection (#358) * Fix * Move test scripts * Constructor cleanup (#362) * Initialize vars at declaration * Remove extra ; * More cleanup * Remove configuration * Add configuration for batch size/polling interval (#364) * Add configuration for batch size/polling interval * PR comments Co-authored-by: Lucy Zhang <luczhan@microsoft.com> Co-authored-by: Jatin Sanghvi <20547963+JatinSanghvi@users.noreply.github.com> Co-authored-by: AmeyaRele <35621237+AmeyaRele@users.noreply.github.com> Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
* connection info telemetry data frm input bindings * capture convert event after collecting connection * remove event * first collect telemetry * fix tests * make convert type optional * update xml * add telemetry service * clean up * remove ITelemetryService * undo changes * merge conflict * missed merge conflict * extra line * add null check * capture telemetry after opening connection * correct connection * move telemtery after connection.OpenAsync * open connection on initialize * add xml * address comments * refactor test * add xml comment * update xml * add check back * add connection state check * remove explicit checks * add isDisposed * add comments * revert isDisposed changes * add comment with github issue link
Sql version isn't being captured for all the input bindings since we are capturing the event prior to getting that info. Moved it to BuildItemFromAttributeAsync method to capture that info from connection.
I looked into creating a ITelemetryService and how we can pass the mock for tests, but we're mocking the calls where we capture the telemetry in tests already and is not needed for the current code. Will definitely work on it in a separate PR for future releases.