[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag - #83813

Merged
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0
Apr 5, 2023
Merged

[release/7.0] [MONO][MARSHAL] Initialize ilgen with a flag#83813
SamMonoRT merged 7 commits into
release/7.0-stagingfrom
backport/pr-77448-to-release/7.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Mar 23, 2023

Copy link
Copy Markdown
Contributor

Backport of #77448 to release/7.0

/cc @jandupej@naricc

Customer Impact

This resolves a race condition that can occur when ilgen callbacks are being lazily initialized. After the fix, the callbacks are installed only once before any user code is executed, removing the race. The issue has been observed by a customer #83804 on 7.0.

Testing

Manual testing.

Risk

Fairly low. No new features are added. Mono marshaller initialization is merely moved to a location where the said race condition cannot occur.

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.

@lambdageeklambdageek added this to the 7.0.x milestone Mar 23, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Mar 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@naricc
naricc self-requested a review March 23, 2023 15:02
@jandupej

Copy link
Copy Markdown
Contributor

Windows ICU failures are known #77485. Other CI failures are explained by issues linked above or are unrelated to this PR.

@carlossanlop

Copy link
Copy Markdown
Contributor

Approved by Tactics via email. Will merge once the branches open again.

@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 24, 2023
@carlossanlopcarlossanlop modified the milestones: 7.0.x, 7.0.6Mar 24, 2023
@omajid

Copy link
Copy Markdown
Member

Is this fix also applicable to 6.0? We use Mono on 6.0 for s390x platforms, would that benefit from a fix like this too?

cc @uweigand

@jandupej

Copy link
Copy Markdown
Contributor

@omajid If you are experiencing these race conditions with your setup, we can backport the fix to 6.0 also.

@omajid

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

@SamMonoRT

Copy link
Copy Markdown
Member

Thanks. I think I have seen them occasionally, but I don't have a great way to reproduce this specific issue on 6.0 (on s390x) as opposed to 7.0 (with ppc64le), where it's super easy for me to run into this. Should we be defensive and backport the change anyway, or would you prefer that I find a way to reproduce the problems with 6.0 specifically?

I would suggest to create a new issue with repro steps whenever you hit the issue using 6.0. We can validate with the fix and immediately start the backport process.

@carlossanlop

Copy link
Copy Markdown
Contributor

I'm retargeting this PR to the new release/7.0-staging branch, which is the one that we will use from now on for servicing fixes.

Repo maintainers will now be allowed to merge their own servicing PR as long as it meets the requirements:

  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The CI is green, or the failures are investigated as unrelated.
  • And if the PR touches an OOB package, the necessary OOB authoring changes are added.

The new process is described here: runtime/docs/project/library-servicing.md.

The infra team will be actively monitoring servicing PRs to ensure all requirements are met and to help with any issues.

Let me know if you have any questions.

@carlossanlop
carlossanlop changed the base branch from release/7.0 to release/7.0-stagingMarch 28, 2023 21:02
@carlossanlopcarlossanlop added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 30, 2023
@carlossanlop

Copy link
Copy Markdown
Contributor

Reminder: April 10th is the last day to merge backport PRs to ensure they get included in the May Release. PR owners are now in charge of merging their own PRs.

@jandupej

jandupej commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

@carlossanlop I'd like to confirm, do I need to do anything else before merging? I've rechecked the CI - the failures are unrelated and explained by the issues linked and we have approval. /cc @SamMonoRT

@carlossanlop

Copy link
Copy Markdown
Contributor
  • It is approved by Tactics (signaled by adding the Servicing-approved label).
  • It's signed-off by an area owner.
  • The failures are investigated as unrelated.

[N/A] No OOB package changes needed (not a libraries change, only native).

All good. Smash that squash&merge button, @jandupej.

@SamMonoRT
SamMonoRT merged commit 4a5620b into release/7.0-stagingApr 5, 2023
@SamMonoRT
SamMonoRT deleted the backport/pr-77448-to-release/7.0 branch April 5, 2023 19:54
@ghostghost locked as resolved and limited conversation to collaborators May 6, 2023
@leecowleecow modified the milestones: 7.0.6, 7.0.7Jun 1, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-VM-meta-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jandupej@carlossanlop@omajid@SamMonoRT@lambdageek@naricc@leecow