i3: i3 crashes when starting a horizontal/vertical split container inside a tabbed window

I’m submitting a…

[x] Bug
[ ] Feature Request
[ ] Documentation Request
[ ] Other (Please describe in detail)

Current Behavior

When pressing $mod+H (starting a horizontal split container) inside a tabbed container, i3 crashes.

Expected Behavior

A horizontal split container should be created, allowing to arrange several windows side-by-side inside one tab.

Reproduction Instructions

Enter an empty workspace. Open two terminals (pressing $mod+Enter twice). Switch to tabbed mode ($mod+W). With one of the two terminals focused, press $mod+H.

Note: Also starting a vertical split container (pressing $mod+V) causes a crash.

Environment

Output of i3 --moreversion 2>&-:

Binary i3 version:  4.17.1 (2019-08-30) © 2009 Michael Stapelberg and contributors
Running i3 version: 4.17.1 (2019-08-30) (pid 6620)abort…)
Loaded i3 config: /home/mvoge/.config/i3/config (Last modified: Mi 08 Jan 2020 12:15:52 CET, 4071 seconds ago)

The i3 binary you just called: /usr/bin/i3
The i3 binary you are running: i3-with-/i3

Config file:

set $mod Mod4
floating_modifier $mod
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+comma exec rofi -show window
bindsym $mod+period exec rofi -show run
bindsym $mod+slash exec rofi -show ssh
bindsym $mod+d exec --no-startup-id "rofi -show drun -font \\"DejaVu 8\\" -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'"
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+J move left
bindsym $mod+Shift+K move down
bindsym $mod+Shift+L move up
bindsym $mod+Shift+colon move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
bindsym $mod+h split h
bindsym $mod+v split v
bindsym $mod+f fullscreen
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+1 workspace "1: inet"
bindsym $mod+2 workspace "2: R"
bindsym $mod+3 workspace "3: netlogo"
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+Shift+exclam move workspace "1: inet"
bindsym $mod+Shift+at move workspace "2: R"
bindsym $mod+Shift+numbersign move workspace "3: netlogo"
bindsym $mod+Shift+dollar move workspace 4
bindsym $mod+Shift+percent move workspace 5
bindsym $mod+Shift+asciicircum move workspace 6
bindsym $mod+Shift+ampersand move workspace 7
bindsym $mod+Shift+asterisk move workspace 8
bindsym $mod+Shift+parenleft move workspace 9
bindsym $mod+Shift+parenright move workspace 10
bindsym $mod+Shift+C reload
bindsym $mod+Shift+R restart
bindsym Control+space exec /home/mvoge/.config/i3/toggle_keyboard_layout.sh
bar {
  status_command i3status
  font pango:DejaVu Sans Mono 12
  colors {
    background #333333
    statusline #dddddd
  }
}
font pango:DejaVu Sans Mono 10
new_window normal 5
assign [instance="desktop_window"] "1: inet"
assign [class="Thunderbird"] "1: inet"
assign [class="com-leclercb-taskunifier-gui-main-Main"] 10
assign [class="Hamster-time-tracker"] 10
mode "resize" {
        bindsym Right       resize shrink left 10 px or 10 ppt
        bindsym Left        resize grow   left 10 px or 10 ppt
        bindsym Down        resize shrink up 10 px or 10 ppt
        bindsym Up          resize grow   up 10 px or 10 ppt
        bindsym Shift+Up    resize shrink down 10 px or 10 ppt
        bindsym Shift+Down  resize grow   down 10 px or 10 ppt
        bindsym Shift+Left  resize shrink right 10 px or 10 ppt
        bindsym Shift+Right resize grow   right 10 px or 10 ppt
        bindsym Return mode "default"
        bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bindsym $mod+Prior workspace prev
bindsym $mod+Next workspace next
bindsym Mod1+F4 kill
set $exit_mode Press: (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (d) shutdown
mode "$exit_mode" {
  bindsym l exec --no-startup-id ~/.config/i3/i3exit lock, mode "default"
  bindsym e exec --no-startup-id ~/.config/i3/i3exit logout, mode "default"
  bindsym s exec --no-startup-id ~/.config/i3/i3exit suspend, mode "default"
  bindsym h exec --no-startup-id ~/.config/i3/i3exit hibernate, mode "default"
  bindsym r exec --no-startup-id ~/.config/i3/i3exit reboot, mode "default"
  bindsym d exec --no-startup-id ~/.config/i3/i3exit shutdown, mode "default"
  bindsym Return mode "default"
  bindsym Escape mode "default"
}
bindsym $mod+Q mode "$exit_mode"
bindsym Control+Mod1+L exec i3lock -c 000000
bindsym $mod+C exec xfce4-terminal -e "R"
bindsym $mod+G exec xfce4-settings-manager
bindsym $mod+N exec thunar
bindsym $mod+P exec pavucontrol
exec xfce4-power-manager
exec thunar --daemon
exec --no-startup-id nm-applet &
exec firefox
exec --no-startup-id redshift-gtk &
exec udiskie
exec --no-startup-id picom
floating_minimum_size 75 x 50
floating_maximum_size -1 x -1
for_window [instance="desktop_window"] floating disable
for_window [window_role="pop-up"] floating enable
for_window [instance="gajim"] floating enable
for_window [instance="Pidgin"] floating enable
for_window [instance="skype"] floating enable
for_window [class="Tk"] floating enable
for_window [class=" "] floating enable
for_window [instance="file_progress"] floating enable
for_window [class="Audacious"] floating enable

Crash also happened with this reduced config file:

set $mod Mod4
floating_modifier $mod
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+comma exec rofi -show window
bindsym $mod+period exec rofi -show run
bindsym $mod+slash exec rofi -show ssh
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+J move left
bindsym $mod+Shift+K move down
bindsym $mod+Shift+L move up
bindsym $mod+Shift+colon move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
bindsym $mod+h split h
bindsym $mod+v split v
bindsym $mod+f fullscreen
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+Shift+exclam move workspace 1
bindsym $mod+Shift+at move workspace 2
bindsym $mod+Shift+numbersign move workspace 3
bindsym $mod+Shift+dollar move workspace 4
bindsym $mod+Shift+percent move workspace 5
bindsym $mod+Shift+asciicircum move workspace 6
bindsym $mod+Shift+ampersand move workspace 7
bindsym $mod+Shift+asterisk move workspace 8
bindsym $mod+Shift+parenleft move workspace 9
bindsym $mod+Shift+parenright move workspace 10
bindsym $mod+Shift+C reload
bindsym $mod+Shift+R restart
bindsym Control+space exec /home/mvoge/.config/i3/toggle_keyboard_layout.sh
bar {
  status_command i3status
}
mode "resize" {
        bindsym Right       resize shrink left 10 px or 10 ppt
        bindsym Left        resize grow   left 10 px or 10 ppt
        bindsym Down        resize shrink up 10 px or 10 ppt
        bindsym Up          resize grow   up 10 px or 10 ppt
        bindsym Shift+Up    resize shrink down 10 px or 10 ppt
        bindsym Shift+Down  resize grow   down 10 px or 10 ppt
        bindsym Shift+Left  resize shrink right 10 px or 10 ppt
        bindsym Shift+Right resize grow   right 10 px or 10 ppt
        bindsym Return mode "default"
        bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bindsym $mod+Prior workspace prev
bindsym $mod+Next workspace next
bindsym Mod1+F4 kill

Logfile:

Logfile URL: https://logs.i3wm.org/logs/5680176314712064.bz2

Explanation of log:

Restarted i3 at 13:38:00.

Opened two terminals at 13:38:10.

Switched to tabbed mode (pressing $mod+W) at 13:38:20.

Started new horizontal container in one of the two tabs (pressing $mod+H) at 13:38:30.

i3 crashed.

Distribution:

- Linux Distribution & Version: Manjaro 18.1.5 Juhraya
- Are you using a compositor (e.g., xcompmgr or compton): picom (same crash happens also without starting picom)

Related issues

Might be related to issue #3554.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (8 by maintainers)

Most upvoted comments

Yeah, that is what it sounds like to me as well, so I’ll close this again unless @orestisfl has another reason to disagree. 😃

@Airblader Thank you for your kind support!

I commented out the patch -p1 < "$srcdir/iconsupport.patch" (line 41) in the i3-wm-iconpatch PKGBUILD and ran makepkg and sudo pacman -U. Logout, login. No bug present.

I uncommented the patch (so back to default PKGBUILD), compiled again, reinstalled package with pacman, logged out, logged in. I see the icons in window title bars (which is the purpose of the patch) and the bug is back there: i3 crashes again, when starting horizontal container inside tabbing mode.

This clearly demonstrates that the bug is revealed by applying the patch, so it’s specific to i3-wm-iconpatch.

I doubt that the patch is at fault here. I see that the PKGBUILD doesn’t disable sanitizers (report that to them) so it is possible that the bug you are experiencing is revealed when using them. Can you build i3 from source and retry?