bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make -j4, SIGINT, deadlock


From: Дилян Палаузов
Subject: make -j4, SIGINT, deadlock
Date: Thu, 03 Sep 2015 10:29:12 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0

Hello,

I do occationally "make -j4" ... "Ctrl+C" and then make hangs with the backtrace below. According to my undestating, SIGINT calls fatal_error_signal(), which calls reap_children(), which calls child_error(), which calls indirectly malloc(). The latter is not async signal safe, hence the deadlock on SIGINT.

I use make 4.1.

Greetings
  Dilyan

---

#0  0x00007f838eaaa5cb in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007f838ea3652a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007f838ea34065 in malloc () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#3  0x00007f838e9ea748 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#4  0x00007f838e9e8597 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#5  0x00007f838e9e7e5e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#6 0x00000000004125f2 in child_error (address@hidden, exit_code=0, exit_sig=2, coredump=<optimized out>, address@hidden) at ../make-4.1/job.c:503
        pre = 0x4292d9 "*** "
        post = 0x429255 ""
        dump = <optimized out>
        f = 0x10a2500
        flocp = 0x10f51d0
        nm = 0x7ffe82199460 "Makefile:2597"
        l = 10
#7 0x000000000041456f in reap_children (address@hidden, address@hidden) at ../make-4.1/job.c:876
        delete_on_error = -1
        pid = <optimized out>
        remote = <optimized out>
        exit_code = 0
        lastc = 0x155bda0
        child_failed = <optimized out>
        any_local = <optimized out>
        exit_sig = 2
        coredump = 0
        c = 0x1539550
        any_remote = <optimized out>
        dontcare = 0
        status = 2
        reap_more = 1
#8 0x0000000000409a04 in fatal_error_signal (sig=15) at ../make-4.1/commands.c:573
        c = <optimized out>
#9  <signal handler called>
No symbol table info available.
#10 0x00007f838eaaa5c9 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#11 0x00007f838ea3652a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#12 0x00007f838ea34065 in malloc () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#13 0x00007f838e9ea748 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#14 0x00007f838e9e8597 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#15 0x00007f838e9e7e5e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#16 0x00000000004125f2 in child_error (address@hidden, exit_code=0, exit_sig=2, coredump=<optimized out>, address@hidden) at ../make-4.1/job.c:503
        pre = 0x4292d9 "*** "
        post = 0x429255 ""
        dump = <optimized out>
        f = 0x10a2470
        flocp = 0x10f5370
        nm = 0x7ffe82199ea0 "Makefile:2593"
        l = 21
#17 0x000000000041456f in reap_children (address@hidden, address@hidden) at ../make-4.1/job.c:876
        delete_on_error = -1
        pid = <optimized out>
        remote = <optimized out>
        exit_code = 0
        lastc = 0x1539550
        child_failed = <optimized out>
        any_local = <optimized out>
        exit_sig = 2
        coredump = 0
        c = 0x1549770
        any_remote = <optimized out>
        dontcare = 0
        status = 2
        reap_more = 1
#18 0x0000000000409a04 in fatal_error_signal (sig=2) at ../make-4.1/commands.c:573
        c = <optimized out>
#19 <signal handler called>
No symbol table info available.
#20 0x00007f838ea326bf in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#21 0x00007f838ea34a2c in calloc () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#22 0x000000000041725b in xcalloc (address@hidden) at ../make-4.1/misc.c:231
        result = <optimized out>
#23 0x0000000000424265 in hash_init (address@hidden, address@hidden, address@hidden <variable_hash_1>, address@hidden <variable_hash_2>, address@hidden <variable_hash_cmp>) at ../make-4.1/hash.c:46
No locals.
#24 0x0000000000422983 in target_environment (file=0x10a2620) at ../make-4.1/variable.c:968
        set_list = 0x154f750
        s = <optimized out>
        table = {
          ht_vec = 0x6307a0 <global_setlist>,
          ht_hash_1 = 0x40b88b <variable_expand_for_file+75>,
          ht_hash_2 = 0x412480 <child_handler>,
          ht_compare = 0x1500e00,
          ht_size = 1024,
          ht_capacity = 22306912,
          ht_fill = 22426544,
          ht_empty_slots = 1024,
          ht_collisions = 0,
          ht_lookups = 4273848,
          ht_rehashes = 0
        }
        v_slot = <optimized out>
        v_end = <optimized out>
        makelevel_key = {
          name = 0x7ffe8219a760 "",
value = 0x154f900 "gcc -pipe -O3 -flto -fno-fat-lto-objects -I. -I/git/binutils-gdb/gdb -I/git/binutils-gdb/gdb/common -I/git/binutils-gdb/gdb/config -DLOCALEDIR=\"\\\"/usr/local/share/locale\\\"\" -DHAVE_CONFIG_H -I/git/binutils-gdb/gdb/../include/opcode -iquote/git/binutils-gdb/gdb/../opcodes/.. -I../bfd -I/git/binutils-gdb/gdb/../bfd -I/git/binutils-gdb/gdb/../include -I../libdecnumber -I/git/binutils-gdb/gdb/../libdecnumber -I/git/binutils-gdb/gdb/gnulib/import -Ibuild-gnulib/import -DTUI=1 -I/usr/include/python3.4m -I/usr/include/python3.4m -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wpointer-sign -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral -Werror -c -o py-function.o -MT py-function.o -MMD -MP -MF .deps/py-function.Tpo -fno-strict-aliasing -DNDEBUG -fwrapv /git/binutils-gdb/gdb/python/py-function.c",
          fileinfo = {
filenm = 0xfcfc <error: Cannot access memory at address 0xfcfc>,
            lineno = 0
          },
          length = -2112247968,
          recursive = 0,
          append = 1,
          conditional = 1,
          per_target = 1,
          special = 1,
          exportable = 1,
          expanding = 1,
          private_var = 1,
          exp_count = 127,
          flavor = f_bogus,
          origin = o_default,
          export = v_export
        }
        result_0 = <optimized out>
        result = <optimized out>
#25 0x0000000000413cc5 in start_job_command (address@hidden) at ../make-4.1/job.c:1427
        bad_stdin = 6
        flags = 0
p = 0x154f900 "gcc -pipe -O3 -flto -fno-fat-lto-objects -I. -I/git/binutils-gdb/gdb -I/git/binutils-gdb/gdb/common -I/git/binutils-gdb/gdb/config -DLOCALEDIR=\"\\\"/usr/local/share/locale\\\"\" -DHAVE_CONFIG_H -I/git/binutils-gdb/gdb/../include/opcode -iquote/git/binutils-gdb/gdb/../opcodes/.. -I../bfd -I/git/binutils-gdb/gdb/../bfd -I/git/binutils-gdb/gdb/../include -I../libdecnumber -I/git/binutils-gdb/gdb/../libdecnumber -I/git/binutils-gdb/gdb/gnulib/import -Ibuild-gnulib/import -DTUI=1 -I/usr/include/python3.4m -I/usr/include/python3.4m -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wpointer-sign -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral -Werror -c -o py-function.o -MT py-function.o -MMD -MP -MF .deps/py-function.Tpo -fno-strict-aliasing -DNDEBUG -fwrapv /git/binutils-gdb/gdb/python/py-function.c"
        argv = 0x15633b0
        outfd = 1
        errfd = 2
#26 0x0000000000414634 in start_waiting_job (address@hidden) at ../make-4.1/job.c:1729
        f = 0x10a2620
#27 0x0000000000414f0b in new_job (file=0x10a2620) at ../make-4.1/job.c:2066
        cmds = 0x10f5780
        c = 0x1524c40
        lines = 0x1524c90
        i = <optimized out>
#28 0x000000000041f949 in remake_file (file=0x10a2620) at ../make-4.1/remake.c:1228
No locals.
#29 update_file_1 (depth=4, file=<optimized out>) at ../make-4.1/remake.c:836
        dep_status = <optimized out>
        noexist = <optimized out>
        d = 0x0
        must_make = <optimized out>
        amake = {
          next = 0x0,
name = 0xff00000000 <error: Cannot access memory at address 0xff00000000>,
          stem = 0x0,
          file = 0x10a2620,
          changed = 0,
          ignore_mtime = 0,
          staticpattern = 0,
          need_2nd_expansion = 0,
          dontcare = 0
        }
        running = 0
        this_mtime = <optimized out>
        deps_changed = <optimized out>
        ofile = <optimized out>
        ad = <optimized out>
#30 update_file (address@hidden, address@hidden) at ../make-4.1/remake.c:316
        status = <optimized out>
        f = <optimized out>
#31 0x000000000041e47e in check_dep (file=0x10a2620, depth=4, address@hidden, address@hidden, address@hidden) at ../make-4.1/remake.c:1025
        mtime = <optimized out>
        ofile = 0x10a2620
        d = <optimized out>
        dep_status = us_success
#32 0x000000000041ebf8 in update_file_1 (depth=<optimized out>, file=<optimized out>) at ../make-4.1/remake.c:573
        new = <optimized out>
        mtime = 1546923789293565999
        maybe_make = 1
        dontcare = 0
        lastd = <optimized out>
        dep_status = us_success
        noexist = <optimized out>
        d = 0x10b4a50
        must_make = 1
        amake = {
          next = 0x0,
          name = 0x0,
          stem = 0x0,
          file = 0x108cc90,
          changed = 0,
          ignore_mtime = 0,
          staticpattern = 0,
          need_2nd_expansion = 0,
          dontcare = 0
        }
        running = 1
        this_mtime = <optimized out>
        deps_changed = <optimized out>
        ofile = <optimized out>
        ad = <optimized out>
#33 update_file (address@hidden, address@hidden) at ../make-4.1/remake.c:316
        status = <optimized out>
        f = <optimized out>
#34 0x000000000041e47e in check_dep (file=0x108cc90, depth=2, address@hidden, address@hidden, address@hidden) at ../make-4.1/remake.c:1025
        mtime = <optimized out>
        ofile = 0x108cc90
        d = <optimized out>
        dep_status = us_success
#35 0x000000000041ebf8 in update_file_1 (depth=<optimized out>, file=<optimized out>) at ../make-4.1/remake.c:573
        new = <optimized out>
        mtime = 1547079316873812382
        maybe_make = 1
        dontcare = 0
        lastd = <optimized out>
        dep_status = us_success
        noexist = <optimized out>
        d = 0x1086700
        must_make = 1
        amake = {
          next = 0x0,
name = 0x4141e6 <reap_children+1126> "E\204\366t\035\213\065\303\374!",
          stem = 0x0,
          file = 0x108cdb0,
          changed = 0,
          ignore_mtime = 0,
          staticpattern = 0,
          need_2nd_expansion = 0,
          dontcare = 0
        }
        running = 0
        this_mtime = <optimized out>
        deps_changed = <optimized out>
        ofile = <optimized out>
        ad = <optimized out>
#36 update_file (address@hidden, depth=<optimized out>) at ../make-4.1/remake.c:316
        status = <optimized out>
        f = <optimized out>
#37 0x000000000041fd4f in update_goal_chain (goals=<optimized out>) at ../make-4.1/remake.c:155
        ocommands_started = 3
        fail = <optimized out>
        file = <optimized out>
        stop = 0
        any_not_updated = <optimized out>
        g = 0x12b4ca0
        lastgoal = <optimized out>
        t = <optimized out>
        q = <optimized out>
        n = 0
        status = us_none
#38 0x0000000000407617 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../make-4.1/main.c:2519
        stdin_nm = 0x0
        makefile_status = 0
        read_files = 0x0
current_directory = "/home/d/binutils/gdb", '\000' <repeats 1252 times>, "η\366\216\203\177", '\000' <repeats 67 times>, "\360\031\000\000\000\000\000\364\352\031\000\000\000\000\000\364\352\031", '\000' <repeats 13 times>, "\005\000\000\000\000\000\000\000\000\360\071\000\000\000\000\000\000P:\000\000\000\000\000\070G:\000\000\000\000\000 \212:\000\000\000\000\000\000\360\031\000\000\000\000\000\003", '\000' <repeats 16 times>, "\060\000\000\000\000\000\000\b \000\000\000\000\000\000\b ", '\000' <repeats 14 times>, "\005\000\000\000\000\000\000\000\000 \000\000\000\000\000\000@ \000\000\000\000\000\240\060 \000\000\000\000\000\020\061 \000\000\000\000\000\000 \000\000\000\000\000\000\003", '\000' <repeats 119 times>, " \000\000\000\000\000\000\000/address@hidden address@hidden \000\001\000\000\000\n\000\000\000\000\000\000\000\004\000\000\000\000 \000\000\000dJ\367\216\203\177\000\000\300\275\031\202\376\177\000 \000<圎\203\177\000\000\000\000\000\000\000\000\000\000\232\317\366\216 \203\177\000\000\300\275\031\202\376\177\000\000dJ\367\216\203\177\000\000\360\275\031\202\376\177\000\000\317\030\326\216\203\177\000\000\001\000\000\000\000\000\000\000\232\317\366\216\203\177\000\000\360\275\031\202\376\177\000\000\221\266\366\216\203\177\000\000\000o.2", '\000' <repeats 12 times>, "address@hidden \212:\000\000\000\000\000\006\000\000\000\000\000\000\000\250\272\031\202\376\177\000\000\001\376\000\000\000\000\000\000\026\000\026\001\000\000\000\000\001\000\000\000\000\000\000\000\355\201", '\000' <repeats 22 times>, "\300e\032\000\000\000\000\000\000\020\000\000\000\000\000\000\070\r\000\000\000\000\000\000\247Q\343U\000\000\000\000\026h\211\t\000\000\000\000`\252-U", '\000' <repeats 12 times>, "\245\363wU\000\000\000\000|\350\063-", '\000' <repeats 36 times>, "address@hidden", '\000' <repeats 18 times>, "\237\320\366\216\203\177\000\000\000\000\000\000\203\177\000\000P\276\031\202\376\177", '\000' <repeats 18 times>, "\001\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\001\276\031\202\376\177\000\000\003\000\000\000\376\177\000\000\000\000\000\000\203\177\000\000G\344\027\217\203\177", '\000' <repeats 26 times>, "address@hidden>address@hidden@address@hidden@address@hidden@\000\000\000\000\000\000\000\060\002\000\000\000\000\000\000\060\002\000\000\000\000\000\000\b\000\000\000\000\000\000\000\003\000\000\000\004\000\000\000\060\303\026\000\000\000\000\000\060\303\026\000\000\000\000\000\060\303\026\000\000\000\000\000\034\000\000\000\000\000\000\000\034\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\001\000\000\000\005", '\000' <repeats 27 times>, "\364\352\031\000\000\000\000\000\364\352\031\000\000\000\000\000\000\000 address@hidden@address@hidden \000\000\000\000\000\002\000\000\000\006\000\000\000\240+\032\000\000 \000\000\000\240+:\000\000\000\000\000\240+:\000\000\000\000\000\340\001 \000\000\000\000\000\000\340\001\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\004\000\000\000\004\000\000\000p\002\000\000\000\000 \000\000p\002\000\000\000\000\000\000p\002\000\000\000\000\000\000D\000 \000\000\000\000\000\000D\000\000\000\000\000\000\000\004\000\000\000 address@hidden address@hidden@\367\071\000\000\000\000\000\020\000 \000\000\000\000\000\000\200\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000H\304\031\202\376\177\000\000\240\304\031\202\376\177 \000\000\000\000\000\000\000\000\000\000\340\301\031\202\376\177\000\000 \030J\030\217\203\177\000\000<圎\203\177\000\000\242\023\367\216\203\177 address@hidden@\304\031\202\376\177\000\000\070\304\031\202\376\177\000\000\\\334\366\216\203\177\000\000\264\300\031\202\376\177\000\000\000\312\033\260", '\000' <repeats 12 times>, "\001\000\000\000\000\000\000\000hw\030\217 \203\177\000\000P\344\366\216\203\177\000\000<address@hidden address@hidden@address@hidden|\000\000\000\000\002\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000`O\030\217\203\177\000\000\316\345\366\216\203\177\000\000\200\312DB(\000\006\200\300\301\031\202\376\177\000\000(\275\233\216\203\177\000\000X\214\234\216\203\177\000\000\320\302\031\202\376\177\000\000\302[\362\001\000\000\000\000\300\302\031\202\376\177\000\000}\347\366\216\203\177\000\000\000\000\000\000\000\000\000\000h\204\025\217\203\177\000\000\030J\030\217\203\177\000\000|W\366\216\203\177\000\000x\215\234\216\203\177\000\000 T\366\216\203\177\000\000\000\000\000\000\001\000\000\000\242\b\000\000\001", '\000' <repeats 11 times>, "h\204\025\217\203\177\000\000`\303\031\202\376\177\000\000\000u\030\217\203\177\000\000 address@hidden|\000\000\000\000|W\366\216\203\177\000\000\377\377\377\377\000\000\000\000\000\200\233\216\203\177\000\000X\214\234\216\203\177\000\000\030J\030\217\203\177\000\000\240\304\031\202\376\177\000\000m?\255\216\203\177\000\000\000\000\000\000\203\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\300\221\032\202\376\177\000\000\000\000\000\000 ", '\000' <repeats 19 times>, "\365\025\367\216\203\177\000\000\001\000\000\000\000\000\000\000\000P\366\216\203\177\000\000XZ\366\216\203\177\000\000\\\334\366\216\203\177\000\000\a\000\000\000\000\000\000\000&\260be", '\000' <repeats 12 times>, "\001\000\000\000\000\000\000\000hw\030\217\203\177\000\000P\344\366\216\203\177\000\000\000\000\000\000\000\000\000\000\300\303\031\202\376\177\000\000`\221\032\202\376\177\000\000ؑ\032\202\376\177\000\000\320\304\031\202\376\177\000\000\300\304\031\202\376\177\000\000\210\304\031\202\376\177\000\000\\\334\366\216\203\177\000\000\000\000\000\000\000\000\000\000.N=\366\000\000\000\000\002\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000`O\030\217\203\177\000\000\316\345\366\216\203\177\000\000\000\000\000\000\000\000\000\000\060\304\031\202\376\177\000\000(address@hidden@address@hidden@\000\000\000\000\000\000\000\000\000\001\000\000\000\060\b\000\000\001\000\000\000\240\3 05\031\202\376\177\000\000\060\200\025\217\203\177\000\000\320\305\031\202\376\177\000\000\000u\030\217\203\177\000\000\370\305\031\202\376\177\000\000\250q\030\217\203\177\000\000\001\000\000\000\000\000\000\000}\347\366\216\203\177\000\000\000\000\000\000\000\000\000\000\060\200\025\217\203\177\000\000\001", '\000' <repeats 15 times>, "\001\000\000\000\376\177\000\000\250q\030\217\203\177", '\000' <repeats 18 times>, "Xw\030\217\203\177\000\000\200q\030\217\203\177", '\000' <repeats 11 times>, "address@hidden@address@hidden"
        restarts = <optimized out>
        syncing = <optimized out>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]