microsoft / microsoft/CSS_SQL_Networking_Tools
BID Trace adding a duplicated provider - MSDADIAG -at crtl.guid when using SQLTrace.
まだ誰も着手していません。
- 主要言語
- C#
- スター
- 209
- フォーク
- 59
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Issue: .ETL file for BID Trace not being generated. No failures are reported while running SQLTrace. SQLTrace then starts and stops successfully. This was first observed after the fact by reviewing the SQLTrace.log file.
Impact: The BID Trace collection fails to start, preventing the BID Trace .etl file from being generated. In the BID Trace output folder, only the ctrl.guid file is present and no BID Trace .etl file is created.
Frequency of the error: 100% reproducible. The issue occurs on every BID Trace execution.
Repro steps:
- This can be reproduced on any computer.
- At the SQLTrace.ini file, uncomment the BIDProviderList parameter under # All BID trace points . Leave all other BIDProviderList parameters commented.
- Start SQLTrace (in powershell as administrator): .\SQLTrace -start
- When prompted to restart the applications, just hit ENTER.
- Then allow it to get started. It is not needed to wait after started.
- Stop SQLTrace: .\SQLTrace -stop
Once the collection is completed, open the SQLTRace.log file that is generated under the SQLTrace output folder: SQLTrace_
At the log file look for this line (the timestamp is the timestamp of the collection I did while reproducing this for this post):
2026/08/20 09:16:37.375 INFO Starting BID Traces ...
2026/08/20 09:16:37.656 INFO LOGMAN: Error: Duplicate items are not allowed.
These messages indicate that BID Trace failed to start. Additionally, the LOGMAN error is logged with the severity level INFO, making the issue harder to identify during troubleshooting.
BIDProviderList Validation:
- at the SQLTrace.log:
The configured BID provider list contains no obvious duplicate entries:
2026/08/20 09:16:11.160 INFO Read the ini file: SQLTrace.ini
2026/08/20 09:16:11.167 INFO
2026/08/20 09:16:11.177 INFO BIDTrace Yes
2026/08/20 09:16:11.187 INFO BIDWow Both
2026/08/20 09:16:11.195 INFO BIDProviderList System.Data System.Data.SNI System.Data.OracleClient OLEDB SQLOLEDB DBNETLIB SQLNCLI SQLNCLI10 SQLNCLI11 MSOLEDBSQL MSOLEDBSQL19 ODBC SQLSRV32 MSODBCSQL11 MSODBCSQL13 MSODBCSQL17 MSODBCSQL18 MSDADIAG ADODB ADOMD BCP BCP10 MSADCE MSADCF MSADCO MSADDS MSADOX MSDAORA MSDAPRST MSDAREM MSDART MSDATL3 ODBCBCP RowsetHelper SQLBROWSER System.Data.Entity SQLJDBC_XA
At first glance, there are no duplicated provider names in the configured BIDProviderList.
- at the ctrl.guid:
However, the generated ctrl.guid file contains the MSDADIAG.ETW provider twice:
{1c95126e-7eea-49a9-a3fe-a378b03ddb4d} 0xc0001ffff0000100 0x04 Microsoft-Windows-DNS-Client
{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752} 0x630ff 0 MSDADIAG.ETW
{914ABDE2-171E-C600-3348-C514171DE148} 0x630ff 0 System.Data.1
{C9996FA5-C06F-F20C-8A20-69B3BA392315} 0x630ff 0 System.Data.SNI.1
{DCD90923-4953-20C2-8708-01976FB15287} 0x630ff 0 System.Data.OracleClient.1
{0DD082C4-66F2-271F-74BA-2BF1F9F65C66} 0x630ff 0 OLEDB.1
{C5BFFE2E-9D87-D568-A09E-08FC83D0C7C2} 0x630ff 0 SQLOLEDB.1
{BD568F20-FCCD-B948-054E-DB3421115D61} 0x630ff 0 DBNETLIB.1
{BA798F36-2325-EC5B-ECF8-76958A2AF9B5} 0x630ff 0 SQLNCLI.1
{A9377239-477A-DD22-6E21-75912A95FD08} 0x630ff 0 SQLNCLI10.1
{2DA81B52-908E-7DB6-EF81-76856BB47C4F} 0x630ff 0 SQLNCLI11.1
{EE7FB59C-D3E8-9684-AEAC-B214EFD91B31} 0x630ff 0 MSOLEDBSQL.1
{699773CA-18E7-57DF-5718-C244760A9F44} 0x630ff 0 MSOLEDBSQL19.1
{F34765F6-A1BE-4B9D-1400-B8A12921F704} 0x630ff 0 ODBC.1
{4B647745-F438-0A42-F870-5DBD29949C99} 0x630ff 0 SQLSRV32.1
{7C360F7F-7102-250A-A233-F9BEBB9875C2} 0x630ff 0 MSODBCSQL11.1
{85DC6E48-9394-F805-45C9-C8B2ACA2E7FE} 0x630ff 0 MSODBCSQL13.1
{053A11C4-BC2B-F7CE-4A10-9D2602643DA0} 0x630ff 0 MSODBCSQL17.1
{1a1283ad-c65d-28ef-d729-39794ffdab32} 0x630ff 0 MSODBCSQL18.1
{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752} 0x630ff 0 MSDADIAG.ETW
{04C8A86F-3369-12F8-4769-24E484A9E725} 0x630ff 0 ADODB.1
{7EA56435-3F2F-3F63-A829-F0B35B5CAD41} 0x630ff 0 ADOMD.1
{24722B88-DF97-4FF6-E395-DB533AC42A1E} 0x630ff 0 BCP.1
{ED303448-5479-CA3F-5686-E020BA4F47F9} 0x630ff 0 BCP10.1
{76DBA919-5A36-FC80-2CAD-3185532B7CB1} 0x630ff 0 MSADCE.1
{101C0E21-EBBA-A60A-EC3D-58797788928A} 0x630ff 0 MSADCF.1
{5C6CE734-1B3E-705E-C2AB-B272D99AAF8F} 0x630ff 0 MSADCO.1
{13CD7F92-5BAA-8C7C-3D72-B69FAC139A46} 0x630ff 0 MSADDS.1
{6C770D53-0441-AFD4-DCAB-1D89155FECFC} 0x630ff 0 MSADOX.1
{F02A5DAC-6DB2-F77F-F6A8-6404FE697B7D} 0x630ff 0 MSDAORA.1
{64A552E0-6C60-B907-E59C-10F1DFF76B0D} 0x630ff 0 MSDAPRST.1
{564F1E24-FC86-28E1-74F8-5CA0D950BEE0} 0x630ff 0 MSDAREM.1
{CEB7253C-BB96-9DFE-51D1-53D966D0CF8B} 0x630ff 0 MSDART.1
{87B93A44-1F73-EC83-7261-2DFC972D9B1E} 0x630ff 0 MSDATL3.1
{932B59F1-90C2-D8BA-0956-3975C344AE2B} 0x630ff 0 ODBCBCP.1
{74A75B02-36D8-EDE6-D10E-95B691503408} 0x630ff 0 RowsetHelper.1
{FC9F92E6-D521-9C9A-1D8C-D8980B9978A9} 0x630ff 0 SQLBROWSER.1
{A68D8BB7-4F92-9A7A-D50B-CEC0F44C4808} 0x630ff 0 System.Data.Entity.1
{172E580D-9BEF-D154-EABB-83429A6F3718} 0x630ff 0 SQLJDBC_XA.1
This appears to result in duplicate provider entries being passed to LOGMAN, which then returns: Error: Duplicate items are not allowed.
Expected Result:
-
BID Trace should start successfully and generate the BID Trace .etl file.
-
The generated ctrl.guid file should not contain duplicate provider entries.
Suspected Root Cause:
- SQLTrace appears to add the MSDADIAG.ETW provider twice when generating ctrl.guid while using the "All BID trace points" provider list.
Requests for the SQLTrace Development Team:
-
Prevent SQLTrace from adding duplicate provider entries to ctrl.guid. Specifically, ensure that MSDADIAG.ETW is added only once.
-
Improve error reporting severity for LOGMAN failures.
For example:
Current: 2026/08/20 09:16:37.656 INFO LOGMAN: Error: Duplicate items are not allowed.
Suggested: 2026/08/20 09:16:37.656 ERROR LOGMAN: Error: Duplicate items are not allowed.
This would make troubleshooting significantly easier and better reflect the actual failure condition.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
SQLTrace.ini で BIDProviderList を有効にした状態で問題を再現することから始め、生成された ctrl.guid と SQLTrace ログを調べます。プロバイダー リストが ctrl.guid エントリに変換される仕組みと、LOGMAN の失敗がどのようにログに記録されるかを追跡します。BID Trace が開始し、.etl ファイルが生成され、MSDADIAG.ETW が 1 回だけ出現し、重複項目の失敗がエラーとして記録されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp
- 領域
- cli
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 58/100