unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#23726: 25.0.94; emacs 25.0.94 crashes
@ 2016-06-08 10:21 Jan Synáček
  2016-06-08 16:49 ` Eli Zaretskii
  2016-06-08 17:32 ` bug#23726: " Paul Eggert
  0 siblings, 2 replies; 7+ messages in thread
From: Jan Synáček @ 2016-06-08 10:21 UTC (permalink / raw)
  To: 23726


Emacs 25.0.94 crashes on the current (Jun 8) Fedora Rawhide. The crash
is reproducible with vanilla upstream sources.

gcc-6.1.1-2.fc25.x86_64
glibc-2.23.90-19.fc25.x86_64

Steps to reproduce:
1) configure --with-x=no
2) make; make install
3) emacs (or emacs -Q)

Note that the crash doesn't always happen. I suspect something fishy
going on with emacs' memory management, as can be seen from the
following.

Valgrind output:

==1274== Memcheck, a memory error detector
==1274== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==1274== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==1274== Command: /usr/bin/emacs-nox
==1274== 
==1274== Invalid free() / delete / delete[] / realloc()
==1274==    at 0x4C2FC47: realloc (vg_replace_malloc.c:785)
==1274==    by 0x5628E0: lrealloc (alloc.c:1427)
==1274==    by 0x561FCC: xrealloc (alloc.c:856)
==1274==    by 0x5622CB: xpalloc (alloc.c:978)
==1274==    by 0x40D34E: realloc_glyph_pool (dispnew.c:1344)
==1274==    by 0x40E04D: adjust_frame_glyphs_for_frame_redisplay (dispnew.c:2006)
==1274==    by 0x40D87B: adjust_frame_glyphs (dispnew.c:1791)
==1274==    by 0x418A89: adjust_frame_size (frame.c:587)
==1274==    by 0x4161EE: change_frame_size_1 (dispnew.c:5513)
==1274==    by 0x416244: change_frame_size (dispnew.c:5545)
==1274==    by 0x4172FD: init_display (dispnew.c:6083)
==1274==    by 0x4E76AA: main (emacs.c:1549)
==1274==  Address 0xc1b020 is in a rw- mapped file /usr/bin/emacs-25.0.94-nox segment
==1274== 
emacs: Memory exhausted--use M-x save-some-buffers then exit and restart Emacs
==1274== 
==1274== HEAP SUMMARY:
==1274==     in use at exit: 124,222 bytes in 729 blocks
==1274==   total heap usage: 1,452 allocs, 723 frees, 678,431 bytes allocated
==1274== 
==1274== LEAK SUMMARY:
==1274==    definitely lost: 0 bytes in 0 blocks
==1274==    indirectly lost: 0 bytes in 0 blocks
==1274==      possibly lost: 0 bytes in 0 blocks
==1274==    still reachable: 124,222 bytes in 729 blocks
==1274==         suppressed: 0 bytes in 0 blocks
==1274== Rerun with --leak-check=full to see details of leaked memory
==1274== 
==1274== For counts of detected and suppressed errors, rerun with: -v
==1274== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)


GDB full backtrace:

Starting program: /usr/bin/emacs-nox 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGABRT, Aborted.
0x00007ffff58378d5 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54	  return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.1.1-1.fc25.x86_64 dbus-libs-1.11.2-1.fc25.x86_64 gmp-6.1.0-3.fc25.x86_64 gnutls-3.4.12-1.fc25.x86_64 gpm-libs-1.20.7-9.fc24.x86_64 libacl-2.2.52-11.fc24.x86_64 libattr-2.4.47-16.fc24.x86_64 libcap-2.25-2.fc25.x86_64 libffi-3.1-9.fc24.x86_64 libgcc-6.1.1-2.fc25.x86_64 libgcrypt-1.6.4-2.fc24.x86_64 libgpg-error-1.21-3.fc25.x86_64 libidn-1.32-2.fc24.x86_64 libjpeg-turbo-1.4.90-1.fc25.x86_64 libselinux-2.5-6.fc25.x86_64 libtasn1-4.8-1.fc25.x86_64 libxml2-2.9.3-3.fc24.x86_64 lz4-r131-2.fc24.x86_64 ncurses-libs-6.0-5.20160116.fc25.x86_64 nettle-3.2-2.fc24.x86_64 p11-kit-0.23.2-2.fc24.x86_64 pcre-8.39-0.1.RC1.fc25.x86_64 systemd-libs-230-2.fc25.x86_64 xz-libs-5.2.2-2.fc24.x86_64 zlib-1.2.8-10.fc24.x86_64
#0  0x00007ffff58378d5 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
        resultvar = 0
        pid = 1204
        selftid = 1204
#1  0x00007ffff58394da in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0, 10, 4160432, 140737488341312, 6096828, 140737488341744, 3, 3086, 30, 114, 140737488340512, 
              21627284, 16, 21627281, 15, 14}}, sa_flags = -11336, sa_restorer = 0x0}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00000000005605b8 in re_match_2_internal (bufp=0xba9f18 <searchbufs+2552>, string1=0x0, size1=0, string2=0x14a30e0 "/root/scratch/.", size2=15, pos=14, regs=0x0, stop=15)
    at ../../src/regex.c:6223
        mcnt = 3
        reg = 1
        end1 = 0x0
        end2 = 0x14a30ef ""
        end_match_1 = 0x0
        end_match_2 = 0x14a30ef ""
        d = 0x14a30ef ""
        dend = 0x14a30ef ""
        dfail = 0x14a30ee "."
        p = 0x14a0194 "\n;\002\001z\r#"
        pend = 0x14a024b ""
        translate = 2
        multibyte = 0 '\000'
        target_multibyte = 1 '\001'
        fail_stack = {stack = 0x7fffffffc620, size = 20, avail = 6, frame = 6}
        num_regs = 1
        regstart = 0x0
        regend = 0x0
        best_regs_set = 0
        best_regstart = 0x0
        best_regend = 0x0
        match_end = 0x0
        sa_avail = 13184
        sa_count = 5
        sa_must_free = false
#3  0x0000000000559504 in re_search_2 (bufp=0xba9f18 <searchbufs+2552>, str1=0x0, size1=0, str2=0x14a30e0 "/root/scratch/.", size2=15, startpos=14, range=1, regs=0x0, stop=15)
    at ../../src/regex.c:4446
        val = 39840
        string1 = 0x0
        string2 = 0x14a30e0 "/root/scratch/."
        fastmap = 0xba9f58 <searchbufs+2616> ""
        translate = 2
        total_size = 15
        endpos = 15
        anchored_start = 0 '\000'
        multibyte = 1 '\001'
#4  0x0000000000558b0b in re_search (bufp=0xba9f18 <searchbufs+2552>, string=0x14a30e0 "/root/scratch/.", size=15, startpos=0, range=15, regs=0x0) at ../../src/regex.c:4228
No locals.
#5  0x00000000005453d8 in fast_string_match_internal (regexp=9839060, string=20554964, table=0) at ../../src/search.c:476
        val = 140737488345072
        bufp = 0xba9f18 <searchbufs+2552>
#6  0x00000000004e3be7 in fast_string_match (regexp=9839060, string=20554964) at ../../src/lisp.h:4008
No locals.
#7  0x000000000052bc85 in Ffind_file_name_handler (filename=20554964, operation=17376) at ../../src/fileio.c:292
        string = 9839060
        match_pos = 17376
        handler = 4750192
        operations = 16881011
        elt = 16880035
        chain = 16880019
        inhibited_handlers = 0
        result = 0
        pos = -1
#8  0x000000000052c865 in Fexpand_file_name (name=20554964, default_directory=0) at ../../src/fileio.c:809
        nm = 0xba9ae0 <searchbufs+1472> "\260\367I\001"
        nmlim = 0x589b6f <push_handler_nosignal+195> "H\211\302H\213E\370H\211\220\b\001"
        newdir = 0x7fffffffd910 ""
        newdirlim = 0xe <error: Cannot access memory at address 0xe>
        target = 0x100bd4ff0 <error: Cannot access memory at address 0x100bd4ff0>
        tlen = 5806737
        pw = 0x9ba0
        length = 14
        nbytes = 20554992
        handler = 5119553
        result = 0
        handled_name = 11820231
        multibyte = false
        hdir = 21611136
        sa_avail = 16384
        sa_count = 5
        sa_must_free = false
#9  0x00000000005899a8 in internal_condition_case_2 (bfun=0x52c7f3 <Fexpand_file_name>, arg1=20554964, arg2=0, handlers=39840, hfun=0x590563 <Fidentity>) at ../../src/eval.c:1360
        val = 5119553
        c = 0x149c280
#10 0x000000000053a47d in Ffile_attributes (filename=20554964, id_format=0) at ../../src/dired.c:902
        encoded = 5121337
        handler = 8840264
#11 0x000000000058cd30 in Ffuncall (nargs=2, args=0x7fffffffdb10) at ../../src/eval.c:2696
        internal_argbuf = {20554964, 0, 12406768, 1785210630162692608, 0, 0, 10035109, 50}
        fun = 8840269
        original_fun = 18192
        funcar = 0
        numargs = 1
        lisp_numargs = 6
        val = 1
        internal_args = 0x7fffffffda90
        count = 4
#12 0x00000000005d13d7 in exec_byte_code (bytestr=10035076, vector=10035109, maxdepth=50, args_template=2, nargs=0, args=0x7fffffffdfc0) at ../../src/bytecode.c:880
        targets = {0x5d52bb <exec_byte_code+19422>, 0x5d531a <exec_byte_code+19517>, 0x5d531c <exec_byte_code+19519>, 0x5d531e <exec_byte_code+19521>, 0x5d5320 <exec_byte_code+19523>, 
          0x5d5320 <exec_byte_code+19523>, 0x5d5391 <exec_byte_code+19636>, 0x5d540c <exec_byte_code+19759>, 0x5d0b86 <exec_byte_code+1193>, 0x5d0b88 <exec_byte_code+1195>, 
          0x5d0b8a <exec_byte_code+1197>, 0x5d0b8c <exec_byte_code+1199>, 0x5d0b8e <exec_byte_code+1201>, 0x5d0b8e <exec_byte_code+1201>, 0x5d0b97 <exec_byte_code+1210>, 
          0x5d0b4f <exec_byte_code+1138>, 0x5d1097 <exec_byte_code+2490>, 0x5d1099 <exec_byte_code+2492>, 0x5d109b <exec_byte_code+2494>, 0x5d109d <exec_byte_code+2496>, 
          0x5d109f <exec_byte_code+2498>, 0x5d109f <exec_byte_code+2498>, 0x5d10dd <exec_byte_code+2560>, 0x5d10a8 <exec_byte_code+2507>, 0x5d12c2 <exec_byte_code+3045>, 
          0x5d12c4 <exec_byte_code+3047>, 0x5d12c6 <exec_byte_code+3049>, 0x5d12c8 <exec_byte_code+3051>, 0x5d12ca <exec_byte_code+3053>, 0x5d12ca <exec_byte_code+3053>, 
          0x5d1273 <exec_byte_code+2966>, 0x5d128d <exec_byte_code+2992>, 0x5d1395 <exec_byte_code+3256>, 0x5d1397 <exec_byte_code+3258>, 0x5d1399 <exec_byte_code+3260>, 
          0x5d139b <exec_byte_code+3262>, 0x5d139d <exec_byte_code+3264>, 0x5d139d <exec_byte_code+3264>, 0x5d1346 <exec_byte_code+3177>, 0x5d1360 <exec_byte_code+3203>, 
          0x5d146b <exec_byte_code+3470>, 0x5d146d <exec_byte_code+3472>, 0x5d146f <exec_byte_code+3474>, 0x5d1471 <exec_byte_code+3476>, 0x5d1473 <exec_byte_code+3478>, 
          0x5d1473 <exec_byte_code+3478>, 0x5d141c <exec_byte_code+3391>, 0x5d1436 <exec_byte_code+3417>, 0x5d254f <exec_byte_code+7794>, 0x5d23d7 <exec_byte_code+7418>, 
          0x5d23cb <exec_byte_code+7406>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 
          0x5d52bb <exec_byte_code+19422>, 0x5d27dd <exec_byte_code+8448>, 0x5d28e5 <exec_byte_code+8712>, 0x5d2954 <exec_byte_code+8823>, 0x5d29c4 <exec_byte_code+8935>, 
          0x5d2a38 <exec_byte_code+9051>, 0x5d0ecf <exec_byte_code+2034>, 0x5d0f5c <exec_byte_code+2175>, 0x5d2ac1 <exec_byte_code+9188>, 0x5d0e12 <exec_byte_code+1845>, 
          0x5d0fd9 <exec_byte_code+2300>, 0x5d2b38 <exec_byte_code+9307>, 0x5d2bb5 <exec_byte_code+9432>, 0x5d2c0c <exec_byte_code+9519>, 0x5d2c89 <exec_byte_code+9644>, 
          0x5d2cea <exec_byte_code+9741>, 0x5d2de2 <exec_byte_code+9989>, 0x5d2e39 <exec_byte_code+10076>, 0x5d2eb6 <exec_byte_code+10201>, 0x5d2f56 <exec_byte_code+10361>, 
          0x5d2fad <exec_byte_code+10448>, 0x5d3004 <exec_byte_code+10535>, 0x5d3081 <exec_byte_code+10660>, 0x5d30fe <exec_byte_code+10785>, 0x5d317b <exec_byte_code+10910>, 
          0x5d321b <exec_byte_code+11070>, 0x5d327c <exec_byte_code+11167>, 0x5d32dd <exec_byte_code+11264>, 0x5d33d5 <exec_byte_code+11512>, 0x5d347a <exec_byte_code+11677>, 
          0x5d351f <exec_byte_code+11842>, 0x5d37ae <exec_byte_code+12497>, 0x5d3830 <exec_byte_code+12627>, 0x5d38b2 <exec_byte_code+12757>, 0x5d3934 <exec_byte_code+12887>, 
          0x5d39b6 <exec_byte_code+13017>, 0x5d3a17 <exec_byte_code+13114>, 0x5d3ac0 <exec_byte_code+13283>, 0x5d3b21 <exec_byte_code+13380>, 0x5d3b82 <exec_byte_code+13477>, 
          0x5d3be3 <exec_byte_code+13574>, 0x5d3d22 <exec_byte_code+13893>, 0x5d2218 <exec_byte_code+6971>, 0x5d3d90 <exec_byte_code+14003>, 0x5d3de7 <exec_byte_code+14090>, 
          0x5d3ed7 <exec_byte_code+14330>, 0x5d3f45 <exec_byte_code+14440>, 0x5d3fb3 <exec_byte_code+14550>, 0x5d400a <exec_byte_code+14637>, 0x5d4067 <exec_byte_code+14730>, 
          0x5d40c4 <exec_byte_code+14823>, 0x5d4129 <exec_byte_code+14924>, 0x5d52bb <exec_byte_code+19422>, 0x5d4190 <exec_byte_code+15027>, 0x5d41e2 <exec_byte_code+15109>, 
          0x5d4234 <exec_byte_code+15191>, 0x5d4286 <exec_byte_code+15273>, 0x5d42d8 <exec_byte_code+15355>, 0x5d432a <exec_byte_code+15437>, 0x5d2218 <exec_byte_code+6971>, 
          0x5d52bb <exec_byte_code+19422>, 0x5d4381 <exec_byte_code+15524>, 0x5d43e2 <exec_byte_code+15621>, 0x5d4439 <exec_byte_code+15708>, 0x5d4490 <exec_byte_code+15795>, 
          0x5d450d <exec_byte_code+15920>, 0x5d458a <exec_byte_code+16045>, 0x5d45e1 <exec_byte_code+16132>, 0x5d46ec <exec_byte_code+16399>, 0x5d4769 <exec_byte_code+16524>, 
          0x5d47e6 <exec_byte_code+16649>, 0x5d4863 <exec_byte_code+16774>, 0x5d48b5 <exec_byte_code+16856>, 0x5d52bb <exec_byte_code+19422>, 0x5d2131 <exec_byte_code+6740>, 
          0x5d1537 <exec_byte_code+3674>, 0x5d0caa <exec_byte_code+1485>, 0x5d166c <exec_byte_code+3983>, 0x5d17d4 <exec_byte_code+4343>, 0x5d1930 <exec_byte_code+4691>, 
          0x5d20ae <exec_byte_code+6609>, 0x5d20f1 <exec_byte_code+6676>, 0x5d1211 <exec_byte_code+2868>, 0x5d21c9 <exec_byte_code+6892>, 0x5d2255 <exec_byte_code+7032>, 
          0x5d22f8 <exec_byte_code+7195>, 0x5d2347 <exec_byte_code+7274>, 0x5d2599 <exec_byte_code+7868>, 0x5d2630 <exec_byte_code+8019>, 0x5d26d0 <exec_byte_code+8179>, 
          0x5d2745 <exec_byte_code+8296>, 0x5d14e0 <exec_byte_code+3587>, 0x5d490c <exec_byte_code+16943>, 0x5d49ac <exec_byte_code+17103>, 0x5d4a03 <exec_byte_code+17190>, 
          0x5d4a5a <exec_byte_code+17277>, 0x5d4ab1 <exec_byte_code+17364>, 0x5d4b08 <exec_byte_code+17451>, 0x5d4b85 <exec_byte_code+17576>, 0x5d4c02 <exec_byte_code+17701>, 
          0x5d4c7f <exec_byte_code+17826>, 0x5d4cfc <exec_byte_code+17951>, 0x5d4e61 <exec_byte_code+18308>, 0x5d4ede <exec_byte_code+18433>, 0x5d4f5b <exec_byte_code+18558>, 
          0x5d4fb2 <exec_byte_code+18645>, 0x5d502f <exec_byte_code+18770>, 0x5d50ac <exec_byte_code+18895>, 0x5d5111 <exec_byte_code+18996>, 0x5d5176 <exec_byte_code+19097>, 
          0x5d3c44 <exec_byte_code+13671>, 0x5d3ca5 <exec_byte_code+13768>, 0x5d51d7 <exec_byte_code+19194>, 0x5d524b <exec_byte_code+19310>, 0x5d52bb <exec_byte_code+19422>, 
          0x5d1a8c <exec_byte_code+5039>, 0x5d1b94 <exec_byte_code+5303>, 0x5d1cdb <exec_byte_code+5630>, 0x5d1e22 <exec_byte_code+5957>, 0x5d1f68 <exec_byte_code+6283>, 
          0x5d2d4b <exec_byte_code+9838>, 0x5d333e <exec_byte_code+11361>, 0x5d3e40 <exec_byte_code+14179>, 0x5d54ae <exec_byte_code+19921>, 0x5d552c <exec_byte_code+20047>, 
          0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d55d1 <exec_byte_code+20212>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 
          0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 
          0x5d52bb <exec_byte_code+19422>, 0x5d52bb <exec_byte_code+19422>, 0x5d5676 <exec_byte_code+20377> <repeats 64 times>}
        count = 4
        op = 1
        vectorp = 0x991fa8 <pure+1192200>
        stack = {
          pc = 0xad7d00 <pure+2526816> "\356\357\f!\360P!\232\204-\001\361\362\002P\016D\"\026D\210\016E<\203T\001\r\324=\203>\001Ղ@\001\016C\331\332\333\334\335\336\006\006!\363\"\340\341%\016E\"\026E\210\f\203_\001\364\f!\024\202d\001\365\366\367\"\210\016F\332\370\371\335\336\005!\372\"\373$\216\374 \210)\210\375\376\377\"\210\201H", byte_string = 10035076, 
          byte_string_start = 0xad7be7 <pure+2526535> "\b\203\b", next = 0x0}
        top = 0x7fffffffdb10
        result = 64288067697
        type = CATCHER
#13 0x000000000058d620 in funcall_lambda (fun=10035029, nargs=0, arg_vector=0x7fffffffdfc0) at ../../src/eval.c:2855
        size = 5
        val = 0
        syms_left = 2
        next = 2
        lexenv = 12406768
        count = 4
        i = 140737354130560
        optional = false
        rest = false
#14 0x000000000058d398 in apply_lambda (fun=10035029, args=0, count=3) at ../../src/eval.c:2794
        args_left = 0
        i = 0
        numargs = 0
        arg_vector = 0x7fffffffdfc0
        tem = 10035029
        sa_avail = 16384
        sa_count = 4
        sa_must_free = false
#15 0x000000000058b8dd in eval_sub (form=17290403) at ../../src/eval.c:2211
        fun = 10035029
        val = 17141888
        original_fun = 8666816
        original_args = 0
        funcar = 25104
        count = 3
        argvals = {12645440, 12245584, 5119553, 17141888, 140737488347504, 5824004, 0, 25104}
#16 0x000000000058adca in Feval (form=17290403, lexical=0) at ../../src/eval.c:1988
        count = 2
#17 0x00000000004ea3c3 in top_level_2 () at ../../src/keyboard.c:1108
No locals.
#18 0x0000000000589869 in internal_condition_case (bfun=0x4ea3a0 <top_level_2>, handlers=16560, hfun=0x4e9e3e <cmd_error>) at ../../src/eval.c:1309
        val = 5119553
        c = 0x149c150
#19 0x00000000004ea408 in top_level_1 (ignore=0) at ../../src/keyboard.c:1116
No locals.
#20 0x0000000000589162 in internal_catch (tag=41088, func=0x4ea3c5 <top_level_1>, arg=0) at ../../src/eval.c:1074
        val = 5119553
        c = 0x1489540
#21 0x00000000004ea2f2 in command_loop () at ../../src/keyboard.c:1077
No locals.
#22 0x00000000004e9a00 in recursive_edit_1 () at ../../src/keyboard.c:684
        count = 1
        val = 5824079
#23 0x00000000004e9b96 in Frecursive_edit () at ../../src/keyboard.c:755
        count = 0
        buffer = 0
#24 0x00000000004e778b in main (argc=1, argv=0x7fffffffe4e8) at ../../src/emacs.c:1606
        dummy = 0
        stack_bottom_variable = 0 '\000'
        do_initial_setlocale = true
        dumping = false
        skip_args = 0
        rlim = {rlim_cur = 8720000, rlim_max = 18446744073709551615}
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0


-- 
Jan Synacek
Software Engineer, Red Hat





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: 25.0.94; emacs 25.0.94 crashes
  2016-06-08 10:21 bug#23726: 25.0.94; emacs 25.0.94 crashes Jan Synáček
@ 2016-06-08 16:49 ` Eli Zaretskii
  2016-06-08 17:32 ` bug#23726: " Paul Eggert
  1 sibling, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2016-06-08 16:49 UTC (permalink / raw)
  To: Jan Synáček; +Cc: 23726

> From: jsynacek@redhat.com (Jan Synáček)
> Date: Wed, 08 Jun 2016 12:21:30 +0200
> 
> Emacs 25.0.94 crashes on the current (Jun 8) Fedora Rawhide. The crash
> is reproducible with vanilla upstream sources.
> 
> gcc-6.1.1-2.fc25.x86_64
> glibc-2.23.90-19.fc25.x86_64
> 
> Steps to reproduce:
> 1) configure --with-x=no
> 2) make; make install
> 3) emacs (or emacs -Q)
> 
> Note that the crash doesn't always happen. I suspect something fishy
> going on with emacs' memory management, as can be seen from the
> following.
> 
> Valgrind output:
> 
> ==1274== Memcheck, a memory error detector
> ==1274== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
> ==1274== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
> ==1274== Command: /usr/bin/emacs-nox
> ==1274== 
> ==1274== Invalid free() / delete / delete[] / realloc()
> ==1274==    at 0x4C2FC47: realloc (vg_replace_malloc.c:785)
> ==1274==    by 0x5628E0: lrealloc (alloc.c:1427)
> ==1274==    by 0x561FCC: xrealloc (alloc.c:856)
> ==1274==    by 0x5622CB: xpalloc (alloc.c:978)
> ==1274==    by 0x40D34E: realloc_glyph_pool (dispnew.c:1344)
> ==1274==    by 0x40E04D: adjust_frame_glyphs_for_frame_redisplay (dispnew.c:2006)
> ==1274==    by 0x40D87B: adjust_frame_glyphs (dispnew.c:1791)
> ==1274==    by 0x418A89: adjust_frame_size (frame.c:587)
> ==1274==    by 0x4161EE: change_frame_size_1 (dispnew.c:5513)
> ==1274==    by 0x416244: change_frame_size (dispnew.c:5545)
> ==1274==    by 0x4172FD: init_display (dispnew.c:6083)
> ==1274==    by 0x4E76AA: main (emacs.c:1549)
> ==1274==  Address 0xc1b020 is in a rw- mapped file /usr/bin/emacs-25.0.94-nox segment
> ==1274== 
> emacs: Memory exhausted--use M-x save-some-buffers then exit and restart Emacs
> ==1274== 
> ==1274== HEAP SUMMARY:
> ==1274==     in use at exit: 124,222 bytes in 729 blocks
> ==1274==   total heap usage: 1,452 allocs, 723 frees, 678,431 bytes allocated
> ==1274== 
> ==1274== LEAK SUMMARY:
> ==1274==    definitely lost: 0 bytes in 0 blocks
> ==1274==    indirectly lost: 0 bytes in 0 blocks
> ==1274==      possibly lost: 0 bytes in 0 blocks
> ==1274==    still reachable: 124,222 bytes in 729 blocks
> ==1274==         suppressed: 0 bytes in 0 blocks
> ==1274== Rerun with --leak-check=full to see details of leaked memory
> ==1274== 
> ==1274== For counts of detected and suppressed errors, rerun with: -v
> ==1274== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
> 
> 
> GDB full backtrace:
> 
> Starting program: /usr/bin/emacs-nox 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> 
> Program received signal SIGABRT, Aborted.
> 0x00007ffff58378d5 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
> 54	  return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
> Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.1.1-1.fc25.x86_64 dbus-libs-1.11.2-1.fc25.x86_64 gmp-6.1.0-3.fc25.x86_64 gnutls-3.4.12-1.fc25.x86_64 gpm-libs-1.20.7-9.fc24.x86_64 libacl-2.2.52-11.fc24.x86_64 libattr-2.4.47-16.fc24.x86_64 libcap-2.25-2.fc25.x86_64 libffi-3.1-9.fc24.x86_64 libgcc-6.1.1-2.fc25.x86_64 libgcrypt-1.6.4-2.fc24.x86_64 libgpg-error-1.21-3.fc25.x86_64 libidn-1.32-2.fc24.x86_64 libjpeg-turbo-1.4.90-1.fc25.x86_64 libselinux-2.5-6.fc25.x86_64 libtasn1-4.8-1.fc25.x86_64 libxml2-2.9.3-3.fc24.x86_64 lz4-r131-2.fc24.x86_64 ncurses-libs-6.0-5.20160116.fc25.x86_64 nettle-3.2-2.fc24.x86_64 p11-kit-0.23.2-2.fc24.x86_64 pcre-8.39-0.1.RC1.fc25.x86_64 systemd-libs-230-2.fc25.x86_64 xz-libs-5.2.2-2.fc24.x86_64 zlib-1.2.8-10.fc24.x86_64
> #0  0x00007ffff58378d5 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
>         resultvar = 0
>         pid = 1204
>         selftid = 1204
> #1  0x00007ffff58394da in __GI_abort () at abort.c:89
>         save_stage = 2
>         act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0, 10, 4160432, 140737488341312, 6096828, 140737488341744, 3, 3086, 30, 114, 140737488340512, 
>               21627284, 16, 21627281, 15, 14}}, sa_flags = -11336, sa_restorer = 0x0}
>         sigs = {__val = {32, 0 <repeats 15 times>}}
> #2  0x00000000005605b8 in re_match_2_internal (bufp=0xba9f18 <searchbufs+2552>, string1=0x0, size1=0, string2=0x14a30e0 "/root/scratch/.", size2=15, pos=14, regs=0x0, stop=15)
>     at ../../src/regex.c:6223

Thanks for the report, but I must say I'm confused wrt what's going on
here.  The backtrace is from a call to 'abort', so it cannot be a
memory problem, at least not directly.  And I'm not sure how valgrind
output is related to that, but in general you need to run temacs under
valgrind, not emacs, to avoid too many false positives.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: emacs 25.0.94 crashes
  2016-06-08 10:21 bug#23726: 25.0.94; emacs 25.0.94 crashes Jan Synáček
  2016-06-08 16:49 ` Eli Zaretskii
@ 2016-06-08 17:32 ` Paul Eggert
  2016-06-08 18:34   ` Florian Weimer
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Eggert @ 2016-06-08 17:32 UTC (permalink / raw)
  To: Jan Synáček; +Cc: Florian Weimer, 23726

[-- Attachment #1: Type: text/plain, Size: 1137 bytes --]

Has Rawhide incorporated some of Florian Weimer's malloc patches? If so, 
this is almost surely causing the problem. I will CC: Florian to give 
him a heads-up. See:

https://sourceware.org/ml/libc-alpha/2016-06/msg00211.html

https://sourceware.org/bugzilla/show_bug.cgi?id=19564

I am surprised that you can use valgrind. Valgrind does not work on 
Emacs in Fedora 23 because it mishandles the way Emacs dumps and 
restores. I can use Valgrind only on temacs, not on Emacs itself. The 
fact that you can use Valgrind on a dumped Emacs suggests that some of 
the malloc patches have been installed on Rawhide.


For what it's worth, when I try to use valgrind on Fedora 23, I run into 
what appears to be a valgrind bug that prevents Emacs from working. I 
just now filed it here:

https://bugzilla.redhat.com/show_bug.cgi?id=1344082

I ran valgrind as follows:

valgrind --log-fd=3 --suppressions=valgrind.supp ./temacs 3>/tmp/vg.log

with the attached valgrind.supp file, and Emacs (emacs-25 branch, built 
with 'configure --with-x=no') says "Failed select: Bad address" due to 
the valgrind bug. How do you use valgrind on Rawhide?


[-- Attachment #2: valgrind.supp --]
[-- Type: text/plain, Size: 1337 bytes --]

# valgrind suppression file
# Usage:
#    valgrind --suppressions=valgrind.supp ./temacs

# Conservative garbage collection inherently looks at uninitialized values,
# and Fgarbage_collect and its callees all depend on this.
# It's hard to separate out exactly which callees need to be listed here,
# since the C compiler can inline them.  Also, valgrind doesn't care
# about the use of uninitialized variables directly, only when their values
# are eventually used.  So just list Fgarbage_collect and its callees.
{
   Fgarbage_collect Cond - conservative garbage collection
   Memcheck:Cond
   ...
   fun:Fgarbage_collect
}
{
   Fgarbage_collect Value8 - conservative garbage collection
   Memcheck:Value8
   ...
   fun:Fgarbage_collect
}
# valgrind only looks at the last few callees on the stack, but
# mark_object can call itself recursively and deeply.  So list
# it too, in case Fgarbage_collect is a long way from the stack top.
{
   Fgarbage_collect Cond - conservative garbage collection
   Memcheck:Cond
   ...
   fun:mark_object
}
{
   Fgarbage_collect Value8 - conservative garbage collection
   Memcheck:Value8
   ...
   fun:mark_object
}

# On one circa-2011 x86-64 GNU/Linux platform, strlen is inlined to
# something that loads 4 bytes at a time.
{
   init_buffer optimized strlen
   Memcheck:Addr4
   fun:init_buffer
}

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: emacs 25.0.94 crashes
  2016-06-08 17:32 ` bug#23726: " Paul Eggert
@ 2016-06-08 18:34   ` Florian Weimer
  2016-06-08 18:52     ` Florian Weimer
  0 siblings, 1 reply; 7+ messages in thread
From: Florian Weimer @ 2016-06-08 18:34 UTC (permalink / raw)
  To: Paul Eggert, Jan Synáček; +Cc: 23726

On 06/08/2016 07:32 PM, Paul Eggert wrote:
> Has Rawhide incorporated some of Florian Weimer's malloc patches? If so,
> this is almost surely causing the problem. I will CC: Florian to give
> him a heads-up. See:
>
> https://sourceware.org/ml/libc-alpha/2016-06/msg00211.html

That's not the patch, it's not even in upstream master.  If that patch 
was in, you wouldn't see the problem anymore because Emacs' internal 
malloc would be used.

The problem is that the realloc implementation for dumped chunks is 
incorrect; that bit is already in glibc master and rawhide.  I think I 
can see what is wrong: The size computation for the old chunk size in 
realloc is wrong, and the trailing sizeof (size_t) bytes are not copied. 
  Fortunately, it's not a conceptual problem with the heap rewriter.

> I am surprised that you can use valgrind.

The valgrind failure is typical of what you get with a dumped Emacs. 
valgrind intercepts realloc and returns 0 because an off-heap pointer is 
detected.

Florian






^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: emacs 25.0.94 crashes
  2016-06-08 18:34   ` Florian Weimer
@ 2016-06-08 18:52     ` Florian Weimer
  2016-06-08 18:57       ` Paul Eggert
  2016-06-09  6:17       ` Jan Synacek
  0 siblings, 2 replies; 7+ messages in thread
From: Florian Weimer @ 2016-06-08 18:52 UTC (permalink / raw)
  To: Paul Eggert, Jan Synáček; +Cc: 23726

On 06/08/2016 08:34 PM, Florian Weimer wrote:

> The problem is that the realloc implementation for dumped chunks is
> incorrect; that bit is already in glibc master and rawhide.  I think I
> can see what is wrong: The size computation for the old chunk size in
> realloc is wrong, and the trailing sizeof (size_t) bytes are not copied.
>  Fortunately, it's not a conceptual problem with the heap rewriter.

glibc patch posted:

   https://sourceware.org/ml/libc-alpha/2016-06/msg00261.html

The same dumped binary crashes before this patch is applied, and works 
afterwards.

Jan, thanks for reporting this.

Florian





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: emacs 25.0.94 crashes
  2016-06-08 18:52     ` Florian Weimer
@ 2016-06-08 18:57       ` Paul Eggert
  2016-06-09  6:17       ` Jan Synacek
  1 sibling, 0 replies; 7+ messages in thread
From: Paul Eggert @ 2016-06-08 18:57 UTC (permalink / raw)
  To: Florian Weimer, Jan Synáček; +Cc: 23726-done

On 06/08/2016 11:52 AM, Florian Weimer wrote:
> glibc patch posted:
>
> https://sourceware.org/ml/libc-alpha/2016-06/msg00261.html
>
> The same dumped binary crashes before this patch is applied, and works 
> afterwards.

Thanks again. Closing Bug#23726, as it's a glibc bug not an Emacs bug.






^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#23726: emacs 25.0.94 crashes
  2016-06-08 18:52     ` Florian Weimer
  2016-06-08 18:57       ` Paul Eggert
@ 2016-06-09  6:17       ` Jan Synacek
  1 sibling, 0 replies; 7+ messages in thread
From: Jan Synacek @ 2016-06-09  6:17 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Paul Eggert, 23726

On Wed, Jun 8, 2016 at 8:52 PM, Florian Weimer <fweimer@redhat.com> wrote:
> On 06/08/2016 08:34 PM, Florian Weimer wrote:
>
>> The problem is that the realloc implementation for dumped chunks is
>> incorrect; that bit is already in glibc master and rawhide.  I think I
>> can see what is wrong: The size computation for the old chunk size in
>> realloc is wrong, and the trailing sizeof (size_t) bytes are not copied.
>>  Fortunately, it's not a conceptual problem with the heap rewriter.
>
>
> glibc patch posted:
>
>   https://sourceware.org/ml/libc-alpha/2016-06/msg00261.html
>
> The same dumped binary crashes before this patch is applied, and works
> afterwards.
>
> Jan, thanks for reporting this.

Thanks for investigating and the quick fix!

-- 
Jan Synacek
Software Engineer, Red Hat





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-06-09  6:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-08 10:21 bug#23726: 25.0.94; emacs 25.0.94 crashes Jan Synáček
2016-06-08 16:49 ` Eli Zaretskii
2016-06-08 17:32 ` bug#23726: " Paul Eggert
2016-06-08 18:34   ` Florian Weimer
2016-06-08 18:52     ` Florian Weimer
2016-06-08 18:57       ` Paul Eggert
2016-06-09  6:17       ` Jan Synacek

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).