Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-07 Thread Scott Kostyshak
On Sun, Apr 07, 2024 at 07:34:10PM GMT, Jean-Marc Lasgouttes wrote:
> Le 06/04/2024 à 22:14, Scott Kostyshak a écrit :
> > To reproduce:
> > 
> > 1. Open the attached example.
> > 2. Put the cursor just after the Note inset.
> > 3. Press  twice.
> > 
> > I get a SIGSEGV with the attached backtrace.
> > 
> > Can anyone else reproduce on current master?
> 
> This is now fixed in master at 89901123c579. A typical example of why the
> second part of biginset is more dangerous IMO: removing an update that was
> here "just in case" will expose cases where the update should have been
> requested because of a real need.

Thanks for the fix!

Scott


signature.asc
Description: PGP signature
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-07 Thread Jean-Marc Lasgouttes

Le 07/04/2024 à 20:45, Jürgen Spitzmüller a écrit :

Am Sonntag, dem 07.04.2024 um 19:34 +0200 schrieb Jean-Marc Lasgouttes:

This is now fixed in master at 89901123c579.


Thanks, this also fixes the other, minor issue (CT related) I reported.



Great, I was about to look for this one.

JMarc
--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-07 Thread Jürgen Spitzmüller
Am Sonntag, dem 07.04.2024 um 19:34 +0200 schrieb Jean-Marc Lasgouttes:
> This is now fixed in master at 89901123c579.

Thanks, this also fixes the other, minor issue (CT related) I reported.

-- 
Jürgen
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-07 Thread Jean-Marc Lasgouttes

Le 06/04/2024 à 22:14, Scott Kostyshak a écrit :

To reproduce:

1. Open the attached example.
2. Put the cursor just after the Note inset.
3. Press  twice.

I get a SIGSEGV with the attached backtrace.

Can anyone else reproduce on current master?


This is now fixed in master at 89901123c579. A typical example of why 
the second part of biginset is more dangerous IMO: removing an update 
that was here "just in case" will expose cases where the update should 
have been requested because of a real need.


I will cherry-pick this to biginset branch for later use.

JMarc

--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-07 Thread Jean-Marc Lasgouttes
Thanks for the bisect. I'll handle it.

JMarc 

Le 7 avril 2024 07:16:17 GMT+02:00, "Jürgen Spitzmüller"  a 
écrit :
>Am Sonntag, dem 07.04.2024 um 06:50 +0200 schrieb Jürgen Spitzmüller:
>> Just doing a bisect.
>
>73678dcde977802d5ff3ae07f0226484041fff48 is the first bad commit
>commit 73678dcde977802d5ff3ae07f0226484041fff48
>Author: Jean-Marc Lasgouttes 
>Date:   Mon Nov 27 15:57:09 2023 +0100
>
>Avoid full metrics computation when entering/leaving inset
>
>Annotate function LFUN_FINISHED_xxx to indicate that they do not
>require a full metrics computation.
>
>Remove an "optimization" that meant that when the cursor changed
>inset, a full metrics computation was requested.
>
>Part of bug #12297
>
>
>-- 
>Jürgen
>-- 
>lyx-devel mailing list
>lyx-devel@lists.lyx.org
>http://lists.lyx.org/mailman/listinfo/lyx-devel
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-06 Thread Jürgen Spitzmüller
Am Sonntag, dem 07.04.2024 um 06:50 +0200 schrieb Jürgen Spitzmüller:
> Just doing a bisect.

73678dcde977802d5ff3ae07f0226484041fff48 is the first bad commit
commit 73678dcde977802d5ff3ae07f0226484041fff48
Author: Jean-Marc Lasgouttes 
Date:   Mon Nov 27 15:57:09 2023 +0100

Avoid full metrics computation when entering/leaving inset

Annotate function LFUN_FINISHED_xxx to indicate that they do not
require a full metrics computation.

Remove an "optimization" that meant that when the cursor changed
inset, a full metrics computation was requested.

Part of bug #12297


-- 
Jürgen
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-06 Thread Jürgen Spitzmüller
Am Sonntag, dem 07.04.2024 um 00:38 -0400 schrieb Richard Kimberly
Heck:
> I am hoping this is not in 2.4.x and is due to the big inset merge.
> Can you check?

Not in 2.4.x.

Just doing a bisect. I also assured it is not connected with my recent
fix before backporting.

-- 
Jürgen
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


Re: SIGSEGV introduced recently on master when deleting an inset

2024-04-06 Thread Richard Kimberly Heck

On 4/6/24 16:14, Scott Kostyshak wrote:

To reproduce:

1. Open the attached example.
2. Put the cursor just after the Note inset.
3. Press  twice.

I get a SIGSEGV with the attached backtrace.

Can anyone else reproduce on current master?


I am hoping this is not in 2.4.x and is due to the big inset merge. Can 
you check?


Riki


--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel


SIGSEGV introduced recently on master when deleting an inset

2024-04-06 Thread Scott Kostyshak
To reproduce:

1. Open the attached example.
2. Put the cursor just after the Note inset.
3. Press  twice.

I get a SIGSEGV with the attached backtrace.

Can anyone else reproduce on current master?

Scott


example-sigsegv-on-delete-note-inset.23.lyx
Description: application/lyx
Thread 1 "lyx" received signal SIGSEGV, Segmentation fault.
0x00650074 in ?? ()
(gdb) bt
#0  0x00650074 in ?? ()
#1  0x55993cdb in lyx::RowPainter::paintInset (this=0x7fffb990, 
e=...) at /home/scott/lyxbuilds/master-master/repo/src/RowPainter.cpp:104
#2  0x55996b39 in lyx::RowPainter::paintOnlyInsets 
(this=0x7fffb990) at 
/home/scott/lyxbuilds/master-master/repo/src/RowPainter.cpp:550
#3  0x55a081a7 in lyx::TextMetrics::drawParagraph (this=0x57b8c3c8, 
pi=..., pit=1, x=0, y=88) at 
/home/scott/lyxbuilds/master-master/repo/src/TextMetrics.cpp:2070
#4  0x55a112be in lyx::TextMetrics::draw (this=0x57b8c3c8, pi=..., 
x=0, y=88) at /home/scott/lyxbuilds/master-master/repo/src/TextMetrics.cpp:2039
#5  0x557ce28b in lyx::BufferView::draw (this=0x576225b0, pain=..., 
paint_caret=false) at 
/home/scott/lyxbuilds/master-master/repo/src/BufferView.cpp:3631
#6  0x557cddf0 in lyx::BufferView::updatePosCache (this=0x576225b0) 
at /home/scott/lyxbuilds/master-master/repo/src/BufferView.cpp:3223
#7  0x557bb5c6 in lyx::BufferView::updateMetrics (this=0x576225b0, 
force=false) at /home/scott/lyxbuilds/master-master/repo/src/BufferView.cpp:3209
#8  0x557ba6ff in lyx::BufferView::processUpdateFlags 
(this=0x576225b0, flags=(lyx::Update::FitCursor | lyx::Update::ForceDraw))
at /home/scott/lyxbuilds/master-master/repo/src/BufferView.cpp:554
#9  0x55dabce4 in lyx::frontend::GuiApplication::updateCurrentView 
(this=0x5657fba0, cmd=..., dr=...)
at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:1607
#10 0x55dabb9d in lyx::frontend::GuiApplication::dispatch 
(this=0x5657fba0, cmd=...) at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:1584
#11 0x5592274a in lyx::dispatch (action=...) at 
/home/scott/lyxbuilds/master-master/repo/src/LyX.cpp:1489
#12 0x55db2da9 in lyx::frontend::GuiApplication::processFuncRequest 
(this=0x5657fba0, func=...)
at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2514
#13 0x55db4db1 in lyx::frontend::GuiApplication::processKeySym 
(this=0x5657fba0, keysym=..., state=0)
at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2508
#14 0x55e2dae7 in lyx::frontend::GuiWorkArea::processKeySym 
(this=0x57599730, key=..., mod=0) at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiWorkArea.cpp:402
#15 0x55e3708a in lyx::frontend::GuiWorkArea::qt_static_metacall 
(_o=0x57599730, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffcd80)
at 
/home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:127
#16 0x76af39dc in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x55e30209 in lyx::frontend::CompressorProxy::signal 
(this=0x5769ed00, _t1=..., _t2=0)
at 
/home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:371
#18 0x55e300fd in lyx::frontend::CompressorProxy::slot 
(this=0x5769ed00, sym=..., mod=0, isAutoRepeat=false)
at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiWorkArea.cpp:1021
#19 0x55e375ac in lyx::frontend::CompressorProxy::qt_static_metacall 
(_o=0x5769ed00, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x57b16e00)
at 
/home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:312
#20 0x76ae7de0 in QObject::event(QEvent*) () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x7776bf92 in QApplicationPrivate::notify_helper(QObject*, QEvent*) 
() from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x55db95bf in lyx::frontend::GuiApplication::notify 
(this=0x5657fba0, receiver=0x5769ed00, event=0x7fffe4004910)
at 
/home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:3001
#23 0x76abae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) 
() from /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x76abdea1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, 
int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x76b157b7 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x7671449d in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x7676f178 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x767131b0 in g_main_context_iteration () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x76b14e7a in 
QEventDispatcherGlib::processEvents(QFlags) () 
from