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

v0.41.0 startup crash when nested under Sway #6401

Closed
jbeich opened this issue Jun 10, 2024 · 0 comments · Fixed by #6402
Closed

v0.41.0 startup crash when nested under Sway #6401

jbeich opened this issue Jun 10, 2024 · 0 comments · Fixed by #6402
Labels
bug Something isn't working

Comments

@jbeich
Copy link
Contributor

jbeich commented Jun 10, 2024

Bug or Regression?

Regression

System Info and Version

v0.41.0

Description

Regressed by #6268. 0xffffffffffffffff is MAP_FAILED. Doesn't affect starting from KMS console. Tested on Intel iGPU (Skylake GT2).

Process 89635 stopped
* thread #1, name = 'Hyprland', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0xffffffffffffffff)
    frame #0: 0x00000000011b360b Hyprland`CCompiledDMABUFFeedback::CCompiledDMABUFFeedback(this=0x00001f847ba5dad0, device=313, tranches_=size=1) at LinuxDMABUF.cpp:57:18
   54
   55       size_t i = 0;
   56       for (auto& [fmt, mod] : formatsVec) {
-> 57           arr[i++] = SDMABUFFeedbackTableEntry{
   58               .fmt      = fmt,
   59               .modifier = mod,
   60           };
(lldb) p tableLen
(size_t) 1008
(lldb) p formats
(std::set<std::pair<unsigned int, unsigned long> >) size=63 {
  [0] = (first = 538982482, second = 0)
  [1] = (first = 538982482, second = 72057594037927937)
  [2] = (first = 538982482, second = 72057594037927938)
  [3] = (first = 540422482, second = 0)
  [4] = (first = 540422482, second = 72057594037927937)
  [5] = (first = 540422482, second = 72057594037927938)
  [6] = (first = 808665665, second = 0)
  [7] = (first = 808665665, second = 72057594037927937)
  [8] = (first = 808665665, second = 72057594037927938)
  [9] = (first = 808669761, second = 0)
  [10] = (first = 808669761, second = 72057594037927937)
  [11] = (first = 808669761, second = 72057594037927938)
  [12] = (first = 808669784, second = 0)
  [13] = (first = 808669784, second = 72057594037927937)
  [14] = (first = 808669784, second = 72057594037927938)
  [15] = (first = 842093121, second = 0)
  [16] = (first = 842093121, second = 72057594037927937)
  [17] = (first = 842093121, second = 72057594037927938)
  [18] = (first = 842224199, second = 0)
  [19] = (first = 842224199, second = 72057594037927937)
  [20] = (first = 842224199, second = 72057594037927938)
  [21] = (first = 842224199, second = 72057594037927940)
  [22] = (first = 875708993, second = 0)
  [23] = (first = 875708993, second = 72057594037927937)
  [24] = (first = 875708993, second = 72057594037927938)
  [25] = (first = 875708993, second = 72057594037927940)
  [26] = (first = 875709016, second = 0)
  [27] = (first = 875709016, second = 72057594037927937)
  [28] = (first = 875709016, second = 72057594037927938)
  [29] = (first = 875709016, second = 72057594037927940)
  [30] = (first = 875713089, second = 0)
  [31] = (first = 875713089, second = 72057594037927937)
  [32] = (first = 875713089, second = 72057594037927938)
  [33] = (first = 875713089, second = 72057594037927940)
  [34] = (first = 875713112, second = 0)
  [35] = (first = 875713112, second = 72057594037927937)
  [36] = (first = 875713112, second = 72057594037927938)
  [37] = (first = 875713112, second = 72057594037927940)
  [38] = (first = 892424769, second = 0)
  [39] = (first = 892424769, second = 72057594037927937)
  [40] = (first = 892424769, second = 72057594037927938)
  [41] = (first = 909199186, second = 0)
  [42] = (first = 909199186, second = 72057594037927937)
  [43] = (first = 909199186, second = 72057594037927938)
  [44] = (first = 942948929, second = 0)
  [45] = (first = 942948929, second = 72057594037927937)
  [46] = (first = 942948929, second = 72057594037927938)
  [47] = (first = 942948929, second = 72057594037927940)
  [48] = (first = 942948952, second = 0)
  [49] = (first = 942948952, second = 72057594037927937)
  [50] = (first = 942948952, second = 72057594037927938)
  [51] = (first = 942948952, second = 72057594037927940)
  [52] = (first = 943215175, second = 0)
  [53] = (first = 943215175, second = 72057594037927937)
  [54] = (first = 943215175, second = 72057594037927938)
  [55] = (first = 1211384385, second = 0)
  [56] = (first = 1211384385, second = 72057594037927937)
  [57] = (first = 1211384385, second = 72057594037927938)
  [58] = (first = 1211384385, second = 72057594037927940)
  [59] = (first = 1211384408, second = 0)
  [60] = (first = 1211384408, second = 72057594037927937)
  [61] = (first = 1211384408, second = 72057594037927938)
  [62] = (first = 1211384408, second = 72057594037927940)
}
(lldb) bt
* thread #1, name = 'Hyprland', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0xffffffffffffffff)
  * frame #0: 0x00000000011b360b Hyprland`CCompiledDMABUFFeedback::CCompiledDMABUFFeedback(this=0x00001f847ba5dad0, device=313, tranches_=size=1) at LinuxDMABUF.cpp:57:18
    frame #1: 0x00000000011dd4da Hyprland`std::__1::__unique_if<CCompiledDMABUFFeedback>::__unique_single std::__1::make_unique[abi:fe180100]<CCompiledDMABUFFeedback, unsigned long&, std::__1::vector<SDMABufTranche, std::__1::allocator<SDMABufTranche>>&>(__args=0x00000008218e3a98, __args=size=1) at unique_ptr.h:597:30
    frame #2: 0x00000000011c9bf5 Hyprland`CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(this=0x00001f847bace9c8, self=0x00001f847bace9c0, info=0x00000008218e3f67, d=any @ 0x00000008218e3b18) const at LinuxDMABUF.cpp:400:27
    frame #3: 0x00000000011c99f7 Hyprland`decltype(std::declval<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0&>()(std::declval<void*>(), std::declval<SCallbackInfo&>(), std::declval<std::__1::any>())) std::__1::__invoke[abi:fe180100]<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0&, void*, SCallbackInfo&, std::__1::any>(__f=0x00001f847bace9c8, __args=0x00000008218e3c40, __args=0x00000008218e3f67, __args=0x00000008218e3df8) at invoke.h:344:25
    frame #4: 0x00000000011c995d Hyprland`void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:fe180100]<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0&, void*, SCallbackInfo&, std::__1::any>(__args=0x00001f847bace9c8, __args=0x00000008218e3c40, __args=0x00000008218e3f67, __args=0x00000008218e3df8) at invoke.h:419:5
    frame #5: 0x00000000011c9925 Hyprland`std::__1::__function::__alloc_func<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0, std::__1::allocator<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0>, void (void*, SCallbackInfo&, std::__1::any)>::operator()[abi:fe180100](this=0x00001f847bace9c8, __arg=0x00000008218e3c40, __arg=0x00000008218e3f67, __arg=0x00000008218e3df8) at function.h:169:12
    frame #6: 0x00000000011c8b91 Hyprland`std::__1::__function::__func<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0, std::__1::allocator<CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(wl_interface const*, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0>, void (void*, SCallbackInfo&, std::__1::any)>::operator()(this=0x00001f847bace9c0, __arg=0x00000008218e3c40, __arg=0x00000008218e3f67, __arg=0x00000008218e3df8) at function.h:311:10
    frame #7: 0x0000000000e33b5a Hyprland`std::__1::__function::__value_func<void (void*, SCallbackInfo&, std::__1::any)>::operator()[abi:fe180100](this=0x00001f847bace9c0, __args=0x00000008218e3c40, __args=0x00000008218e3f67, __args=0x00000008218e3df8) const at function.h:428:12
    frame #8: 0x0000000000e2d444 Hyprland`std::__1::function<void (void*, SCallbackInfo&, std::__1::any)>::operator()(this=0x00001f847bace9c0, __arg=0x00001f847bace9c0, __arg=0x00000008218e3f67, __arg=any @ 0x00000008218e3df8) const at function.h:981:10
    frame #9: 0x0000000000e2c2f3 Hyprland`CHookSystemManager::emit(this=0x00001f84794395a0, callbacks=0x00001f847952a7e8 size=1, info=0x00000008218e3f67, data=any @ 0x00000008218e4068) at HookSystemManager.cpp:41:17
    frame #10: 0x0000000000aeaf10 Hyprland`CCompositor::startCompositor(this=0x00001f8479480280) at Compositor.cpp:563:5
    frame #11: 0x0000000000e04fa2 Hyprland`main(argc=3, argv=0x00000008218e4380) at main.cpp:116:20
    frame #12: 0x0000000834528f1a libc.so.7`__libc_start1(argc=3, argv=0x00000008218e4380, env=0x00000008218e43a0, cleanup=<unavailable>, mainX=(Hyprland`main at main.cpp:22)) at libc_start1.c:157:7
    frame #13: 0x0000000000a5dc80 Hyprland`_start at crt1_s.S:83

How to reproduce

$ sway
$ :>/tmp/empty.conf
$ Hyprland -c /tmp/empty.conf

Crash reports, logs, images, videos

No response

@jbeich jbeich added the bug Something isn't working label Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant