Menu

#1076 fluxbox-1.3.3 ArrangeWindowsVertical crashes

closed-fixed
None
5
2013-01-13
2013-01-09
Alzheimer
No

In my .fluxbox/keys I have this set up:

Super_R :ExecCommand urxvt
Shift Super_R :ArrangeWindowsVertical

So when I press the right windows key, it spawns urxvt. But Shift + Right Windows Key arranges windows.

When I press Super_R to get urxvt, and Shift Super_R to immediately arrange it, fluxbox hangs. Nothing works anymore, top shows fluxbox eating 100% CPU. I can still move the mouse pointer but not actually click on anything. I can reproduce the issue instantly by pressing Super_R and Shift Super_R a couple of times. Maybe a problem if ArrangeWindowsVertical runs at the same time a new window is created?

Attaching to the process with strace shows nothing whatsoever; attaching with gdb shows eventloop updating timers.

(gdb) bt full
#0 0x00000000004ceb23 in _M_lower_bound (__y=0x72d148 <(anonymous namespace)::s_timerlist+8>, __k=@0x7fff06a6e238: 0x1b55240, __x=0x1b0f1d0, this=<optimized out>)
at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/bits/stl_tree.h:1090
No locals.
#1 find (__k=@0x7fff06a6e238: 0x1b55240, this=0x72d140 <(anonymous namespace)::s_timerlist>) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/bits/stl_tree.h:1536
No locals.
#2 find (__x=@0x7fff06a6e238: 0x1b55240, this=0x72d140 <(anonymous namespace)::s_timerlist>) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/bits/stl_set.h:605
No locals.
#3 FbTk::Timer::updateTimers (fd=<optimized out>) at Timer.cc:212
t = 0x1b55240
timeout = <optimized out>
rfds = {fds_bits = {0 <repeats 16 times>}}
tm = {tv_sec = 0, tv_usec = 0}
it = <optimized out>
now = 3204058027
end_time = 28372168
#4 0x0000000000418ac8 in Fluxbox::eventLoop (this=0x1a3b8b0) at fluxbox.cc:533
disp = 0x1a3a0d0
#5 0x000000000040acc4 in main (argc=1, argv=0x7fff06a6e808) at main.cc:494
opts = {session_display = ":1", rc_path = "/home/andreas/.fluxbox", rc_file = "/home/andreas/.fluxbox/init", log_filename = "", xsync = false}
errbuf = 0x0
i18n = @0x72ce20: {m_locale = "en_US.UTF-8", m_multibyte = true, m_utf8_translate = false, m_catalog_fd = 0x1a17260}
outbuf = 0x0
log_file = <incomplete type>
exitcode = 1
fluxbox = {_M_ptr = 0x1a3b8b0}
restarting = <optimized out>
restart_argument = "\274"

Discussion

  • dimman

    dimman - 2013-01-09

    I'm getting this problem too. 100% cpu usage, mouse is movable nothing else. Although I'm getting it randomly it seems, I've bound CTRL + arrows to move windows, CTRL+SUPER+arrows to resize windows with MoveLeft/MoveRight and that also seems to be enough to crash it.

     
  • dimman

    dimman - 2013-01-09

    Had to downgrade to 1.3.2 where it works fine, impossible to use 1.3.3 atm :( This seems like a serious issue.

    (Running bleeding edge Arch Linux 64bit)

     
  • arclance

    arclance - 2013-01-09

    The high cpu use and only being able to move the mouse sounds exactly like what happens when you trigger the worst case of the "flickering titlebar tooltip gets pinned to the mouse cursor - ID: 3590078" bug.
    Maybe they have the same root cause?
    I wonder if one of the timing changes in 1.3.3 broke some code that depended on the old behavior?

     
  • Alzheimer

    Alzheimer - 2013-01-09

    I had the flickering toolbar as well, but not in relation with the hangs.

    I tried adding debugging messages and it seems the hang happens outside the ArrangeWindows. That's only what triggers the hang somehow. I'm still using the (apparently?) buggy version of fluxbox fine and stable, so far no crashes as long as I don't try to (frequently) arrange windows.

    Unfortuantely I can not make heads or tails of the code where the hang occurs, so someone more experienced will have to dive in and have a look

     
  • Mathias Gumz

    Mathias Gumz - 2013-01-10
    • assigned_to: nobody --> akir
    • status: open --> open-accepted
     
  • Mathias Gumz

    Mathias Gumz - 2013-01-10

    yep, it's the timer code. i changed that a bit in 2012-08 / 2012-09 with commits 541c8c407b7ba8dd10f85bb48bcb5900270b3f84 / 59d097bcead9b349e20a4ec193d76330e6899e53

    it's most likely something in that area, most likely the 2nd one. we will figure it out.

     
  • dimman

    dimman - 2013-01-10

    Great, thanks and keep up the good job with Fluxbox!

     
  • Alzheimer

    Alzheimer - 2013-01-10

    that diff appears to give me a segfault or something

    *** glibc detected *** /usr/bin/fluxbox: free(): invalid next size (normal): 0x00000000027e9d40 ***

     
  • Mathias Gumz

    Mathias Gumz - 2013-01-10

    compiler, os? did you make a clean build?

     
  • Alzheimer

    Alzheimer - 2013-01-10

    Gentoo ~amd64, gcc 4.6.3, tried both with and without Gentoo's own patches. Also compiled it manually (configure make make install to /usr/local/ after uninstalling fluxbox in /usr - and getting rid of it again with make uninstall - I'll have to verify whether this catched everything).

    The crash happens with and without the timer_fix.diff. It doesn't happen when I rename my ~/.fluxbox (so it makes a fresh one). I did make some configuration changes there yesterday so I assume something now triggers the crash with 1.3.3, whereas it works fine with 1.3.2.

    I'm in a bit of a pickle now as whatever was letting me reproduce the 100% CPU hang so far, does no longer happen at all with a fresh ~/.fluxbox (and just the hotkeys added). So right now I can't reproduce the hang anymore but instead get a segfault.

    I'll do some more testing now... sorry for all the confusion

     
  • Mathias Gumz

    Mathias Gumz - 2013-01-10

    give me a bt of the segfault and we'll figure it out. the fix should have addressed the 100%cpu thingy. the crash might be something different.

     
  • Alzheimer

    Alzheimer - 2013-01-10

    OK, using the MerelyKay style with this ~/.fluxbox/overlay http://bpaste.net/show/69289/ seems to be involved in causing the segfault http://bpaste.net/show/69297/ , at least it's not happening any more with that overlay removed. And I can reproduce the timer hangs again, wheee.

    I can reproduce the hang without your timer_fix everytime, with the timer_fix so far I didn't manage to.

    I'm possibly more or less not definitely rejecting the idea that in no way with any amount of uncertainty that I undeniably do or do not know whether your patch fixes the issue. But it seems probably to be the case if hanging is indeed what isn't happening.

     
  • Mathias Gumz

    Mathias Gumz - 2013-01-10

    the bt regarding the crash points into the rewritten render code. open a new bug with the backtrace and the style. and please attach the backtrace as a file, not a link to a site which might delete that backtrace any time.

    so, does this timer_fix.diff makes the ArrangeWindows crash?

     
  • Alzheimer

    Alzheimer - 2013-01-12

    ...thought I'd replied to this.

    timer_fix.diff appears to work (maybe someone can provide a second opinion)

    the other segfault seems unrelated, I created a new ticket

     
  • Mathias Gumz

    Mathias Gumz - 2013-01-13
    • status: open-accepted --> closed-fixed
     
  • Mathias Gumz

    Mathias Gumz - 2013-01-13

    fxied with 4d307dcd10af9d817ff5c05fc40ae7487564cb31

     

Log in to post a comment.