{"id":5160,"date":"2020-10-19T11:57:51","date_gmt":"2020-10-19T18:57:51","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/paul\/?p=5160"},"modified":"2021-09-28T14:39:36","modified_gmt":"2021-09-28T21:39:36","slug":"the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/","title":{"rendered":"The Curious Case of&#8230; resolving call stack symbols on SQL Server 2019"},"content":{"rendered":"<p style=\"text-align: justify;\"><em>(The Curious Case of\u2026<\/em>\u00a0used to be part of our bi-weekly\u00a0<a href=\"https:\/\/www.sqlskills.com\/join-the-sqlskills-insider-community\/\" target=\"_blank\" rel=\"noopener noreferrer\">newsletter<\/a>\u00a0but we decided to make it a\u00a0regular blog post instead so it can sometimes be more frequent. It covers something interesting one of us encountered when working with a client, doing some testing, or were asked in a random question from the community.)<\/p>\n<p style=\"text-align: justify;\">I haven&#8217;t had a need to resolve call stack symbols (see my post <a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/determine-causes-particular-wait-type\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> for an explanation) on a SQL Server 2019 instance until last weekend, when I was prepping my demos for the IEPTO2 class that&#8217;s running at the moment. I downloaded the symbols (see <a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/how-to-download-a-sqlservr-pdb-symbol-file\/\" target=\"_blank\" rel=\"noopener noreferrer\">this post<\/a>), ran my demo to determine the code paths generating <a href=\"https:\/\/www.sqlskills.com\/help\/waits\/sos_scheduler_yield\/\" target=\"_blank\" rel=\"noopener noreferrer\"><em>SOS_SCHEDULER_YIELD<\/em><\/a> waits, and it didn&#8217;t work. I got this:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nsqldk.dll+0x000000000005CE41\r\nsqldk.dll+0x0000000000002EC6\r\nsqldk.dll+0x00000000000016C4\r\nsqlmin.dll+0x0000000000001101\r\nsqlmin.dll+0x0000000000081214\r\n\r\n&lt;snip for brevity&gt;\r\n\r\nsqllang.dll+0x000000000001352F\r\nsqllang.dll+0x0000000000015427\r\nsqllang.dll+0x0000000000015609\r\nsqllang.dll+0x0000000000014D65\r\nsqllang.dll+0x00000000000147A8\r\n<\/pre>\n<p style=\"text-align: justify;\">After beating my head against the proverbial wall for an hour, I wondered if I had the wrong symbols somehow. I checked with the excellent <a href=\"https:\/\/github.com\/arvindshmicrosoft\/SQLCallStackResolver\" target=\"_blank\" rel=\"noopener noreferrer\">SQLCallStackResolver tool from GitHub<\/a> (authored by Arvind Shyamsundar from the Product Group) and that worked fine with the symbols I had, so it had to be something within SQL Server.<\/p>\n<p style=\"text-align: justify;\">I finally resorted to pinging Jonathan and after some digging he found that SQL Server 2019 requires an additional trace flag (2592) to be enabled as well as the traditional 3656. As soon as I enabled that, everything worked and I got this:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; toolbar: true; wrap-lines: true; notranslate\" title=\"\">\r\nsqldk.dll!XeSosPkg::wait_info::Publish+0x1b2\r\nsqldk.dll!SOS_Scheduler::UpdateWaitTimeStats+0x2f0\r\nsqldk.dll!SOS_Task::PostWait+0x6f\r\nsqlmin.dll!SOS_Task::Sleep+0x14e\r\nsqlmin.dll!BTreeMgr::HandleRoot+0x420\r\nsqlmin.dll!BTreeMgr::Seek+0x240\r\nsqlmin.dll!BTreeMgr::GetHPageIdWithKey+0x7ce\r\nsqlmin.dll!IndexPageManager::GetPageWithKey+0x119\r\nsqlmin.dll!GetRowForKeyValue+0x203\r\nsqlmin.dll!IndexRowScanner::EstablishInitialKeyOrderPosition+0x1bf\r\nsqlmin.dll!IndexDataSetSession::GetNextRowValuesInternal+0x1df\r\nsqlmin.dll!RowsetNewSS::GetNextRowValues+0x18d\r\nsqlmin.dll!RowsetNewSS::FetchNextRow+0x82\r\nsqlmin.dll!CQScanRangeNew::GetRow+0x1ce\r\nsqlmin.dll!CQScanLightProfileNew::GetRow+0x19\r\nsqlmin.dll!CQScanCountStarNew::GetRowHelper+0x3d\r\nsqlmin.dll!CQScanStreamAggregateNew::GetCalculatedRow+0x21\r\nsqlmin.dll!CQueryScan::UncacheQuery+0x60f\r\nsqllang.dll!CXStmtQuery::SetupQueryScanAndExpression+0x47b\r\nsqllang.dll!CXStmtQuery::InitForExecute+0x2f\r\nsqllang.dll!CXStmtQuery::ErsqExecuteQuery+0x3d8\r\nsqllang.dll!CXStmtSelect::XretExecute+0x372\r\nsqllang.dll!CMsqlExecContext::ExecuteStmts&lt;1,1&gt;+0x8f2\r\nsqllang.dll!CMsqlExecContext::FExecute+0x936\r\n<\/pre>\n<p style=\"text-align: justify;\">Bottom line: all releases require trace flag 3656 to be enabled for symbol resolution, and SQL Server 2019 also requires 2592.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(The Curious Case of\u2026\u00a0used to be part of our bi-weekly\u00a0newsletter\u00a0but we decided to make it a\u00a0regular blog post instead so it can sometimes be more frequent. It covers something interesting one of us encountered when working with a client, doing some testing, or were asked in a random question from the community.) I haven&#8217;t had [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115],"tags":[],"class_list":["post-5160","post","type-post","status-publish","format-standard","hentry","category-the-curious-case-of"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"(The Curious Case of\u2026\u00a0used to be part of our bi-weekly\u00a0newsletter\u00a0but we decided to make it a\u00a0regular blog post instead so it can sometimes be more frequent. It covers something interesting one of us encountered when working with a client, doing some testing, or were asked in a random question from the community.) I haven&#8217;t had [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-19T18:57:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-28T21:39:36+00:00\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/\",\"name\":\"The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2020-10-19T18:57:51+00:00\",\"dateModified\":\"2021-09-28T21:39:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Curious Case of&#8230; resolving call stack symbols on SQL Server 2019\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/","og_locale":"en_US","og_type":"article","og_title":"The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal","og_description":"(The Curious Case of\u2026\u00a0used to be part of our bi-weekly\u00a0newsletter\u00a0but we decided to make it a\u00a0regular blog post instead so it can sometimes be more frequent. It covers something interesting one of us encountered when working with a client, doing some testing, or were asked in a random question from the community.) I haven&#8217;t had [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/","og_site_name":"Paul S. Randal","article_published_time":"2020-10-19T18:57:51+00:00","article_modified_time":"2021-09-28T21:39:36+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/","name":"The Curious Case of... resolving call stack symbols on SQL Server 2019 - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2020-10-19T18:57:51+00:00","dateModified":"2021-09-28T21:39:36+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/the-curious-case-of-resolving-call-stack-symbols-on-sql-server-2019\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"The Curious Case of&#8230; resolving call stack symbols on SQL Server 2019"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/5160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=5160"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/5160\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=5160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=5160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=5160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}