') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [release/7.0] Make sure s_currentGenerationTable is safe for profiler attach by github-actions[bot] · Pull Request #78937 · dotnet/runtime · GitHub
Skip to content

[release/7.0] Make sure s_currentGenerationTable is safe for profiler attach - #78937

Merged
carlossanlop merged 1 commit into
release/7.0from
backport/pr-78841-to-release/7.0
Nov 29, 2022
Merged

[release/7.0] Make sure s_currentGenerationTable is safe for profiler attach#78937
carlossanlop merged 1 commit into
release/7.0from
backport/pr-78841-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Nov 28, 2022

Copy link
Copy Markdown
Contributor

Backport of #78841 to release/7.0

/cc @cshung

Customer Impact

Customer reported crash on profiler attach. If we hit this sequence of events, then the profiled .NET process would crash.

  • .NET Process Launched,
  • An ICorProfiler implementation that is interested in GC events is attached later that
  • An allocation happened.
  • The GC needs to create a new region, then
  • The process would crash.

Testing

The diagnostics team will run the profiler-specific tests on this commit.

Risk

This change does not impact the profiler launch scenario, and nothing can be worse than a crash in the profiler attach scenario.

IMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.

@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #78841 to release/7.0

/cc @cshung

Customer Impact

If we hit this sequence of events, then the profiled .NET process would crash.

  • .NET Process Launched,
  • An ICorProfiler implementation that is interested in GC events is attached later that
  • An allocation happened.
  • The GC needs to create a new region, then
  • The process would crash.

Testing

The diagnostics team will run the profiler-specific tests on this commit.

Risk

This change does not impact the profiler launch scenario, and nothing can be worse than a crash in the profiler attach scenario.

IMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.

Author:github-actions[bot]
Assignees:-
Labels:

area-Diagnostics-coreclr

Milestone:-

@tommcdontommcdon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thanks! This is an important diagnostics scenario and the fix looks low risk.

@jeffschwMSFTjeffschwMSFT left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved. we will take for consideration in 7.0.x

@jeffschwMSFTjeffschwMSFT added the Servicing-consider Issue for next servicing release review label Nov 29, 2022
@jeffschwMSFTjeffschwMSFT added this to the 7.0.x milestone Nov 29, 2022
@rbhandarbhanda added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Nov 29, 2022
@rbhandarbhanda modified the milestones: 7.0.x, 7.0.3Nov 29, 2022
@tommcdontommcdon modified the milestones: 7.0.3, 7.0.2, 7.0.xNov 29, 2022
@jeffschwMSFTjeffschwMSFT modified the milestones: 7.0.x, 7.0.2Nov 29, 2022
@carlossanlop

Copy link
Copy Markdown
Contributor

Branding has been done. Final chosen milestone is 7.0.2. Signed-off by area owners. Approved by Tactics. No OOB package authoring changes needed. CI is green.
Ready to merge. :shipit:

@carlossanlop
carlossanlop merged commit 44e68e8 into release/7.0Nov 29, 2022
@carlossanlop
carlossanlop deleted the backport/pr-78841-to-release/7.0 branch November 29, 2022 23:25
@ghostghost locked as resolved and limited conversation to collaborators Dec 30, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Diagnostics-coreclrServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@carlossanlop@jeffschwMSFT@tommcdon@cshung@rbhanda