You are not logged in.

#1 2008-01-12 11:03:53

gunnihinn
Member
From: Torreón, Mexico
Registered: 2007-10-28
Posts: 81

Evilwm locking up

I have a problem with Evilwm; sometimes when I close a program (this has happened with Firefox, Pdgin and Vlc) it locks up. That is, I can't use any of the shortcut keys associated with Evilwm, and the shortcuts enabled via xbindkeys don't work either. I can use any programs open on the current workspace, I can switch to a different tty, and I can kill X via Control + Alt + Escape.

This doesn't happen often, but often enough to be seriously annoying. So far the only solution I've been able to work out is to kill the X server and restart the whole thing. This is not a bug isolated to Arch as the same thing used to happen on my old Ubuntu box. Anyone have any ideas here?

Offline

#2 2008-01-12 11:14:20

Gilneas
Member
From: Netherlands
Registered: 2006-10-22
Posts: 320

Re: Evilwm locking up

It sounds like EvilWM quit in some way. Could you confirm this from the console/xterm with htop or 'ps -A | grep evilwm'. If so, you could restart it with 'DISPLAY=:0.1 evilwm &' or whatever your display is. (or just 'evilwm &' of course if you happen to have an xterm in the open workspace)

Offline

#3 2008-01-12 12:01:09

gunnihinn
Member
From: Torreón, Mexico
Registered: 2007-10-28
Posts: 81

Re: Evilwm locking up

No luck. I'm able to reproduce the bug by closing all windows, starting Pidgin (via a xbindkeys shortcut) and closing it right away. When I run "ps -A | grep evilwm" it shows evilwm still running, which is kind of what I expected since conky still runs and the background image doesn't change.

But here's an interesting thing: If I open a terminal, or indeed any window, and reproduce the bug nothing works like usual. But if I move the mouse over the terminal window, so it focuses on it, everything works again.

I don't really know that much about how Evilwm handles things behind the curtain, but that could be a hint to the real problem.

Offline

#4 2008-01-12 17:23:35

Agent69
Member
Registered: 2006-05-26
Posts: 189

Re: Evilwm locking up

There was someone in the screenshot thread, perhaps last month, that had the same issue and actually switched window managers because of it.

I never had the problem with my EvilWM usage but I also always launched Firefox via Xterm or Urxvt, not a keyboard shortcut.

Offline

#5 2008-01-12 18:18:35

Roberth
Member
From: The Pale Blue Dot
Registered: 2007-01-12
Posts: 894

Re: Evilwm locking up

Maybe report it to the maintainer of evilwm?


Use the Source, Luke!

Offline

#6 2008-01-12 19:38:59

gunnihinn
Member
From: Torreón, Mexico
Registered: 2007-10-28
Posts: 81

Re: Evilwm locking up

I already sent him an e-mail about it, if he comes up with a solution I'll pass it on.

I actually also switched to Openbox for about a month because of this, but Evilwm's like heroin, you keep coming back for more. big_smile

Offline

#7 2008-01-13 09:42:58

gunnihinn
Member
From: Torreón, Mexico
Registered: 2007-10-28
Posts: 81

Re: Evilwm locking up

I've got some log messages from Evilwm if anyone's interested. They're made with the DEBUG and DEBUG + DXDEBUG flags in the Makefile (Evilwm error messages and Evilwm + X error messages) and show me starting Evilwm, opening a xterm window, reproducing the bug by opening and closing a Pidgin window, and then killing the X server.

With DEBUG only

setup_display() : XK_Num_Lock is (1<<0x04)
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): xterm
    window started as 724x436 +182+130
make_new_client() : new window 724x436+183+131, wincount=1
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): Buddy List
    window started as 332x717 +74+24
make_new_client() : new window 332x717+75+25, wincount=2
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
    remove_client() : setting WithdrawnState
    remove_client() : free(), window count now 1
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
    remove_client() : setting WithdrawnState
    remove_client() : free(), window count now 0
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"

      after 2747 requests (2747 known processed) with 6 events remaining.

With DEBUG and DXDEBUG (note: here we actually have two xterm windows and xclock open before opening Pidgin. I had to make xclock the "magic" process in xinitrc to get the error message pipe for Evilwm working)

setup_display() : XK_Num_Lock is (1<<0x04)
main:XQueryTree(); 6 windows
make_new_client(): xterm
XGetWindowAttributes()
    (IsViewable) 724x436+391+151, bw = 1
XGetWMNormalHints()
    PSize
    PMinSize: min_width = 13, min_height = 22
    PResizeInc: width_inc = 9, height_inc = 18
    PBaseSize: base_width = 4, base_height = 4
    PWinGravity: NorthWestGravity
    window started as 724x436 +391+151
make_new_client() : new window 724x436+392+152, wincount=1
make_new_client(): xclock
XGetWindowAttributes()
    (IsViewable) 164x164+1099+10, bw = 0
XGetWMNormalHints()
    PSize
    PWinGravity: NorthWestGravity
    window started as 164x164 +1099+10
make_new_client() : new window 164x164+1100+11, wincount=2
handle_unmap_event(): ignored (0 ignores remaining)
handle_unmap_event(): ignored (0 ignores remaining)
XConfigureWindow(dpy, window(100001c), c, &wc);
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): xterm
XGetWindowAttributes()
    (IsUnmapped) 724x436+0+0, bw = 1
XGetWMNormalHints()
    PSize
    PMinSize: min_width = 13, min_height = 22
    PResizeInc: width_inc = 9, height_inc = 18
    PBaseSize: base_width = 4, base_height = 4
    PWinGravity: NorthWestGravity
    window started as 724x436 +266+282
make_new_client() : new window 724x436+267+283, wincount=3
XConfigureWindow(dpy, window(160002a), c, &wc);
XConfigureWindow(dpy, window(160006c), f, &wc);
XConfigureWindow(dpy, window(160006c), 40, &wc);
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): Buddy List
XGetWindowAttributes()
    (IsUnmapped) 332x717+0+0, bw = 0
XGetWMNormalHints()
    PPosition 
    PWinGravity: NorthWestGravity
    window started as 332x717 +127+20
make_new_client() : new window 332x717+128+21, wincount=4
XConfigureWindow(dpy, parent(e0000f), 40, &wc);
XConfigureWindow(dpy, parent(e0000f), 40, &wc);
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
    remove_client() : setting WithdrawnState
    remove_client() : free(), window count now 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"

      after 669 requests (669 known processed) with 8 events remaining.

xterm:  fatal IO error 11 (Resource temporarily unavailable) or KillClient on X server ":0.0"

I've sent the maker of Evilwm both files, but have yet to get any responce.

Last edited by gunnihinn (2008-01-13 09:43:56)

Offline

#8 2008-01-13 11:49:17

gunnihinn
Member
From: Torreón, Mexico
Registered: 2007-10-28
Posts: 81

Re: Evilwm locking up

I think I figured this out. The problem seems to be that the window focus somehow gets lost when one closes certain programs.

I took a look at the Evilwm source, and in the file client.c there is a function called "remove_client" (line 124 in version 1.0.0 of Evilwm). I added

XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);

to the end of that (around line 178) and ran "make", "make install". It seems to have fixed the problem, at least I can't reproduce the bug anymore with Firefox, Vlc or Pidgin. big_smile

Offline

#9 2008-01-14 19:17:39

Agent69
Member
Registered: 2006-05-26
Posts: 189

Re: Evilwm locking up

Wow. You're the man Gunnihinn!

Offline

#10 2008-01-14 21:21:55

axion419
Member
Registered: 2007-04-12
Posts: 185

Re: Evilwm locking up

had this same problem for ever, thanks!

Offline

Board footer

Powered by FluxBB