Open Bug 1795820 Opened 3 years ago Updated 3 years ago

dump_sys crashes on crosscompile with "terminating with uncaught exception of type std::out_of_range vector"

Categories

(SeaMonkey :: Build Config, defect)

x86_64
Unspecified
defect

Tracking

(Not tracked)

People

(Reporter: ewong, Unassigned)

Details

Currently MacOSX crosscompile buildsymbols seems to be missing the generation of the XUL symbols.

Even after a 'successful' generation of symbols, the XUL symbol dSYM tarball and .sym file were missing in the <objdir>/dist/crashreporter-symbols.

After much trial and error, it seems as if the symbolstore.py seems to be 'eating' up the
terminating error.

Particularly: https://hg.mozilla.org/mozilla-central/file/tip/toolkit/crashreporter/tools/symbolstore.py#l580

proc = subprocess.Popen(
cmd,
universal_newlines=True,
stdout=subprocess.PIPE,
)

As the <objdir>/dist/host/bin/dump_sys was built using the $CROSSCOMPILE$/macos/clang/lib path, I tried the following manual run:

$ LD_LIBRARY_PATH=/data/crosscompile/macos/clang/lib /data/tmp/build/build/macosx/llvm-dsymutil --arch=x86_64 /data/tmp/obj-mac/toolkit/library/XUL

$ LD_LIBRARY_PATH=/data/crosscompile/macos/clang/lib /data/tmp/obj-mac/dist/host/bin/dump_syms -g /data/tmp/obj-mac/toolkit/library/XUL.dSYM /data/tmp/obj-mac/toolkit/library/XUL
terminating with uncaught exception of type std::out_of_range: vector
Aborted

At this point, I'm somewhat stumped as to what the issue is. Since dump_syms worked on the other files [certutil et. al], I'm guessing that something is funky with the
creating of objdir/toolkit/library/XUL.

Filing this bug for reference.

Here's an strace, fwiw:

execve("/data/tmp/obj-mac/dist/host/bin/dump_syms", ["/data/tmp/obj-mac/dist/host/bin/"..., "-a", "x86_64", "-g", "/data/tmp/obj-mac/toolkit/librar"..., "/data/tmp/obj-mac/toolkit/librar"...], [/* 29 vars /]) = 0
brk(NULL) = 0x1efb000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d22d000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/tls/x86_64/libc++.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/tls/x86_64", 0x7ffede3c4240) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/tls/libc++.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/tls", 0x7ffede3c4240) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/x86_64/libc++.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/x86_64", 0x7ffede3c4240) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/libc++.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\252\3\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1021624, ...}) = 0
mmap(NULL, 820200, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208d164000
mprotect(0x7f208d19e000, 548864, PROT_NONE) = 0
mmap(0x7f208d19e000, 425984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a000) = 0x7f208d19e000
mmap(0x7f208d206000, 118784, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa2000) = 0x7f208d206000
mmap(0x7f208d224000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xbf000) = 0x7f208d224000
mmap(0x7f208d22a000, 9192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f208d22a000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/libc++abi.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\362\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=309688, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d163000
mmap(NULL, 242744, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208d127000
mmap(0x7f208d136000, 126976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f208d136000
mmap(0x7f208d155000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2e000) = 0x7f208d155000
mmap(0x7f208d15e000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x36000) = 0x7f208d15e000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=92584, ...}) = 0
mmap(NULL, 92584, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f208d110000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20S\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1137024, ...}) = 0
mmap(NULL, 3150120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208cd0b000
mprotect(0x7f208ce0c000, 2093056, PROT_NONE) = 0
mmap(0x7f208d00b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7f208d00b000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3202\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=756136, ...}) = 0
mmap(NULL, 99376, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208d0f7000
mmap(0x7f208d0fa000, 69632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f208d0fa000
mmap(0x7f208d10b000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f208d10b000
mmap(0x7f208d10e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f208d10e000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@m\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=142232, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d0f6000
mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208caef000
mprotect(0x7f208cb06000, 2093056, PROT_NONE) = 0
mmap(0x7f208cd05000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f208cd05000
mmap(0x7f208cd07000, 13448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f208cd07000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20&\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2156160, ...}) = 0
mmap(NULL, 3985888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208c721000
mprotect(0x7f208c8e4000, 2097152, PROT_NONE) = 0
mmap(0x7f208cae4000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c3000) = 0x7f208cae4000
mmap(0x7f208caea000, 16864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f208caea000
close(3) = 0
open("/data/crosscompile/macos/clang/lib/../lib/tls/x86_64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/../lib/tls/x86_64", 0x7ffede3c3fe0) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/../lib/tls/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/../lib/tls", 0x7ffede3c3fe0) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/../lib/x86_64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/../lib/x86_64", 0x7ffede3c3fe0) = -1 ENOENT (No such file or directory)
open("/data/crosscompile/macos/clang/lib/../lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/data/crosscompile/macos/clang/lib/../lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
open("/data/crosscompile/macos/clang/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=43776, ...}) = 0
mmap(NULL, 2128920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f208c519000
mprotect(0x7f208c520000, 2093056, PROT_NONE) = 0
mmap(0x7f208c71f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f208c71f000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d0f5000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d0f4000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d0f2000
arch_prctl(ARCH_SET_FS, 0x7f208d0f2740) = 0
mprotect(0x7f208cae4000, 16384, PROT_READ) = 0
mprotect(0x7f208cd05000, 4096, PROT_READ) = 0
mprotect(0x7f208c71f000, 4096, PROT_READ) = 0
mprotect(0x7f208d10e000, 4096, PROT_READ) = 0
mprotect(0x7f208d00b000, 4096, PROT_READ) = 0
mprotect(0x7f208d15e000, 16384, PROT_READ) = 0
mprotect(0x7f208d224000, 20480, PROT_READ) = 0
mprotect(0x63f000, 4096, PROT_READ) = 0
mprotect(0x7f208d22e000, 4096, PROT_READ) = 0
munmap(0x7f208d110000, 92584) = 0
set_tid_address(0x7f208d0f2a10) = 3577
set_robust_list(0x7f208d0f2a20, 24) = 0
rt_sigaction(SIGRTMIN, {0x7f208caf5820, [], SA_RESTORER|SA_SIGINFO, 0x7f208cafe5f0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f208caf58b0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f208cafe5f0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192
1024, rlim_max=RLIM64_INFINITY}) = 0
gettid() = 3577
gettid() = 3577
gettid() = 3577
brk(NULL) = 0x1efb000
brk(0x1f1c000) = 0x1f1c000
brk(NULL) = 0x1f1c000
stat("/data/tmp/obj-mac/toolkit/library/XUL.dSYM", {st_mode=S_IFDIR|0775, st_size=22, ...}) = 0
access("/data/tmp/obj-mac/toolkit/library/XUL.dSYM/Contents/Resources/DWARF", F_OK) = 0
openat(AT_FDCWD, "/data/tmp/obj-mac/toolkit/library/XUL.dSYM/Contents/Resources/DWARF", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 3 entries /, 32768) = 72
getdents(3, /
0 entries */, 32768) = 0
close(3) = 0
stat("/data/tmp/obj-mac/toolkit/library/XUL.dSYM/Contents/Resources/DWARF/XUL", {st_mode=S_IFREG|0664, st_size=5982059894, ...}) = 0
open("/data/tmp/obj-mac/toolkit/library/XUL.dSYM/Contents/Resources/DWARF/XUL", O_RDONLY) = 3
mmap(NULL, 5982060544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1f27c29000
fstat(3, {st_mode=S_IFREG|0664, st_size=5982059894, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f208d126000
read(3, "\317\372\355\376\7\0\0\1\3\0\0\0\n\0\0\0\6\0\0\0\17\0\0\0\0\0\0\0\0\0\0"..., 5982056448) = 2147479552 read(3, "p\376\377\377\377\377\377\377o\376\377\377\377\377\377\377\220\1\0\0\0\0\0\0Q\315\1\0\0\0\0\0"..., 3834576896) = 2147479552 read(3, "\0005\302\4\0\0\0\0\0h\302\4\0\0\0\0\0\1\0^0\303\4\0\0\0\0\0006\303\4\0"..., 1687097344) = 1687097344 read(3, "&QUERY_ENCODE_SET\0&mut TakeWhile"..., 4096) = 3446 close(3) = 0 munmap(0x7f208d126000, 4096) = 0 open("/data/tmp/obj-mac/toolkit/library/XUL.dSYM/Contents/Resources/DWARF/XUL", O_RDONLY) = 3 pread64(3, "\317\372\355\376", 4, 0) = 4 pread64(3, "\317\372\355\376\7\0\0\1\3\0\0\0\n\0\0\0\6\0\0\0\17\0\0\0\0\0\0", 28, 0) = 28
pread64(3, "\317\372\355\376\7\0\0\1\3\0\0\0\n\0\0\0\6\0\0\0`\17\0\0\0\0\0\0\0\0\0\0", 32, 0) = 32
pread64(3, "\33\0\0\0\30\0\0\0", 8, 32) = 8
pread64(3, "\33\0\0\0\30\0\0\0B\240\211\242\257\0206j\274s\5>\305\277hl", 24, 32) = 24
close(3) = 0
brk(NULL) = 0x1f1c000
brk(0x1f3d000) = 0x1f3d000
brk(NULL) = 0x1f3d000
brk(NULL) = 0x1f3d000
brk(0x1f3c000) = 0x1f3c000
brk(NULL) = 0x1f3c000
brk(NULL) = 0x1f3c000
brk(0x1f5d000) = 0x1f5d000
brk(NULL) = 0x1f5d000
brk(NULL) = 0x1f5d000
brk(0x1f5c000) = 0x1f5c000
brk(NULL) = 0x1f5c000
brk(NULL) = 0x1f5c000
brk(0x1f7d000) = 0x1f7d000
brk(NULL) = 0x1f7d000
brk(NULL) = 0x1f7d000
brk(0x1f7c000) = 0x1f7c000
brk(NULL) = 0x1f7c000
brk(NULL) = 0x1f7c000
...
brk(0x5a5b000) = 0x5a5b000
futex(0x7f208d162188, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f208d10f1a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, "terminating with uncaught except"..., 69terminating with uncaught exception of type std::out_of_range: vector) = 69
write(2, "\n", 1
) = 1
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
tgkill(3577, 3577, SIGABRT) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=3577, si_uid=1000} ---

Apparently, the issue seems to stem from the build/build/macosx/llvm-dsymutil binary. WG9s provided a new set of binaries which I uploaded to the builder and after running "mach buildsymbols", the XUL symbols were generated.

So I believe the llvm-dsymutil generated XUL symbols that dump_syms didn't like. That said, I still don't understand why dump_syms didn't like just only the XUL the in-tree llvm-dsymutil generated. The other files were fine. File size issue? I'm keeping this opened just in case there is an answer.

You need to log in before you can comment on or make changes to this bug.