Skip to content
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

[release/5.0.1xx-preview3] Update dependencies from dotnet/runtime #7005

Conversation

dotnet-maestro[bot]
Copy link

@dotnet-maestro dotnet-maestro bot commented Apr 1, 2020

This pull request updates the following dependencies

From https://github.com/dotnet/runtime

  • Subscription: 8b812633-e7da-4a29-0735-08d7d0ed8d73
  • Build: 20200406.14
  • Date Produced: 4/6/2020 11:53 PM
  • Commit: 3cda53187710a77afb1a644b1729be9ff639a14d
  • Branch: refs/heads/release/5.0-preview3
  • Updates:
    • Microsoft.NETCore.Platforms -> 5.0.0-preview.3.20206.14
    • Microsoft.NETCore.DotNetHostResolver -> 5.0.0-preview.3.20206.14
    • Microsoft.NETCore.App.Host.win-x64 -> 5.0.0-preview.3.20206.14
    • Microsoft.NETCore.App.Internal -> 5.0.0-preview.3.20206.14
    • Microsoft.NETCore.App.Ref -> 5.0.0-preview.3.20206.14
    • Microsoft.NETCore.App.Runtime.win-x64 -> 5.0.0-preview.3.20206.14

…0331.15

- Microsoft.NETCore.Platforms - 5.0.0-preview.3.20181.15
- Microsoft.NETCore.DotNetHostResolver - 5.0.0-preview.3.20181.15
- Microsoft.NETCore.App.Host.win-x64 - 5.0.0-preview.3.20181.15
- Microsoft.NETCore.App.Internal - 5.0.0-preview.3.20181.15
- Microsoft.NETCore.App.Ref - 5.0.0-preview.3.20181.15
- Microsoft.NETCore.App.Runtime.win-x64 - 5.0.0-preview.3.20181.15
@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 1, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@mmitche
Copy link
Member

mmitche commented Apr 1, 2020

@dsplaisted @wli3 This looks to be the same issue as #6876

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 1, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

…0401.7

- Microsoft.NETCore.Platforms - 5.0.0-preview.3.20201.7
- Microsoft.NETCore.DotNetHostResolver - 5.0.0-preview.3.20201.7
- Microsoft.NETCore.App.Host.win-x64 - 5.0.0-preview.3.20201.7
- Microsoft.NETCore.App.Internal - 5.0.0-preview.3.20201.7
- Microsoft.NETCore.App.Ref - 5.0.0-preview.3.20201.7
- Microsoft.NETCore.App.Runtime.win-x64 - 5.0.0-preview.3.20201.7
…0402.4

- Microsoft.NETCore.Platforms - 5.0.0-preview.3.20202.4
- Microsoft.NETCore.DotNetHostResolver - 5.0.0-preview.3.20202.4
- Microsoft.NETCore.App.Host.win-x64 - 5.0.0-preview.3.20202.4
- Microsoft.NETCore.App.Internal - 5.0.0-preview.3.20202.4
- Microsoft.NETCore.App.Ref - 5.0.0-preview.3.20202.4
- Microsoft.NETCore.App.Runtime.win-x64 - 5.0.0-preview.3.20202.4
@mmitche
Copy link
Member

mmitche commented Apr 3, 2020

@jeffschwMSFT @janvorli Can you take a look at this? Your fix has made it to the PR but test processes still appear to be crashing

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

Sure, I'll take a look

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

It seems that it was running dotnet from the preview 3 at the time of the crash. Is the fix already in preview 3 too?

The paths in the crash stack trace contain 5.0.0-preview.3.20202.4:

2020-04-02T23:57:55.0963313Z ======= Backtrace: =========
2020-04-02T23:57:55.0964497Z /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f64a9b517e5]
2020-04-02T23:57:55.0966209Z /lib/x86_64-linux-gnu/libc.so.6(cfree+0x1a8)[0x7f64a9b5e698]
2020-04-02T23:57:55.0967319Z /home/vsts/work/1/s/.dotnet/dotnet(_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m+0x20)[0x40fd10]
2020-04-02T23:57:55.0969290Z /home/vsts/work/1/s/.dotnet/dotnet(_ZNSt10_HashtableISsSt4pairIKSsSt6vectorISsSaISsEEESaIS5_ENSt8__detail10_Select1stESt8equal_toISsESt4hashISsENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS7_15_Hash_node_baseEm+0x4e)[0x40fb9e]
2020-04-02T23:57:55.0971979Z /home/vsts/work/1/s/.dotnet/dotnet(_ZNSt10_HashtableISsSt4pairIKSsSt6vectorISsSaISsEEESaIS5_ENSt8__detail10_Select1stESt8equal_toISsESt4hashISsENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE+0x14f)[0x40f9ff]
2020-04-02T23:57:55.0974489Z /home/vsts/work/1/s/.dotnet/dotnet(_ZNSt10_HashtableISsSt4pairIKSsSt6vectorISsSaISsEEESaIS5_ENSt8__detail10_Select1stESt8equal_toISsESt4hashISsENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE9_M_rehashEmRKm+0x28)[0x40f688]
2020-04-02T23:57:55.0977001Z /home/vsts/work/1/s/.dotnet/dotnet(_ZNSt10_HashtableISsSt4pairIKSsSt6vectorISsSaISsEEESaIS5_ENSt8__detail10_Select1stESt8equal_toISsESt4hashISsENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS7_10_Hash_nodeIS5_Lb1EEE+0x92)[0x40f022]
2020-04-02T23:57:55.0980617Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(_ZNSt8__detail9_Map_baseISsSt4pairIKSsSt6vectorISsSaISsEEESaIS6_ENS_10_Select1stESt8equal_toISsESt4hashISsENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb1ELb0ELb1EEELb1EEixEOSs+0xf7)[0x7f64a9655a87]
2020-04-02T23:57:55.0983185Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x34b82)[0x7f64a9652b82]
2020-04-02T23:57:55.0984978Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x3553e)[0x7f64a965353e]
2020-04-02T23:57:55.0986742Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x39515)[0x7f64a9657515]
2020-04-02T23:57:55.0988727Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x1d893)[0x7f64a963b893]
2020-04-02T23:57:55.0990733Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x1c1bf)[0x7f64a963a1bf]
2020-04-02T23:57:55.0992526Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(+0x200e5)[0x7f64a963e0e5]
2020-04-02T23:57:55.0994335Z /home/vsts/work/1/s/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.3.20202.4/libhostpolicy.so(corehost_main+0xb7)[0x7f64a963de57]
2020-04-02T23:57:55.0996007Z /home/vsts/work/1/s/.dotnet/host/fxr/5.0.0-preview.3.20202.4/libhostfxr.so(+0x1862e)[0x7f64a988e62e]
2020-04-02T23:57:55.0997572Z /home/vsts/work/1/s/.dotnet/host/fxr/5.0.0-preview.3.20202.4/libhostfxr.so(+0x16d73)[0x7f64a988cd73]
2020-04-02T23:57:55.0999248Z /home/vsts/work/1/s/.dotnet/host/fxr/5.0.0-preview.3.20202.4/libhostfxr.so(hostfxr_main_startupinfo+0x94)[0x7f64a9889694]
2020-04-02T23:57:55.1000240Z /home/vsts/work/1/s/.dotnet/dotnet[0x40ac74]
2020-04-02T23:57:55.1000953Z /home/vsts/work/1/s/.dotnet/dotnet[0x40af05]
2020-04-02T23:57:55.1002601Z /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f64a9afa830]
2020-04-02T23:57:55.1003429Z /home/vsts/work/1/s/.dotnet/dotnet[0x408a54]

@mmitche
Copy link
Member

mmitche commented Apr 3, 2020

@janvorli Yep, that's this commit. I ported it over: dotnet/runtime@2b487f3

@mmitche
Copy link
Member

mmitche commented Apr 3, 2020

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

Ok, I'm going to try it locally.

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

Ah, so this is actually a different issue than the one I've fixed. Valgrind reports:

==28684==
==28684== Invalid free() / delete / delete[] / realloc()
==28684==    at 0x4C2F24B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28684==    by 0x40FD0F: __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::deallocate(std::__detail::_Hash_node_base**, unsigned long) (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x40FB9D: std::_Hashtable<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_deallocate_buckets(std::__detail::_Hash_node_base**, unsigned long) (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x40F9FE: std::_Hashtable<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x40F687: std::_Hashtable<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash(unsigned long, unsigned long const&) (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x40F021: std::_Hashtable<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, true>*) (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x6561A86: std::__detail::_Map_base<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[](std::string&&) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x655EB81: deps_json_t::load_self_contained(std::string const&, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::string const&) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x655F53D: deps_json_t::load(bool, std::string const&, std::unordered_map<std::string, std::vector<std::string, std::allocator<std::string> >, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const&) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x6563514: fx_definition_t::parse_deps() (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x6547892: deps_resolver_t::deps_resolver_t(arguments_t const&, std::vector<std::unique_ptr<fx_definition_t, std::default_delete<fx_definition_t> >, std::allocator<std::unique_ptr<fx_definition_t, std::default_delete<fx_definition_t> > > >&, std::unordered_map<std::string, std::vector<std::string, std::allocator<std::string> >, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > > const*, bool) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x65461BE: hostpolicy_context_t::initialize(hostpolicy_init_t&, arguments_t const&, bool) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)

==28684==  Address 0x5f4c770 is 496 bytes inside a block of size 520 alloc'd
==28684==    at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28684==    by 0x654E8C7: hostpolicy_init_t::init(host_interface_t*, hostpolicy_init_t*) (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x6549B7C: corehost_load (in /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so)
==28684==    by 0x62DE616: fx_muxer_t::handle_exec_host_command(std::string const&, host_startup_info_t const&, std::string const&, std::unordered_map<known_options, std::vector<std::string, std::allocator<std::string> >, known_options_hash, std::equal_to<known_options>, std::allocator<std::pair<known_options const, std::vector<std::string, std::allocator<std::string> > > > > const&, int, char const**, int, host_mode_t, char*, int, int*) (in /home/janvorli/issues/installer/.dotnet/host/fxr/5.0.0-preview.4.20202.18/libhostfxr.so)
==28684==    by 0x62DCD72: fx_muxer_t::execute(std::string, int, char const**, host_startup_info_t const&, char*, int, int*) (in /home/janvorli/issues/installer/.dotnet/host/fxr/5.0.0-preview.4.20202.18/libhostfxr.so)
==28684==    by 0x62D9693: hostfxr_main_startupinfo (in /home/janvorli/issues/installer/.dotnet/host/fxr/5.0.0-preview.4.20202.18/libhostfxr.so)
==28684==    by 0x40AC73: ??? (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x40AF04: ??? (in /home/janvorli/issues/installer/.dotnet/dotnet)
==28684==    by 0x5B1C82F: (below main) (libc-start.c:291)

I need to get debug symbols with line numbers to make more sense on where it happens. It looks like we allocate something and then store a pointer in the middle of that into a hash table which later tries to free that memory.

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@mmitche
Copy link
Member

mmitche commented Apr 3, 2020

/fyi @sfoslund Separate bug.

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

I have tried to figure out what's wrong and first fetched symbols for the libhostpolicy.so and libhostfxr.so. Then Valgrind has reported line numbers too. The 520 bytes allocated block it refers to is the fx_definition_t instance created at https://github.com/dotnet/runtime/blob/dad74cc683277f7919da79871626359d6aa812b1/src/installer/corehost/cli/hostpolicy/hostpolicy_init.cpp#L88 and the address that is passed to the free is at offset 496 in this data type. When running under lldb, I have found that there is the following field at that offset:
m_deps.m_rid_fallback_graph._M_h._M_single_bucket

The place in libhostpolicy.so where the call chain to the freeing of the wrong memory stems from is https://github.com/dotnet/runtime/blob/dad74cc683277f7919da79871626359d6aa812b1/src/installer/corehost/cli/deps_format.cpp#L376

It seems the problem can be caused by the fact that we are mixing dotnet host app from .NET Core 2.1 with libhostpolicy.so / libhostfxr.so from 5.0 when both has some standard C++ libraries code for hash table compiled in. As you can see we basically work with the same hash map from both libhostpolicy.so and dotnet. Each was compiled with a different clang version and maybe even different standard c++ library version. So I wouldn't be surprised if there were some compatibility issues.

Is the .dotnet/dotnet intentionally the version from .NET Core 2.1?

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@sfoslund
Copy link
Member

sfoslund commented Apr 3, 2020

That seems wrong... looping in @wli3 and @dsplaisted

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@dsplaisted
Copy link
Member

We install the .NET Core 2.1 runtime here: https://github.com/dotnet/installer/blob/master/eng/restore-toolset.sh#L19

I would guess that this is overwriting .dotnet/dotnet with an older version. We could try just not installing the 2.1 runtime (I'm not sure if it's still needed for dotnet-deb-tool as indicated in the comment), or we could backup the file before installing 2.1 and restore it afterwards.

@sfoslund Do you want to try this?

@wli3
Copy link

wli3 commented Apr 3, 2020

dotnet-deb-tool is still needed, but we could try to remove runtime to see

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@wli3
Copy link

wli3 commented Apr 3, 2020

But i don't think we are mixing anything. That script just drop 2.1 to dotnet folder, which is common user facing scenario -- having 5.0.100 sdk with 2.1 runtime

@wli3
Copy link

wli3 commented Apr 3, 2020

And different version of dotnet host and hostfxr are not compatible

The original design of the host (and why hostfxr is a separate component) is that the actual dotnet executable should never need to be serviced. All it does is locates the highest hostfxr and loads it. The original design was that you could use the 1.0.0 dotnet host executable with any future version of hostfxr.

From @eerhardt in dotnet/sdk#11145

@wli3
Copy link

wli3 commented Apr 3, 2020

@mmitche per fix install-script. I don't think it is an easy fix. Actually I can only find a hacky solution. More in dotnet/sdk#11145

@lpereira
Copy link

lpereira commented Apr 3, 2020

@janvorli Can you run with $LD_BIND_NOT set to any non-empty string? This should force ld.so to not patch the PLT and GOT. (Setting $LD_DEBUG in addition to that to something like reloc or symbols might help, too.)

@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@dotnet dotnet deleted a comment from dotnet-maestro bot Apr 3, 2020
@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

Can you run with $LD_BIND_NOT set to any non-empty string? This should force ld.so to not patch the PLT and GOT.

It didn't help

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@eerhardt
Copy link
Member

eerhardt commented Apr 3, 2020

A little more info on what I wrote above:

The original design of the host was for the dotnet.exe => hostfxr.dll to be forward and backward compatible, always. The reasoning was that the executable might be locked on a web server (because it is hosting some running service) and the existing running services can't be stopped just because you want to install a new .NET version on the machine.

dotnet.exe's only job was to locate the highest hostfxr.dll version, load and execute it.

hostfxr.dll => hostpolicy.dll was designed to be backwards compatible. If you installed version 8.1 of hostfxr.dll, it should be able to load and run any hostpolicy.dll version 0.0 - 8.1. The reasoning here is because of the above statement: the highest hostfxr.dll was the only one ever loaded. Since the highest one is the only one ever loaded, it needs to be able to activate ANY lower version of hostpolicy.

And, lastly, hostpolicy is 1:1 compatible with the coreclr it uses. It ships with the runtime, and only ever can load the same version of the runtime it ships with.

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

@lpereira This is from the LD_DEBUG log:
18426: binding file /home/janvorli/issues/installer/.dotnet/shared/Microsoft.NETCore.App/5.0.0-preview.4.20202.18/libhostpolicy.so [0] to /home/janvorli/issues/installer/.dotnet/dotnet [0]: normal symbol `_ZNSt10_HashtableISsSt4pairIKSsSt6vectorISsSaISsEEESaIS5_ENSt8__detail10_Select1stESt8equal_toISsESt4hashISsENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS7_10_Hash_nodeIS5_Lb1EEE'

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@janvorli
Copy link
Member

janvorli commented Apr 3, 2020

Btw, here are the end to end repro steps on Ubuntu 16.04 - I've removed the --docker option from the build command used in the CI so that I can easily debug it. (please replace the /home/janvorli/issues/installer with whatever directory you are using, I am not sure if all the absolute paths are needed, but I didn't want to spend time experimenting):

cd /home/janvorli/issues/installer
git fetch --force --tags --prune --progress --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/pull/7018/merge:refs/remotes/pull/7018/merge
git checkout --progress --force refs/remotes/pull/7018/merge
./build.sh --test --pack --publish --ci --noprettyprint --configuration Debug --architecture x64

You can break the build once you can see the crashes

Finally, this reproduces the crash:

/home/janvorli/issues/installer/.dotnet/dotnet /home/janvorli/issues/installer/.nuget/packages/testsdkclean/5.0.100-preview.3.20174.1/tools/netcoreapp5.0/any/Microsoft.NET.Clean.Tests.dll -noautoreporters -noRepoInference -dotnetPath /home/janvorli/issues/installer/artifacts/bin/redist/Debug/dotnet-with-previous-runtimes/dotnet -testExecutionDirectory /home/janvorli/issues/installer/artifacts/tmp/Debug/dotnetSdkTests -testConfigFile /home/janvorli/issues/installer/test/SdkTests/TestConfig.xml -xml /home/janvorli/issues/installer/artifacts/TestResults/Debug/Microsoft.NET.Clean.Tests.xml -html /home/janvorli/issues/installer/artifacts/TestResults/Debug/Microsoft.NET.Clean.Tests.html -testList SdkIntegrationTests

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 3, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: installer, installer (build Linux Build_LinuxPortable_Release_x64), installer (build Linux Build_Rhel_7_2_Release_x64), installer (build Linux Build_Debian_Stretch_Debug_x64), installer (build Linux Build_CentOS_7_1_Debug_x64), installer (build Linux Build_Fedora_29_Debug_x64), installer (build Linux Build_Ubuntu_18_04_Debug_x64), installer (build Linux Build_Ubuntu_16_04_Debug_x64), .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@sfoslund
Copy link
Member

sfoslund commented Apr 6, 2020

dotnet/runtime#34534 fixed insertions into master and has been ported to preview 3 with dotnet/runtime#34570 but it looks like we haven't been able to produce a build of the runtime since thursday so the change isn't flowing.

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 6, 2020

Auto-Merge Status

This pull request has not been merged because Maestro++ is waiting on the following merge policies.

  • Standard Merge Policies Unsuccessful checks: installer, installer (build Linux Build_LinuxPortable_Release_x64), installer (build Linux Build_Rhel_7_2_Release_x64), installer (build Linux Build_Debian_Stretch_Debug_x64), installer (build Linux Build_CentOS_7_1_Debug_x64), installer (build Linux Build_Fedora_29_Debug_x64), installer (build Linux Build_Ubuntu_18_04_Debug_x64), installer (build Linux Build_Ubuntu_16_04_Debug_x64), .NET Core core-sdk CI, .NET Core core-sdk CI (build Linux Build_LinuxPortable_Release_x64), .NET Core core-sdk CI (build Linux Build_Rhel_7_2_Release_x64), .NET Core core-sdk CI (build Linux Build_Debian_Stretch_Debug_x64), .NET Core core-sdk CI (build Linux Build_CentOS_7_1_Debug_x64), .NET Core core-sdk CI (build Linux Build_Fedora_29_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_18_04_Debug_x64), .NET Core core-sdk CI (build Linux Build_Ubuntu_16_04_Debug_x64)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

@mmitche
Copy link
Member

mmitche commented Apr 6, 2020

Currently building now...failed but will investigate. May just be AzDO flakiness

@dotnet-maestro
Copy link
Author

dotnet-maestro bot commented Apr 6, 2020

Auto-Merge Status

This pull request has been merged because the following merge policies have succeeded.

  • ✔️ Standard Merge Policies Succeeded - Successful checks: installer, installer (build Linux Build_LinuxPortable_Release_x64), installer (build Linux Build_Linux_musl_Debug_x64), installer (build Linux Build_Arm64_Debug), installer (build Darwin Build_Release), installer (build Linux Build_Arm_Debug), installer (build Linux Build_Rhel_7_2_Release_x64), installer (build Linux Build_Debian_Stretch_Debug_x64), installer (build Linux Build_CentOS_7_1_Debug_x64), installer (build Windows_NT Build_Release_arm64), installer (build Windows_NT Build_Release_arm), installer (build Linux Build_Fedora_29_Debug_x64), installer (build Windows_NT Build_Release_x64), installer (build Linux Build_Ubuntu_18_04_Debug_x64), installer (build Windows_NT Build_ES_Debug_x64), installer (build Linux Build_Ubuntu_16_04_Debug_x64), installer (build Windows_NT Build_Debug_x86)
  • ✔️ Standard Merge Policies Succeeded - No reviews have requested changes.

…0406.14

- Microsoft.NETCore.Platforms - 5.0.0-preview.3.20206.14
- Microsoft.NETCore.DotNetHostResolver - 5.0.0-preview.3.20206.14
- Microsoft.NETCore.App.Host.win-x64 - 5.0.0-preview.3.20206.14
- Microsoft.NETCore.App.Internal - 5.0.0-preview.3.20206.14
- Microsoft.NETCore.App.Ref - 5.0.0-preview.3.20206.14
- Microsoft.NETCore.App.Runtime.win-x64 - 5.0.0-preview.3.20206.14
@dotnet-maestro dotnet-maestro bot merged commit 147e102 into release/5.0.1xx-preview3 Apr 7, 2020
@dotnet-maestro dotnet-maestro bot deleted the darc-release/5.0.1xx-preview3-4940c93d-1fdb-4299-b5f1-115fe58f2fae branch April 7, 2020 01:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants