Skip to content

[CoreFoundation] CFBundle.GetAll better thread safe. - #7425

Merged
mandel-macaque merged 1 commit into
dotnet:masterfrom
mandel-macaque:attack-of-the-clones
Nov 13, 2019
Merged

[CoreFoundation] CFBundle.GetAll better thread safe.#7425
mandel-macaque merged 1 commit into
dotnet:masterfrom
mandel-macaque:attack-of-the-clones

Conversation

@mandel-macaque

Copy link
Copy Markdown
Contributor

The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
things while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940

The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940
@mandel-macaque mandel-macaque added the not-notes-worthy Ignore for release notes label Nov 13, 2019
@monojenkins

Copy link
Copy Markdown
Contributor

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

17 tests failed, 70 tests passed.

Failed tests

  • monotouch-test/iOS Unified 32-bits - simulator/Debug (LinkSdk): Failed
  • monotouch-test/watchOS 32-bits - simulator/Debug: Crashed
  • framework-test/watchOS 32-bits - simulator/Debug: Crashed
  • interdependent-binding-projects/watchOS 32-bits - simulator/Debug: Crashed
  • fsharp/watchOS 32-bits - simulator/Debug: Crashed
  • introspection/watchOS 32-bits - simulator/Debug: Crashed
  • dont link/watchOS 32-bits - simulator/Debug: Crashed
  • dont link/watchOS 32-bits - simulator/Release: Crashed
  • link all/watchOS 32-bits - simulator/Debug: Crashed
  • link all/watchOS 32-bits - simulator/Release: Crashed
  • link sdk/watchOS 32-bits - simulator/Debug: Crashed
  • link sdk/watchOS 32-bits - simulator/Release: Crashed
  • mono-native-compat/watchOS 32-bits - simulator/Debug: Crashed
  • mono-native-unified/watchOS 32-bits - simulator/Debug: Crashed
  • monotouch-test/watchOS 32-bits - simulator/Debug (LinkSdk): Crashed
  • monotouch-test/watchOS 32-bits - simulator/Debug (static registrar): Crashed
  • monotouch-test/watchOS 32-bits - simulator/Release (all optimizations): Crashed

@mandel-macaque

Copy link
Copy Markdown
Contributor Author

@mandel-macaque
mandel-macaque merged commit de14b5a into dotnet:master Nov 13, 2019
@mandel-macaque

Copy link
Copy Markdown
Contributor Author

@monojenkins backport xcode11.3

@mandel-macaque

Copy link
Copy Markdown
Contributor Author

@monojenkins backport d16-5

@monojenkins

Copy link
Copy Markdown
Contributor

@mandel-macaque backporting to xcode11.3 failed, the patch results in conflicts:

Applying: [CoreFoundation] CFBundle.GetAll better thread safe.
Using index info to reconstruct a base tree...
M	src/CoreFoundation/CFBundle.cs
Falling back to patching base and 3-way merge...
Auto-merging src/CoreFoundation/CFBundle.cs
CONFLICT (content): Merge conflict in src/CoreFoundation/CFBundle.cs
error: Failed to merge in the changes.
Patch failed at 0001 [CoreFoundation] CFBundle.GetAll better thread safe.

Please backport manually!

@mandel-macaque

Copy link
Copy Markdown
Contributor Author

@monojenkins backport xcode11.2

@mandel-macaque

Copy link
Copy Markdown
Contributor Author

@monojenkins backport d16-4

@monojenkins

Copy link
Copy Markdown
Contributor

@mandel-macaque backporting to xcode11.2 failed, the patch results in conflicts:

Applying: [CoreFoundation] CFBundle.GetAll better thread safe.
Using index info to reconstruct a base tree...
M	src/CoreFoundation/CFBundle.cs
Falling back to patching base and 3-way merge...
Auto-merging src/CoreFoundation/CFBundle.cs
CONFLICT (content): Merge conflict in src/CoreFoundation/CFBundle.cs
error: Failed to merge in the changes.
Patch failed at 0001 [CoreFoundation] CFBundle.GetAll better thread safe.

Please backport manually!

@monojenkins

Copy link
Copy Markdown
Contributor

@mandel-macaque backporting to d16-4 failed, the patch results in conflicts:

Applying: [CoreFoundation] CFBundle.GetAll better thread safe.
Using index info to reconstruct a base tree...
M	src/CoreFoundation/CFBundle.cs
Falling back to patching base and 3-way merge...
Auto-merging src/CoreFoundation/CFBundle.cs
CONFLICT (content): Merge conflict in src/CoreFoundation/CFBundle.cs
error: Failed to merge in the changes.
Patch failed at 0001 [CoreFoundation] CFBundle.GetAll better thread safe.

Please backport manually!

mandel-macaque added a commit to mandel-macaque/xamarin-macios that referenced this pull request Nov 13, 2019
The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

not-notes-worthy Ignore for release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants