jaelpark / chamferwm

A tiling X11 window manager with Vulkan compositor.
https://jaelpark.github.io/chamferwm-docs/
BSD 3-Clause "New" or "Revised" License
249 stars 11 forks source link

Crash on startup with default config #19

Closed jbeich closed 3 years ago

jbeich commented 4 years ago

Regressed by f43f8a550d07.

$ c++ --version
FreeBSD clang version 8.0.1 (tags/RELEASE_801/final 366581) (based on LLVM 8.0.1)
Target: x86_64-unknown-freebsd12.1
Thread model: posix
InstalledDir: /usr/bin

$ chamfer
[chamferwm 2020-05-21 01:05:25] Found config /usr/local/share/chamfer/config/config.py
No pulsectl module.
Process 99226 stopped
* thread #1, name = 'chamfer', stop reason = signal SIGSEGV: invalid address (fault address: 0xfffffffffffffffc)
    frame #0: 0x0000000000331b7f chamfer`Backend::X11Container::Name1(this=0x00000008013ae280) at backend.cpp:395:75
   392                          p += strlen(m->pname)+1;
   393                  }else *p++ = 0;
   394
-> 395          xcb_change_property(pbackend->pcon,XCB_PROP_MODE_REPLACE,pbackend->pscr->root,pbackend->ewmh._NET_DESKTOP_NAMES,XCB_ATOM_STRING,8,desktopNamesLen,pdesktopNames);
                                                                                         ^
   396
   397          delete []pdesktopNames;
   398  }
(lldb) bt
* thread #1, name = 'chamfer', stop reason = signal SIGSEGV: invalid address (fault address: 0xfffffffffffffffc)
  * frame #0: 0x0000000000331b7f chamfer`Backend::X11Container::Name1(this=0x00000008013ae280) at backend.cpp:395:75
    frame #1: 0x000000000033083d chamfer`Backend::X11Container::X11Container(this=0x00000008013ae280, _pbackend=0x0000000801cacd00) at backend.cpp:277:2
    frame #2: 0x00000000002df6af chamfer`Config::X11ContainerConfig::X11ContainerConfig(this=0x00000008013ae280, _pbackend=0x0000000801cacd00) at config.cpp:393:74
    frame #3: 0x000000000029a59d chamfer`DefaultBackend::DefaultBackend(this=0x0000000801cacd00, _pbackendInt=0x0000000801ab4ca0) at main.cpp:328:85
    frame #4: 0x000000000029817d chamfer`main(argc=1, pargv=0x00007fffffffeb88) at main.cpp:868:23
    frame #5: 0x000000000029510f chamfer`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1.c:76:7
(lldb) p *pbackend
(const Backend::X11Backend) $0 = {
  pcon = 0x0000000000000000
  pscr = 0xfffffffffffffffc
  psymbols = 0x0000000000000000
  window = 0
  lastTime = 0
  eventTimer = (tv_sec = 52474, tv_nsec = 361141766)
  pollTimer = (tv_sec = 0, tv_nsec = 0)
  keycodes = {
    std::__1::__vector_base<Backend::X11Backend::KeyBinding, std::__1::allocator<Backend::X11Backend::KeyBinding> > = {
      __begin_ = 0x0000000000000000
      __end_ = 0x0000000000000000
      __end_cap_ = {
        std::__1::__compressed_pair_elem<Backend::X11Backend::KeyBinding *, 0, false> = {
          __value_ = 0x0000000000000000
        }
      }
    }
  }
  ewmh = {
    connection = 0x0000000801cace88
    screens = 0x0000000000000000
    nb_screens = 0
    _NET_WM_CM_Sn = 0x0000000000000001
    _NET_SUPPORTED = 0
    _NET_CLIENT_LIST = 0
    _NET_CLIENT_LIST_STACKING = 22
    _NET_NUMBER_OF_DESKTOPS = 22
    _NET_DESKTOP_GEOMETRY = 0
    _NET_DESKTOP_VIEWPORT = 0
    _NET_CURRENT_DESKTOP = 120
    _NET_DESKTOP_NAMES = 230
    _NET_ACTIVE_WINDOW = 0
    _NET_WORKAREA = 121
    _NET_SUPPORTING_WM_CHECK = 160
    _NET_VIRTUAL_ROOTS = 1
    _NET_DESKTOP_LAYOUT = 0
    _NET_SHOWING_DESKTOP = 0
    _NET_CLOSE_WINDOW = 0
    _NET_MOVERESIZE_WINDOW = 0
    _NET_WM_MOVERESIZE = 0
    _NET_RESTACK_WINDOW = 0
    _NET_REQUEST_FRAME_EXTENTS = 0
    _NET_WM_NAME = 0
    _NET_WM_VISIBLE_NAME = 0
    _NET_WM_ICON_NAME = 0
    _NET_WM_VISIBLE_ICON_NAME = 0
    _NET_WM_DESKTOP = 0
    _NET_WM_WINDOW_TYPE = 0
    _NET_WM_STATE = 0
    _NET_WM_ALLOWED_ACTIONS = 0
    _NET_WM_STRUT = 0
    _NET_WM_STRUT_PARTIAL = 0
    _NET_WM_ICON_GEOMETRY = 0
    _NET_WM_ICON = 0
    _NET_WM_PID = 0
    _NET_WM_HANDLED_ICONS = 0
    _NET_WM_USER_TIME = 0
    _NET_WM_USER_TIME_WINDOW = 0
    _NET_FRAME_EXTENTS = 0
    _NET_WM_PING = 0
    _NET_WM_SYNC_REQUEST = 0
    _NET_WM_SYNC_REQUEST_COUNTER = 0
    _NET_WM_FULLSCREEN_MONITORS = 0
    _NET_WM_FULL_PLACEMENT = 0
    UTF8_STRING = 0
    WM_PROTOCOLS = 0
    MANAGER = 0
    _NET_WM_WINDOW_TYPE_DESKTOP = 0
    _NET_WM_WINDOW_TYPE_DOCK = 0
    _NET_WM_WINDOW_TYPE_TOOLBAR = 0
    _NET_WM_WINDOW_TYPE_MENU = 0
    _NET_WM_WINDOW_TYPE_UTILITY = 0
    _NET_WM_WINDOW_TYPE_SPLASH = 0
    _NET_WM_WINDOW_TYPE_DIALOG = 0
    _NET_WM_WINDOW_TYPE_DROPDOWN_MENU = 0
    _NET_WM_WINDOW_TYPE_POPUP_MENU = 0
    _NET_WM_WINDOW_TYPE_TOOLTIP = 0
    _NET_WM_WINDOW_TYPE_NOTIFICATION = 0
    _NET_WM_WINDOW_TYPE_COMBO = 0
    _NET_WM_WINDOW_TYPE_DND = 0
    _NET_WM_WINDOW_TYPE_NORMAL = 0
    _NET_WM_STATE_MODAL = 0
    _NET_WM_STATE_STICKY = 0
    _NET_WM_STATE_MAXIMIZED_VERT = 0
    _NET_WM_STATE_MAXIMIZED_HORZ = 0
    _NET_WM_STATE_SHADED = 0
    _NET_WM_STATE_SKIP_TASKBAR = 0
    _NET_WM_STATE_SKIP_PAGER = 0
    _NET_WM_STATE_HIDDEN = 0
    _NET_WM_STATE_FULLSCREEN = 3988824
    _NET_WM_STATE_ABOVE = 0
    _NET_WM_STATE_BELOW = 8202400
    _NET_WM_STATE_DEMANDS_ATTENTION = 8
    _NET_WM_ACTION_MOVE = 0
    _NET_WM_ACTION_RESIZE = 0
    _NET_WM_ACTION_MINIMIZE = 0
    _NET_WM_ACTION_SHADE = 0
    _NET_WM_ACTION_STICK = 0
    _NET_WM_ACTION_MAXIMIZE_HORZ = 0
    _NET_WM_ACTION_MAXIMIZE_VERT = 0
    _NET_WM_ACTION_FULLSCREEN = 0
    _NET_WM_ACTION_CHANGE_DESKTOP = 0
    _NET_WM_ACTION_CLOSE = 0
    _NET_WM_ACTION_ABOVE = 0
    _NET_WM_ACTION_BELOW = 0
  }
  ewmh_window = 31387920
  appendixQueue = {
    std::__1::__deque_base<std::__1::pair<const WManager::Client *, WManager::Client *>, std::__1::allocator<std::__1::pair<const WManager::Client *, WManager::Client *> > > = {
      __map_ = {
        __first_ = 0x0000000000000000
        __begin_ = 0x0000000000000000
        __end_ = 0x0000000000000000
        __end_cap_ = {
          std::__1::__compressed_pair_elem<std::__1::pair<const WManager::Client *, WManager::Client *> **, 0, false> = {
            __value_ = 0x0000000000000000
          }
        }
      }
      __start_ = 0
      __size_ = {
        std::__1::__compressed_pair_elem<unsigned long, 0, false> = (__value_ = 0)
      }
    }
  }
  atoms = ([0] = 0, [1] = 0, [2] = 0, [3] = 0)
  pcursorctx = 0x0000000000000000
  cursors = ([0] = 0)
}
jaelpark commented 4 years ago

Thanks for testing. I reverted the problematic commit for further testing.