-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[main] Update dependencies from dotnet/installer #5954
[main] Update dependencies from dotnet/installer #5954
Conversation
…210524.3 Microsoft.Dotnet.Sdk.Internal From Version 6.0.100-preview.5.21266.3 -> To Version 6.0.100-preview.6.21274.3 Dependency coherency updates Microsoft.NET.ILLink.Tasks,Microsoft.NETCore.App.Ref From Version 6.0.100-preview.5.21264.1 -> To Version 6.0.100-preview.5.21271.1 (parent: Microsoft.Dotnet.Sdk.Internal
`System.Net.Quic.dll` seems to now be included for the Xamarin.Forms sample.
The crash isn't shown on DevOps (ugh; why?), but can be found in the Artifacts > Test Results - APKs .NET - macOS > xa-test-results… link, in which
Looks like |
…210526.2 Microsoft.Dotnet.Sdk.Internal From Version 6.0.100-preview.5.21266.3 -> To Version 6.0.100-preview.6.21276.2 Dependency coherency updates Microsoft.NET.ILLink.Tasks,Microsoft.NETCore.App.Ref From Version 6.0.100-preview.5.21264.1 -> To Version 6.0.100-preview.6.21275.1 (parent: Microsoft.Dotnet.Sdk.Internal
Current state of affairs: https://discord.com/channels/732297728826277939/732297837953679412/847192391567802448 We have a For me on an arm64 Pixel 5 device, the crash is:
The Now that I have an 000000000014e978 <GlobalizationNative_GetSortHandle>:
14e978: d100c3ff sub sp, sp, #0x30
14e97c: a9014ff4 stp x20, x19, [sp,#16]
14e980: a9027bfd stp x29, x30, [sp,#32]
14e984: 910083fd add x29, sp, #0x20
14e988: aa0003f4 mov x20, x0
14e98c: 52806000 mov w0, #0x300 // #768
14e990: aa0103f3 mov x19, x1
14e994: 97fb6ebb bl 2a480 <malloc@plt>
14e998: f9000260 str x0, [x19]
14e99c: b4000360 cbz x0, 14ea08 <GlobalizationNative_GetSortHandle+0x90>
14e9a0: 52806002 mov w2, #0x300 // #768
14e9a4: 2a1f03e1 mov w1, wzr
14e9a8: 97fb738a bl 2b7d0 <memset@plt>
14e9ac: f0000e48 adrp x8, 319000 <_DYNAMIC+0x1878>
14e9b0: f941a508 ldr x8, [x8,#840]
14e9b4: 910033e1 add x1, sp, #0xc
14e9b8: aa1403e0 mov x0, x20
14e9bc: b9000fff str wzr, [sp,#12]
14e9c0: f9400108 ldr x8, [x8]
14e9c4: d63f0100 blr x8
14e9c8: f9400268 ldr x8, [x19]
14e9cc: f9000100 str x0, [x8]
14e9d0: b9400fe8 ldr w8, [sp,#12]
14e9d4: 7100051f cmp w8, #0x1
14e9d8: 540000ab b.lt 14e9ec <GlobalizationNative_GetSortHandle+0x74>
14e9dc: f9400260 ldr x0, [x19]
14e9e0: 97fb6e54 bl 2a330 <free@plt>
14e9e4: f900027f str xzr, [x19]
14e9e8: b9400fe8 ldr w8, [sp,#12]
14e9ec: 3101f11f cmn w8, #0x7c
14e9f0: 52800040 mov w0, #0x2 // #2
14e9f4: 54000120 b.eq 14ea18 <GlobalizationNative_GetSortHandle+0xa0>
14e9f8: 71003d1f cmp w8, #0xf
14e9fc: 540000e0 b.eq 14ea18 <GlobalizationNative_GetSortHandle+0xa0>
14ea00: 71001d1f cmp w8, #0x7
14ea04: 54000061 b.ne 14ea10 <GlobalizationNative_GetSortHandle+0x98>
14ea08: 52800060 mov w0, #0x3 // #3
14ea0c: 14000003 b 14ea18 <GlobalizationNative_GetSortHandle+0xa0>
14ea10: 7100011f cmp w8, #0x0
14ea14: 1a9fd7e0 cset w0, gt
14ea18: a9427bfd ldp x29, x30, [sp,#32]
14ea1c: a9414ff4 ldp x20, x19, [sp,#16]
14ea20: 9100c3ff add sp, sp, #0x30
14ea24: d65f03c0 ret The crash is at address 14e9c4: d63f0100 blr x8 We can see that Which leaves My guess is that it belongs to: https://github.com/dotnet/runtime/blob/044de838588006cf40b5656016b6ed26492c410f/src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c#L416 (*ppSortHandle)->collatorsPerOption[0] = ucol_open(lpLocaleName, &err);
Interop.Globalization.ResultCode resultCode = Interop.Globalization.GetSortHandle(sortName, out result); and we can't fathom how
Hypothesis: we think that the crash could be because
which in turn is called by which in turn is called by What's possibly interesting here is that that Right now, we can't easily tell what We thus have two plausible scenarios:
|
Related related: this isn't the first time we've seen a SIGSEGV related to The fix in commit 8cd0b47 was to explicitly preserve the |
Current dotnet/runtime diff: dotnet/runtime@6430375...5a26d12 |
@steveisok: I think i have a coherent explanation. (Entirely untested, static analysis only.)
I strongly believe that dotnet/runtime@bc27d49 is what introduced the crash, by "removing" implicit ICU initialization from the |
@marek-safar does this seem like the linker may be getting in the way here? We aren't seeing this in the runtime tests at all. |
…enter We can enable
Once enabled,
Thus, the question: is % adb logcat > log.txt &
% adb shell am instrument -w Mono.Android.NET_Tests/xamarin.android.runtimetests.NUnitInstrumentation
INSTRUMENTATION_RESULT: shortMsg=Process crashed.
INSTRUMENTATION_CODE: 0
% fg
^C
# to stop `adb logcat` collection.
% grep GetGlobalizationInvariantMode log.txt
# no match
% grep GlobalizationNative_LoadICU log.txt
# no match Before the crash, we do see:
|
Interesting finding.... If I run the tests w/
Maybe an important side note: my terminal does say the process crashed. However, logcat says no such thing.
/cc @eerhardt |
Context: https://github.com/dotnet/sdk/blob/1f544a59270cecb2947e50a01f7056c685b4e319/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets#L389-L392 This appears to cause a crash on startup for certain `Release` apps when the linker is enabled.
@steveisok wrote:
This is ignorable. The file mentioned by the Consequently, once a SIGSEGV is found, it's always found, even if it's no longer happening. You can fix this by deleting the mentioned file and re-running the tests. |
Context: #5954 (comment) Context: #5605 This partially reverts da536fc. In da536fc, we started seeing a crash around `$(InvariantGlobalization)`. This is no longer needed since dotnet/runtime#53453 fixed the issue. Bringing back the original optimization in #5605.
This pull request updates the following dependencies
Coherency Updates
The following updates ensure that dependencies with a CoherentParentDependency
attribute were produced in a build used as input to the parent dependency's build.
See Dependency Description Format
From https://github.com/dotnet/installer