I've started encountering SEGV issues with vsdiff. I'm trying to compare changes between a vendor's modified source against ours and in the past, comparison of the the two trees worked great (e.g., vsdiff dir1 dir2). However, this time, I can collapse some build subtrees and try to diff two apparent changes and it never launches the diff (just crashes with a notice to my console). I don't even have SE running while performing this.
Attached is a screen shot showing the header file I am trying to launch the diff. I can DM strace outputs (parent and children) separately.
Both files (and all directories leading to the files) are real, (no symlinks or hard links). Although the vendor supplied directory contains a hash, so the paths do exceed 128 characters.
Snippet from strace of parent vsdiff:
open("/tmp/vstemp.7899.0", O_RDWR|O_CREAT, 0664) = 3
readlink("/tmp", 0x7fff195ac9c0, 1024) = -1 EINVAL (Invalid argument)
readlink("/tmp/vstemp.7899.0", 0x7fff195ac9c0, 1024) = -1 EINVAL (Invalid argument)
fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=100}) = 0
ftruncate(3, 0) = 0
lseek(3, 0, SEEK_END) = 0
lseek(3, 0, SEEK_END) = 0
lseek(3, 0, SEEK_SET) = 0
write(3, "filespec:*\nexcludefilespec:\npath"..., 102) = 102
close(3) = 0
stat("/home/bjkurlex/slickedit/bin/vs", {st_mode=S_IFREG|0755, st_size=1599, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcbbb8f3a90) = 7900
wait4(7900, Segmentation fault (core dumped)
[{WIFEXITED(s) && WEXITSTATUS(s) == 139}], 0, NULL) = 7900
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7900, si_status=139, si_utime=0, si_stime=0} ---
exit_group(0) = ?
+++ exited with 0 +++
Snippet for strace of children (-f) of vsdiff
[pid 7935] brk(0x82ba000) = 0x82ba000
[pid 7935] brk(0x82db000) = 0x82db000
[pid 7935] brk(0x82fc000) = 0x82fc000
[pid 7935] poll([{fd=6, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=6, revents=POLLOUT}])
[pid 7935] writev(6, [{"\213\24?\0,\0\200\0\1\0\0\0\200\0\0\0\r\0\16\0\1\0\f\0\10\0\0\0\0\0\0\0"..., 16340}, {"\0\0S\315\367\342\214\1\0T\377\377\356\362\377\4\0\330\377~\0\1\\\2\32\377\360\6\0\0\0\0"..., 80}, {"", 0}], 3) = 16420
[pid 7935] poll([{fd=6, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=6, revents=POLLIN|POLLOUT}])
[pid 7935] recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\34\0\240V\234\236\200\0\22\1\0\0H\233\343\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 192
[pid 7935] writev(6, [{"\213\24\33\0+\0\200\0\1\0\0\0+\0\0\0\10\0\n\0\0\0\n\0\10\0\0\0\34\377\320\0"..., 16332}, {"\10\377\340\0\0\0\0\0\10\377\340\0\0\0\0\0\10\377\340\0\0\0\0\0\10\377\340v\362\337C\0"..., 112}, {"", 0}], 3) = 16444
[pid 7935] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xc6fe53a0} ---
[pid 7948] +++ killed by SIGSEGV (core dumped) +++
[pid 7947] +++ killed by SIGSEGV (core dumped) +++
[pid 7946] +++ killed by SIGSEGV (core dumped) +++
[pid 7945] +++ killed by SIGSEGV (core dumped) +++
[pid 7944] +++ killed by SIGSEGV (core dumped) +++
[pid 7943] +++ killed by SIGSEGV (core dumped) +++
[pid 7942] +++ killed by SIGSEGV (core dumped) +++
[pid 7941] +++ killed by SIGSEGV (core dumped) +++
[pid 7940] +++ killed by SIGSEGV (core dumped) +++
[pid 7939] +++ killed by SIGSEGV (core dumped) +++
[pid 7938] +++ killed by SIGSEGV (core dumped) +++
[pid 7935] +++ killed by SIGSEGV (core dumped) +++
[pid 7930] <... wait4 resumed> [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV && WCOREDUMP(s)}], 0, NULL) = 7935
[pid 7930] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_DUMPED, si_pid=7935, si_status=SIGSEGV, si_utime=1613, si_stime=381} ---
[pid 7930] rt_sigreturn() = 7935
[pid 7930] write(2, "Segmentation fault (core dumped)"..., 33Segmentation fault (core dumped)
) = 33
[pid 7930] read(10, "", 8192) = 0
[pid 7930] exit_group(139) = ?
[pid 7930] +++ exited with 139 +++
<... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 139}], 0, NULL) = 7930
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7930, si_status=139, si_utime=0, si_stime=0} ---
exit_group(0) = ?
+++ exited with 0 +++
Installation:
SlickEdit Pro 2015 (v20.0.1.3 64-bit)
Serial number: FE10297
Licensed number of users: Single user
License file: /home/bjkurlex/slickedit/bin/slickedit.lic
Build Date: March 23, 2016
Emulation: Vim
OS: Linux
OS Version: Ubuntu 14.04.4 LTS
Kernel Level: 3.19.0-51-generic
Build Version: #58~14.04.1-Ubuntu SMP Fri Feb 26 22:02:58 UTC 2016
Processor Architecture: x86_64
X Server Vendor: The Cygwin/X Project
Memory: 32% Load, 19465MB/59762MB Virtual
Shell Information: /home/bjkurlex/slickedit/bin/secsh -i
Screen Size: 1920 x 1200, 1680 x 1050, 1600 x 900
Project Type: (Other)
Language: .c (C/C++)
Encoding: Automatic
Installation Directory: /home/bjkurlex/slickedit/
Configuration Directory: /home/bjkurlex/.slickedit/20.0.1/
Hotfixes:
/home/bjkurlex/.slickedit/20.0.1/hotfixes/hotfix_se2001_6_cumulative.zip (Revision: 6)
/home/bjkurlex/.slickedit/20.0.1/hotfixes/hotfix_se2001_2_cumulative.zip (Revision: 2)
/home/bjkurlex/.slickedit/20.0.1/hotfixes/hotfix_se2001_7_cumulative.zip (Revision: 7)
/home/bjkurlex/.slickedit/20.0.1/hotfixes/hotfix_se2001_5_cumulative.zip (Revision: 5)