[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lyx-devel
Subject:    Re: [PATCH] 2.2rc1: Horizontal scrolling table floats
From:       Stephan Witt <st.witt () gmx ! net>
Date:       2016-04-28 13:59:06
Message-ID: A7F51096-8961-480C-8D00-E4245646BDF5 () gmx ! net
[Download RAW message or body]


> Am 27.04.2016 um 22:39 schrieb Richard Heck <rgheck@lyx.org>:
> 
> On 04/26/2016 05:15 PM, Stephan Witt wrote:
> > Am 26.04.2016 um 17:51 schrieb Richard Heck <rgheck@lyx.org>:
> > > On 04/26/2016 03:02 AM, Stephan Witt wrote:
> > > > Am 26.04.2016 um 06:10 schrieb Richard Heck <rgheck@lyx.org>:
> > > > > On 04/25/2016 11:56 PM, Stephan Witt wrote:
> > > > > > Am 25.04.2016 um 18:54 schrieb Scott Kostyshak <skostysh@lyx.org>:
> > > > > > > On Mon, Apr 25, 2016 at 11:09:56AM -0500, disinterested@gmail.com \
> > > > > > > wrote:
> > > > > > > > I did figure out a recipe: Open a blank document, then immediately \
> > > > > > > > open another blank document in a new *window*, open preferences, \
> > > > > > > > toggle cursor follows scrollbar, and hit apply. Reliable sigsev. As \
> > > > > > > > far as I can tell, it doesn't happen if you have open documents in \
> > > > > > > > tabs selected.
> > > > > > > Thanks for the instructions. I cannot reproduce on Ubuntu. Stephan do
> > > > > > > you see this on OS X?
> > > > > > Ok, I didn't got it right, sorry. After reading instructions again
> > > > > > I've realized I have to open a new document not only a new window.
> > > > > > 
> > > > > > Now I see the crash and this is the back trace:
> > > > > > 
> > > > > > Thread 1Queue : com.apple.main-thread (serial)
> > > > > > #0	0x00007fff8d1c3f06 in __pthread_kill ()
> > > > > > #1	0x00000001037f742d in pthread_kill ()
> > > > > > #2	0x00007fff87dec6e7 in abort ()
> > > > > > #3	0x000000010041619f in lyx::lyx_exit(int) at \
> > > > > > /Users/stephan/git/lyx/src/LyX.cpp:245 #4	0x00000001006524aa in \
> > > > > > boost::assertion_failed(char const*, char const*, char const*, long) at \
> > > > > > /Users/stephan/git/lyx/src/boost.cpp:47 #5	0x0000000100f82e4d in \
> > > > > > lyx::doAssertWithCallstack(bool) at \
> > > > > > /Users/stephan/git/lyx/src/support/lassert.cpp:44 #6	0x0000000100f83b42 \
> > > > > > in lyx::doAssert(char const*, char const*, long) at \
> > > > > > /Users/stephan/git/lyx/src/support/lassert.cpp:53 #7	0x0000000100443f1e \
> > > > > > in lyx::LyXAction::funcHasFlag(lyx::FuncCode, \
> > > > > > lyx::LyXAction::FuncAttribs) const at \
> > > > > > /Users/stephan/git/lyx/src/LyXAction.cpp:3826 #8	0x0000000100e161b7 in \
> > > > > > lyx::frontend::GuiView::getStatus(lyx::FuncRequest const&, \
> > > > > > lyx::FuncStatus&) at \
> > > > > > /Users/stephan/git/lyx/src/frontends/qt4/GuiView.cpp:1776
> > > > > This is very strange. It means we are are trying to look up the status of a \
> > > > > FuncCode that does not exist. 
> > > > > bool LyXAction::funcHasFlag(FuncCode action,
> > > > > LyXAction::FuncAttribs flag) const
> > > > > {
> > > > > InfoMap::const_iterator ici = lyx_info_map.find(action);
> > > > > 
> > > > > if (ici == lyx_info_map.end()) {
> > > > > LYXERR0("action: " << action << " is not known.");
> > > > > LASSERT(false, return false);
> > > > > }
> > > > > 
> > > > > return ici->second.attrib & flag;
> > > > > }
> > > > > 
> > > > > There should be an error message in the terminal that says which
> > > > > function that is.
> > > > The FuncCode is not visible. It's some random number.
> > > > 
> > > > Console output is:
> > > > LyXAction.cpp (3825): action:  is not known.
> > > > 
> > > > (lldb) print action
> > > > (lyx::FuncCode) $0 = 335544320
> > > > (lldb) up
> > > > (lldb) print cmd
> > > > (const lyx::FuncRequest) $1 = (action_ = LFUN_CHAR_BACKWARD, argument_ = L"   \
> > > > 翣\U0000fffd𧿣\U0000fffd\U0000fffdᒄ\x01$\0$\0", origin_ = 32, x_ = 32, \
> > > > y_ = 32, button_ = 32) (lldb) print cmd.action()
> > > > (lyx::FuncCode) $2 = LFUN_CHAR_BACKWARD
> > > > 
> > > > Really weird.
> > > Hmm. I wonder if it's an uninitalized variable somehow.
> > > 
> > > The stuff for lyx::FuncRequest is garbage, too. All the 32s make no sense.
> > > 
> > > Can you try the attached patch? It's just to provide some debugging
> > > info. I'm curious which toolbar this is coming from, or if it's even a
> > > real toolbar.
> > > 
> > > Richard
> > > 
> > > <t.txt>
> > It's more difficult to trigger the problem with the patch applied.
> > 
> > Finally I succeeded - but the problematic FuncCode wasn't UTF-8.
> > 
> > I've attached the tail of the log messages plus the wrong func.
> 
> This makes me even more confused. Many of the actions listed aren't on
> toolbars.
> 
> It obviously looks like some sort of memory corruption and is
> reminiscent of issues we had a while ago with certain static methods.
> Are we maybe trying to update both windows at once?
> 
> Richard

Now I got a crash without any window open with „New from Template…"
I got it after not using LyX for about a day and couldn't reproduce
after restarting it. Not very useful but another sign of memory
problems.

Stephan
  
* thread #1: tid = 0xada02f, 0x000000010336802b \
QtCore`QMetaObject::activate(QObject*, int, int, void**) + 59, queue = \
'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

Thread 1Queue : com.apple.main-thread (serial)
#0	0x000000010336802b in QMetaObject::activate(QObject*, int, int, void**) ()
#1	0x0000000100ae32aa in lyx::frontend::Action::triggered(QAction*) at \
/Users/stephan/git/lyx-build/cmake/2.3.0dev/src/frontends/qt4/moc_Action.cpp:136 \
#2	0x0000000100ae324c in lyx::frontend::Action::action() at \
/Users/stephan/git/lyx/src/frontends/qt4/Action.cpp:71 #3	0x0000000100ae3378 in \
lyx::frontend::Action::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) \
at /Users/stephan/git/lyx-build/cmake/2.3.0dev/src/frontends/qt4/moc_Action.cpp:80 \
#4	0x00000001033682dd in QMetaObject::activate(QObject*, int, int, void**) () \
#5	0x00000001024468df in QAction::activate(QAction::ActionEvent) () \
#6	0x00000001033682dd in QMetaObject::activate(QObject*, int, int, void**) () \
#7	0x00000001033613fc in QObject::event(QEvent*) () #8	0x000000010244fae6 in \
QApplicationPrivate::notify_helper(QObject*, QEvent*) () #9	0x0000000102452430 in \
QApplication::notify(QObject*, QEvent*) () #10	0x0000000100b3b37e in \
lyx::frontend::GuiApplication::notify(QObject*, QEvent*) at \
/Users/stephan/git/lyx/src/frontends/qt4/GuiApplication.cpp:2629 \
#11	0x0000000103335114 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () \
#12	0x0000000103335d34 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, \
QThreadData*) () #13	0x0000000106a99bae in \
QCocoaEventDispatcherPrivate::processPostedEvents() () #14	0x0000000106a9a481 in \
QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) () \
#15	0x00007fff87eca881 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ \
() #16	0x00007fff87ea9fbc in __CFRunLoopDoSources0 ()
#17	0x00007fff87ea94df in __CFRunLoopRun ()
#18	0x00007fff87ea8ed8 in CFRunLoopRunSpecific ()
#19	0x00007fff91913935 in RunCurrentEventLoopInMode ()
#20	0x00007fff91913677 in ReceiveNextEventCommon ()
#21	0x00007fff919135af in _BlockUntilNextEventMatchingListInModeWithFilter ()
#22	0x00007fff8a95cefa in _DPSNextEvent ()
#23	0x00007fff8a95c32a in -[NSApplication \
_nextEventMatchingEventMask:untilDate:inMode:dequeue:] () #24	0x00007fff8a950e84 in \
-[NSApplication run] () #25	0x0000000106a9937f in \
QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () \
#26	0x00000001033314c1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () \
#27	0x0000000103335785 in QCoreApplication::exec() () #28	0x0000000100b391a6 in \
lyx::frontend::GuiApplication::exec() at \
/Users/stephan/git/lyx/src/frontends/qt4/GuiApplication.cpp:2395 \
#29	0x0000000100417598 in lyx::LyX::exec(int&, char**) at \
/Users/stephan/git/lyx/src/LyX.cpp:359 #30	0x000000010069d846 in main at \
/Users/stephan/git/lyx/src/main.cpp:42 #31	0x00007fff99a575ad in start ()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic