Bug 62094 - CRASH when trying shortcuts in PRINTING dialog
Summary: CRASH when trying shortcuts in PRINTING dialog
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
4.0.1.2 release
Hardware: Other All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:4.1.0 target:4.0.3
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-10 09:36 UTC by Rainer Bielefeld Retired
Modified: 2013-03-28 08:18 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Bielefeld Retired 2013-03-10 09:36:54 UTC
My intention was to find out whether there might be "hidden" keyboard shortcuts in that dialog.

Steps how to reproduce with server installation of "LibO  4.0.1.2 release   -  German UI / German Locale  [Build ID: 84102822e3d61eb989ddd325abf1ac077904985)]"  {tinderbox: @6, pull time  2013-02-28 08:53(?)} on German WIN7 Home Premium (64bit) with newly created user profile ….\LibreOffice\4012\

1. Open new Writer document
2. Menu 'File -> Print_
   > Dialog appears
3. Click 'Umgekehrte Reihenfolge' (reverse order)
4. try typing a letter -> uparrow -> downarrow -> next letter typed,
   from time to time again Click 'Umgekehrte Reihenfolge'

I see a lots of hangs, LibO becomes unresponsive, has to be closed.

I am still working on a step by step instruction how to make the crash reproducible reliably.

I did not test other dialogs, languages, versions until now.
Comment 1 Michael Meeks 2013-03-26 22:10:53 UTC
Hi Caolan, an odd hang in the new layout / widget stuff around keyboard navigation inside RadioButton groups (?)

I believe the up/down arrow thing having clicked that check-box is the magic act - which moves focus into their group:

(gdb) bt
#0  0xb698f317 in backInGroup (rGroup=<optimized out>, aRevStart=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/dlgctrl.cxx:566
#1  (anonymous namespace)::nextInGroup (pSourceWindow=0x92c7470, bBackward=<optimized out>)
    at /data/opt/libreoffice/master/vcl/source/window/dlgctrl.cxx:617
#2  0xb698fa49 in Window::ImplDlgCtrl (this=0xbfffdf00, rKEvt=..., bKeyInput=1 '\001')
    at /data/opt/libreoffice/master/vcl/source/window/dlgctrl.cxx:925
#3  0xb69edeb5 in Window::Notify (this=0xbfffdf00, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5219
#4  0xb69c83bd in SystemWindow::Notify (this=0xbfffdf00, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/syswin.cxx:108
#5  0xb698ccba in Dialog::Notify (this=0xbfffdf00, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/dialog.cxx:604
#6  0xb69edf6c in Window::Notify (this=0xa41bce8, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#7  0xb69edf6c in Window::Notify (this=0x98d16e0, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#8  0xb69edf6c in Window::Notify (this=0xa577258, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#9  0xb67e81e8 in Control::Notify (this=0xa577258, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/control/ctrl.cxx:312
#10 0xb681f774 in Notify (rNEvt=..., this=0xa577258) at /data/opt/libreoffice/master/vcl/source/control/tabctrl.cxx:1592
#11 TabControl::Notify (this=0xa577258, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/control/tabctrl.cxx:1585
#12 0xb69edf6c in Window::Notify (this=0x8e9baa0, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#13 0xb69edf6c in Window::Notify (this=0x8f64f28, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#14 0xb69edf6c in Window::Notify (this=0x88e2b98, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#15 0xb69edf6c in Window::Notify (this=0x9df93d8, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#16 0xb69edf6c in Window::Notify (this=0xa44d090, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#17 0xb69edf6c in Window::Notify (this=0x8f4ebc8, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#18 0xb69edf6c in Window::Notify (this=0x8fbb1a8, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#19 0xb69edf6c in Window::Notify (this=0x92c7470, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:5239
#20 0xb67e81e8 in Control::Notify (this=0x92c7470, rNEvt=...) at /data/opt/libreoffice/master/vcl/source/control/ctrl.cxx:312
#21 0xb69e1882 in Window::KeyInput (this=0x92c7470, rKEvt=...) at /data/opt/libreoffice/master/vcl/source/window/window.cxx:4755
#22 0xb67df76a in RadioButton::KeyInput (this=0x92c7470, rKEvt=...) at /data/opt/libreoffice/master/vcl/source/control/button.cxx:2562
#23 0xb69f74c2 in ImplHandleKey (pWindow=0xbfffdf00, nSVEvent=4, nKeyCode=1025, nCharCode=0, nRepeat=0, bForward=1 '\001')
    at /data/opt/libreoffice/master/vcl/source/window/winproc.cxx:1099
#24 0xb69f9c37 in ImplWindowFrameProc (pWindow=0xbfffdf00, nEvent=5, pEvent=0xbfffd730)
    at /data/opt/libreoffice/master/vcl/source/window/winproc.cxx:2448
#25 0xb37ef50d in SalFrame::CallCallback (this=0x8f67ff0, nEvent=5, pEvent=0xbfffd730) at /data/opt/libreoffice/master/vcl/inc/salframe.hxx:244
#26 0xb37e9cdb in GtkSalFrame::doKeyCallback (this=0x8f67ff0, state=16, keyval=65362, hardware_keycode=111, time=385632262, aOrigCode=0, bDown=
    true, bSendRelease=false) at /data/opt/libreoffice/master/vcl/unx/gtk/window/gtkframe.cxx:439
#27 0xb37ec663 in GtkSalFrame::signalKey (pEvent=0x96f3590, frame=0x8f67ff0)
    at /data/opt/libreoffice/master/vcl/unx/gtk/window/gtkframe.cxx:3560
#28 0xb33c3a22 in _gtk_marshal_BOOLEAN__BOXED (closure=0x92eceb8, return_value=0xbfffd944, n_param_values=2, param_values=0xbfffd9b0, 
    invocation_hint=0xbfffd930, marshal_data=0x0) at gtkmarshalers.c:86
#29 0xb5bded54 in g_closure_invoke (closure=0x92eceb8, return_value=0xbfffd944, n_param_values=2, param_values=0xbfffd9b0, invocation_hint=
    0xbfffd930) at gclosure.c:777
#30 0xb5bf0983 in signal_emit_unlocked_R (node=0x8098a10, detail=0, instance=0x928b8c8, emission_return=0xbfffdb48, instance_and_params=
    0xbfffd9b0) at gsignal.c:3551
#31 0xb5bf88ad in g_signal_emit_valist (instance=0x928b8c8, signal_id=42, detail=0, var_args=

There is (effectively) an infinite loop doing a 'finish' in backInGroup for me at least, though initially / at first it would seem to hang but come out of this ...
Comment 2 Michael Meeks 2013-03-26 22:17:17 UTC
I guess the issue is not advancing the iterators during the loops here; working on a fix.
Comment 3 Michael Meeks 2013-03-27 16:49:56 UTC
Fixed in master, in the gerrit queue for review for -4-0.
Comment 4 Commit Notification 2013-03-27 16:50:27 UTC
Michael Meeks committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=23c22d3da5349ba1242edaeecfa0cba97a92ac71

fdo#62094 - fix infinite loop in radio button group iteration.



The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 5 Commit Notification 2013-03-28 08:18:28 UTC
Michael Meeks committed a patch related to this issue.
It has been pushed to "libreoffice-4-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=1107e4d7e03ecd3f36993d362b6b42e5806817d8&h=libreoffice-4-0

fdo#62094 - fix infinite loop in radio button group iteration.


It will be available in LibreOffice 4.0.3.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.