SlickEdit Community

Archived Beta Discussions => SlickEdit 201x Beta Discussions => SlickEdit 2014 v19 beta => Topic started by: jvert on September 26, 2014, 07:59:50 PM

Title: vsdiff problems
Post by: jvert on September 26, 2014, 07:59:50 PM
The vsdiff tool used to be able to handle two directories. "vsdiff ~/dir1 ~/dir2" and automatically diff the contents of those directories. Now it just complains the file doesn't exist.

Also I am seeing a lot of crashes in vsdiff. If you run it from within slickedit, the whole editor just disappears. If you run vsdiff from the command line it dies with a segmentation fault. What is the best way to diagnose these problems? There is a stack trace below, let me know if you want a core dump or something.

Ubuntu 14.04, x64, v19 Beta5

here is a stack trace I got from gdb:

Code: [Select]
(gdb) bt
#0  0x00007ff351048246 in QFont::operator=(QFont const&) () from /opt/slickedit/bin/libQtGui.so.4
#1  0x000000000078afc8 in seLineLayout::appendCell(QFont const&, QColor, QColor, char const*, int) ()
#2  0x0000000000820207 in crt2_layout_line(crt2_t*, int) ()
#3  0x00000000008252bb in crt2_refresh(crt2_t*, QPainter*, QRect*, bool, bool, bool) [clone .isra.80] ()
#4  0x00000000006fbce8 in refreshwindow(int, int*, QPainter*, QRect*, bool) [clone .isra.90] ()
#5  0x00000000006fcedf in se_refresh(int) ()
#6  0x00000000006fd004 in vsRefresh ()
#7  0x00000000012d9650 in DiffGauge::setCaption(cmStringT<char, 1, 30>) ()
#8  0x00000000012d16d8 in tokenizeFile(int, cmArray<diffToken>&, int, int*, DiffGauge*) ()
#9  0x00000000012d1c73 in _DiffTokens ()
#10 0x00000000012d3250 in _DiffBalanceFiles ()
#11 0x00000000005e551f in call_dllpc(int, int, namelist_t*) ()
#12 0x0000000000708e99 in pmethod_op() ()
#13 0x0000000000708e99 in pmethod_op() ()
#14 0x00000000005e7c15 in run_proc(int) ()
#15 0x0000000000736fd4 in call_key_common(filewindow_t*, int, int, unsigned int, unsigned int, bool, unsigned char) ()
#16 0x000000000073720f in vs_call_keya(filewindow_t*, int, int) ()
#17 0x000000000063a622 in vsCtlSlickCExecuteEvent ()
#18 0x000000000063ab8d in vsQTSlickCExecuteMousePressEvent ()
#19 0x00007ff350e07090 in QWidget::event(QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#20 0x00007ff351215fe6 in QFrame::event(QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#21 0x00007ff35132376b in QAbstractItemView::viewportEvent(QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#22 0x00007ff35136b285 in QTreeView::viewportEvent(QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#23 0x00007ff35084eb48 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /opt/slickedit/bin/libQtCore.so.4
#24 0x00007ff350db9f1f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#25 0x00007ff350dbf5f9 in QApplication::notify(QObject*, QEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#26 0x00007ff35084e9bc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/slickedit/bin/libQtCore.so.4
#27 0x00007ff350dbaf22 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /opt/slickedit/bin/libQtGui.so.4
#28 0x00007ff350e33438 in ?? () from /opt/slickedit/bin/libQtGui.so.4
#29 0x00007ff350e3222a in QApplication::x11ProcessEvent(_XEvent*) () from /opt/slickedit/bin/libQtGui.so.4
#30 0x00007ff350e59942 in ?? () from /opt/slickedit/bin/libQtGui.so.4
#31 0x00007ff34f1fce04 in g_main_dispatch (context=0x3d8f9a0) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3064
#32 g_main_context_dispatch (context=context@entry=0x3d8f9a0) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3663
#33 0x00007ff34f1fd048 in g_main_context_iterate (context=context@entry=0x3d8f9a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3734
#34 0x00007ff34f1fd0ec in g_main_context_iteration (context=0x3d8f9a0, may_block=1) at /build/buildd/glib2.0-2.40.0/./glib/gmain.c:3795
#35 0x00007ff35087c5df in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit/bin/libQtCore.so.4
#36 0x00007ff350e595de in ?? () from /opt/slickedit/bin/libQtGui.so.4
#37 0x00007ff35084d802 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit/bin/libQtCore.so.4
#38 0x00007ff35084da57 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit/bin/libQtCore.so.4
#39 0x0000000000678abb in gui_modal_wait(filewindow_t*) ()
#40 0x000000000068a2e4 in p_modal_wait_op() ()
#41 0x00000000005e7c15 in run_proc(int) ()
#42 0x00000000005d526e in run_proc_immediate2(m_s*, int, int, VSARGTYPE*, int, int) [clone .isra.14] ()
#43 0x00000000005d5f44 in run_proc_immediate(int, int, VSARGTYPE*, int, int) ()
#44 0x0000000000777470 in execute_command(VSLSTR*, int, int*, slickedit::SEString const&) ()
#45 0x00000000007051f2 in vsaexecutelstr(unsigned char*, int, VSLSTR*) ()
#46 0x000000000070680d in pexecute_op() ()
#47 0x00000000005e7c15 in run_proc(int) ()
#48 0x00000000006a72b5 in se_init(VSINIT*) ()
#49 0x00000000006832a7 in vsInit ()
#50 0x000000000051a0a6 in vmain(int, char**) ()
#51 0x000000000132f3f3 in xmain ()
#52 0x00000000004e7279 in main ()
Title: Re: vsdiff problems
Post by: Dan on September 26, 2014, 08:15:29 PM
Is it reproducible?  Is there a pair of files that you can reliably reproduce this with?  What platform is this on?
Title: Re: vsdiff problems
Post by: Dan on September 28, 2014, 08:11:56 PM
Is it reproducible?  Is there a pair of files that you can reliably reproduce this with?  What platform is this on?
Title: Re: vsdiff problems
Post by: Dan on September 29, 2014, 01:22:22 PM
I fixed the issue with filenames you mentioned.  I did get a crash too, so I'm checking into that now.
Title: Re: vsdiff problems
Post by: Dan on September 29, 2014, 05:23:50 PM
I fixed two separate crash bugs.  One had been lurking for years.  Hopefully one of them was the one you were seeing.  Thanks for the report!
Title: Re: vsdiff problems
Post by: jvert on September 30, 2014, 04:58:19 PM
I just tried on beta6 and I'm still seeing a crash. I've attached a tar.gz file which repros the problem for me.

'vsdiff ours theirs' gives an error "File theirs/ours does not exist"
'vsdiff ours/ theirs/' works and brings up the multi-file diff UI (this is fixed since B5)

Now click on 'setup.py' and vsdiff will crash with a segmentation error.

If I do a single-file diff with 'vsdiff ours/setup.py theirs/setup.py' then it works fine.

Ubuntu 14.04, x64.
Title: Re: vsdiff problems
Post by: Dan on September 30, 2014, 07:26:23 PM
Definitely something bad going on here.  Let me see what I can figure out.
Title: Re: vsdiff problems
Post by: redwards on October 01, 2014, 12:57:52 AM
I haven't been able to bring up vsdiff from the interface in Windows 64 for the beta cycle so far.  It just crashes and then causes the editor to crash as well.
Title: Re: vsdiff problems
Post by: Dan on October 01, 2014, 01:08:54 PM
I haven't been able to bring up vsdiff from the interface in Windows 64 for the beta cycle so far.  It just crashes and then causes the editor to crash as well.

How are you trying to bring it up?  Tools>File Difference?
Title: Re: vsdiff problems
Post by: Dan on October 01, 2014, 04:28:22 PM
I just tried on beta6 and I'm still seeing a crash. I've attached a tar.gz file which repros the problem for me.

'vsdiff ours theirs' gives an error "File theirs/ours does not exist"
'vsdiff ours/ theirs/' works and brings up the multi-file diff UI (this is fixed since B5)

Now click on 'setup.py' and vsdiff will crash with a segmentation error.

If I do a single-file diff with 'vsdiff ours/setup.py theirs/setup.py' then it works fine.

Ubuntu 14.04, x64.

Please take the attached diff.e and load it (Macro>Load Module).  Does this fix the problem?
Title: Re: vsdiff problems
Post by: redwards on October 01, 2014, 05:48:59 PM
How are you trying to bring it up?  Tools>File Difference?

Yes.  Or just clicking the icon.
Title: Re: vsdiff problems
Post by: Dan on October 01, 2014, 06:10:09 PM
How are you trying to bring it up?  Tools>File Difference?

Yes.  Or just clicking the icon.
What happens if you try a clean config?  (Run the editor as "<path>vs -sc testconfig")
Title: Re: vsdiff problems
Post by: jvert on October 01, 2014, 10:05:08 PM
I just tried on beta6 and I'm still seeing a crash. I've attached a tar.gz file which repros the problem for me.

'vsdiff ours theirs' gives an error "File theirs/ours does not exist"
'vsdiff ours/ theirs/' works and brings up the multi-file diff UI (this is fixed since B5)

Now click on 'setup.py' and vsdiff will crash with a segmentation error.

If I do a single-file diff with 'vsdiff ours/setup.py theirs/setup.py' then it works fine.

Ubuntu 14.04, x64.

Please take the attached diff.e and load it (Macro>Load Module).  Does this fix the problem?

Yes, that fixed it! Thanks, Dan.
Title: Re: vsdiff problems
Post by: redwards on October 02, 2014, 04:28:29 PM
Quote
What happens if you try a clean config?  (Run the editor as "<path>vs -sc testconfig")

Well, yes, that works.  Something botched in the default config.
Title: Re: vsdiff problems
Post by: Dan on October 02, 2014, 05:32:00 PM
Can you zip up that config and send it to me?
Title: Re: vsdiff problems
Post by: redwards on October 03, 2014, 04:12:49 PM
Can you zip up that config and send it to me?

I responded with the config, but not sure it made it.
Nonetheless, I reset my config and at least vsdiff is loading.


On another note, I see another problem that I don't know if you've handled, since it appears to be related to filenames.  Not sure if I should start a new topic or not.

The problem is that if I specify an FTP file, it crashes.  That is, a buffer that is an FTP connection (ftp://host/path).
Title: Re: vsdiff problems
Post by: Dan on October 03, 2014, 05:16:44 PM
Reproduced.  Not sure what is going on here.  Thanks for the report.
Title: Re: vsdiff problems
Post by: Dan on October 09, 2014, 06:21:08 PM
Fixed for the next drop.