Recently I had some weird issues with the display manager LXDM to which I had switched over because it was said to avoid the awesome keyboard layout bug. The issue with LXDM (and SLiM as well) was that, when started, it showed nothing but a black screen and blocked for about a minute.

I had absolutely no clue what was going on until I started LXDM with strace. The output showed that the last thing LXDM was doing before blocking is trying to connect to a TCP socket over IPv6 to '::1', which is the IPv6 loopback address:

setsockopt(7, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(7, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
connect(7, {sa_family=AF_INET6, sin6_port=htons(6000), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)

Checking my ip6tables I found out that I had forgotten to allow loopback traffic in the INPUT chain, and as I had set the default policy to DROP the connection attempt had to run into the TCP timeout instead of being rejected right away.

Adding the appropriate rule fixed the issue. Without strace I'd never thought of checking my firewall setup...