From unknown Tue Jun 17 20:32:59 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#22526 <22526@debbugs.gnu.org> To: bug#22526 <22526@debbugs.gnu.org> Subject: Status: 25.0.90; Crash starting gnus Reply-To: bug#22526 <22526@debbugs.gnu.org> Date: Wed, 18 Jun 2025 03:32:59 +0000 retitle 22526 25.0.90; Crash starting gnus reassign 22526 emacs submitter 22526 Andy Moreton severity 22526 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 01 17:15:43 2016 Received: (at submit) by debbugs.gnu.org; 1 Feb 2016 22:15:43 +0000 Received: from localhost ([127.0.0.1]:55360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aQMl4-0003kd-UG for submit@debbugs.gnu.org; Mon, 01 Feb 2016 17:15:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41256) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aQMl3-0003kO-9X for submit@debbugs.gnu.org; Mon, 01 Feb 2016 17:15:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQMkk-0002es-US for submit@debbugs.gnu.org; Mon, 01 Feb 2016 17:15:36 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55015) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQMkk-0002em-NO for submit@debbugs.gnu.org; Mon, 01 Feb 2016 17:15:22 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60332) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQMkX-00086h-Sf for bug-gnu-emacs@gnu.org; Mon, 01 Feb 2016 17:15:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQMkL-0002cS-0x for bug-gnu-emacs@gnu.org; Mon, 01 Feb 2016 17:15:09 -0500 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:35825) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQMkK-0002bx-4F for bug-gnu-emacs@gnu.org; Mon, 01 Feb 2016 17:14:56 -0500 Received: by mail-wm0-x244.google.com with SMTP id l66so11095936wml.2 for ; Mon, 01 Feb 2016 14:14:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=to:subject:from:message-id:date:user-agent:mime-version :content-type:content-transfer-encoding; bh=qCs5kuIDE63E7Q3y4qlkmJcJnn5kl1eOsfXKSORPb6g=; b=OZbzF6NHqjb/sbe251b0ZHG0aogLg3jTnRv/j+mHlrHKycRnYtb0unA7OT4NI6DzRD GssLLcO2ptjnzNESz7pYW9x1f284KUfW1pGT9vexmBjjqkfP1aG3a/22x3FcnfLfQvHj iaIh28j4TzO0vGBhTX5SWH/V+3V9yTtmO/KxAjVCMr4r0zZOBGhl/Xc0eOfeDJJdRARI CVfcelcYr15eYG/Xb7Z0td6Oqmu1Au3X+g6CiqBHY45OSiRm/jKIRFC1T9+g89qWlNDs LCEgLyu0CR+k4DkLQSv9l/cwBuUwLnEHuMAdc89sMcOFtXL8i82ijNIIuGItiGcdMK1n Blcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:subject:from:message-id:date:user-agent :mime-version:content-type:content-transfer-encoding; bh=qCs5kuIDE63E7Q3y4qlkmJcJnn5kl1eOsfXKSORPb6g=; b=jlhDMFjV6IDUdPlo7rngOzrZjcAj+DBX95swTrXQQFj+1DK2xS9mPPy/GOobSV3prw 2A5uZNdStOTGe1D0HW5zlxRrqwQ5VD8RUYyYlHyBUeIcRz7wv1Zbj4x2A54i0aNhPYY5 voS1FzUX1LrAAcf5LYBJq9LSkNZSVcyhZPkck1gIyhuBVrhx28gTicQgW2GH9wAGXuh7 DRfmkhp106LxFWD1Pyz+stV92XkHM771mj5aWYuHrKd8DuQtl2s8dee5kjokZVKegiv6 1K9GbEPCFhu1z+zJqkARrEc8GzvqkSsv6AxWrAFFxtRh2zy5kBWTV8cr/Z3gir9PthyL A2uA== X-Gm-Message-State: AG10YOQPGDlv2GPUVB1kUGHq35LmO0J7ddj8xdVUGbfeuyhkBAbRJsh/eprJqyNLkrPERw== X-Received: by 10.28.35.14 with SMTP id j14mr14787960wmj.80.1454364895103; Mon, 01 Feb 2016 14:14:55 -0800 (PST) Received: from [192.168.0.4] (82-69-64-228.dsl.in-addr.zen.co.uk. [82.69.64.228]) by smtp.gmail.com with ESMTPSA id 73sm13555690wmm.7.2016.02.01.14.14.51 for (version=TLSv1/SSLv3 cipher=OTHER); Mon, 01 Feb 2016 14:14:53 -0800 (PST) To: bug-gnu-emacs@gnu.org Subject: 25.0.90; Crash starting gnus From: Andy Moreton Message-ID: <56AFD88B.5040904@gmail.com> Date: Mon, 1 Feb 2016 22:13:31 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Emacs (64bit mingw64 built from emacs-25 commit ee8b46699523) crashed during startup of gnus with "M-x gnus". Attaching gdb showed the following backtrace: Program received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 2148.0x1c88] 0x00007ffbba972d63 in KERNELBASE!DebugBreak () from C:\WINDOWS\system32\KernelBase.dll (gdb) #0 0x00007ffbba972d63 in KERNELBASE!DebugBreak () from C:\WINDOWS\system32\KernelBase.dll No symbol table info available. #1 0x000000040028fa24 in emacs_abort () at ../../src/w32fns.c:9794 button = 0x6 #2 0x000000040012f70b in terminate_due_to_signal (sig=0xb, backtrace_limit=0x28) at ../../src/emacs.c:380 No locals. #3 0x000000040015da7d in handle_fatal_signal (sig=0xb) at ../../src/sysdep.c:1601 No locals. #4 0x000000040015da4d in deliver_thread_signal (sig=0xb, handler=0x40015da65 ) at ../../src/sysdep.c:1575 old_errno = 0xc #5 0x000000040015dab9 in deliver_fatal_thread_signal (sig=0xb) at ../../src/sysdep.c:1613 No locals. #6 0x00000004003013a0 in _gnu_exception_handler (exception_data=0xbf21c0) at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt_handler.c:223 old_handler = action = 0x0 reset_fpu = 0x0 #7 0x00007ffbbded5826 in ntdll!__C_specific_handler () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #8 0x00007ffbbdee97fd in ntdll!.chkstk () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #9 0x00007ffbbde74c99 in ntdll!RtlImageNtHeaderEx () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #10 0x00007ffbbdee890a in ntdll!KiUserExceptionDispatcher () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #11 0x000000040017200c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411 tem = { i = 0xd510 } real_gap_loc = 0xf035 real_gap_loc_byte = 0xf035 old_gap_size = 0x7d0 current_size = 0xf804 #12 0x00000004001723c4 in make_gap (nbytes_added=0x830) at ../../src/insdel.c:481 No locals. #13 0x0000000400173384 in insert_from_string_1 (string=..., pos=0x0, pos_byte=0x0, nchars=0x1000, nbytes=0x1000, inherit=0x0, before_markers=0x1) at ../../src/insdel.c:916 outgoing_nbytes = 0x1000 intervals = 0xbf3160 #14 0x00000004001731d3 in insert_from_string_before_markers (string=..., pos=0x0, pos_byte=0x0, length=0x1000, length_byte=0x1000, inherit=0x0) at ../../src/insdel.c:882 opoint = 0xf035 #15 0x000000040024ff9d in Finternal_default_process_filter (proc=..., text=...) at ../../src/process.c:5527 old_read_only = { i = 0x0 } old_begv = 0x1 old_zv = 0xf035 old_begv_byte = 0x1 old_zv_byte = 0xf035 before = 0xf035 before_byte = 0xf035 opoint_byte = 0xf035 b = 0xbf3270 p = 0x73e8cb0 opoint = 0xf035 #16 0x00000004001eaea1 in Ffuncall (nargs=0x3, args=0xbf33d0) at ../../src/eval.c:2696 internal_argbuf = {{ i = 0xbf3380 }, { i = 0x400163f78 }, { i = 0x0 }, { i = 0x0 }, { i = 0xbf3340 }, { i = 0x4001298ee }, { i = 0x401b9a350 }, { i = 0x401ba1dd0 }} fun = { i = 0x4006a7df5 } original_fun = { i = 0x7ee0 } funcar = { i = 0x0 } numargs = 0x2 lisp_numargs = { i = 0x4006a7df0 } val = { i = 0xbf3370 } internal_args = 0xbf33d8 count = 0x8a #17 0x00000004001ea0f2 in Fapply (nargs=0x2, args=0xbf34c0) at ../../src/eval.c:2321 i = 0x3 numargs = 0x2 funcall_nargs = 0x3 funcall_args = 0xbf33d0 spread_arg = { i = 0x0 } fun = { i = 0x4006a7df5 } retval = { i = 0x4c029b0 } sa_avail = 0x3fe8 sa_count = 0x8a sa_must_free = 0x0 #18 0x00000004001ea7ab in apply1 (fn=..., arg=...) at ../../src/eval.c:2537 No locals. #19 0x000000040024f46d in read_process_output_call (fun_and_args=...) at ../../src/process.c:5237 No locals. #20 0x00000004001e7236 in internal_condition_case_1 (bfun=0x40024f3d0 , arg=..., handlers=..., hfun=0x40024f473 ) at ../../src/eval.c:1333 val = { i = 0x7ee0 } c = 0x42d5700 #21 0x000000040024fcae in read_and_dispose_of_process_output (p=0x73e8cb0, chars=0xbf3620 "Br8ebYN7_0u6GF6qYk230iNb0BSBNj9M2DWVV52fQk7v5E=ug@mail.gmail.com>\t , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x85 op = 0x3 vectorp = 0x9959e40 stack = { pc = 0x6c9e58f " ", byte_string = { i = 0x9ad3474 }, byte_string_start = 0x6c9e580 "\b\t!\t\t!Z_!# ", next = 0xbf5870 } top = 0xbf4ac8 result = { i = 0x702a354 } type = (unknown: 4) #27 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x1, arg_vector=0x9959e3d) at ../../src/eval.c:2921 val = { i = 0xbf5200 } syms_left = { i = 0x0 } next = { i = 0xb558 } lexenv = { i = 0x0 } count = 0x84 i = 0x1 optional = 0x0 rest = 0x0 #28 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbf5368) at ../../src/eval.c:2742 fun = { i = 0x9959e6d } original_fun = { i = 0xfffffffc07ab2690 } funcar = { i = 0xbf5330 } numargs = 0x1 lisp_numargs = { i = 0x401b9a350 } val = { i = 0x702a354 } internal_args = 0x9fc5d28 count = 0x83 #29 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x82 op = 0x1 vectorp = 0xa16faa0 stack = { pc = 0x6ed73db "\f /", byte_string = { i = 0xa1f9824 }, byte_string_start = 0x6ed73b8 "r\b! \b", next = 0xbf6120 } top = 0xbf5368 result = { i = 0xd510 } type = (unknown: 4) #30 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x1, arg_vector=0xa16fa9d) at ../../src/eval.c:2921 val = { i = 0xbf5a90 } syms_left = { i = 0x0 } next = { i = 0xb558 } lexenv = { i = 0x0 } count = 0x81 i = 0x1 optional = 0x0 rest = 0x0 #31 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbf5bf8) at ../../src/eval.c:2742 fun = { i = 0xa16fb3d } original_fun = { i = 0xfffffffc0842c0e8 } funcar = { i = 0xbf5c00 } numargs = 0x1 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbf5b80 } internal_args = 0xbf5b10 count = 0x80 #32 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x6c op = 0x1 vectorp = 0xa16a420 stack = { pc = 0x6ed3bb1 "\210dZe]\026Sdb\210 \v\002 !\026Rr\nq\210\016R\026T+\016G?!\210\016Q t\002r\vq\210db\210\016U ]\002r\016@!q\210 !)c\210 f\002 \016@! #\210\016V s\002\026V \"\210)\016Q }\002 \210.\006 \002000 \002\060\060\036W \016WA\") \002\060\036W \016J\016W$) \002\036W !\210\201X", byte_string = { i = 0xa1e9894 }, byte_string_start = 0x6ed3998 " \b#\031\n\033\f\v; \024", next = 0xbf69b0 } top = 0xbf5bf8 result = { i = 0xbf6140 } type = CONDITION_CASE #33 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0xa16a41d) at ../../src/eval.c:2921 val = { i = 0xbf6340 } syms_left = { i = 0x0 } next = { i = 0xd0b0 } lexenv = { i = 0x0 } count = 0x6a i = 0x3 optional = 0x0 rest = 0x1 #34 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbf64a8) at ../../src/eval.c:2742 fun = { i = 0xa169f7d } original_fun = { i = 0xfffffffc0842c3d0 } funcar = { i = 0xbf64b0 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbf6430 } internal_args = 0x7020648 count = 0x69 #35 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x66 op = 0x3 vectorp = 0xa171310 stack = { pc = 0x6ed1bd6 "\210r\016\024q\210eb\210 ! R", byte_string = { i = 0xa1f5734 }, byte_string_start = 0x6ed1ba0 " \b\t#\032\033\f; !", next = 0xbf7270 } top = 0xbf64a8 result = { i = 0x817d8c3 } type = (unknown: 4) #36 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0xa17130d) at ../../src/eval.c:2921 val = { i = 0xbf6bd0 } syms_left = { i = 0x0 } next = { i = 0xfffffffc084302f0 } lexenv = { i = 0x0 } count = 0x63 i = 0x3 optional = 0x1 rest = 0x0 #37 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbf6d38) at ../../src/eval.c:2742 fun = { i = 0xa1700dd } original_fun = { i = 0xfffffffc08430210 } funcar = { i = 0xbf6d40 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0x817d8c3 } internal_args = 0x2 count = 0x62 #38 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x62 op = 0x3 vectorp = 0xa171178 stack = { pc = 0x6ed18b9 "\210eb\210 ! B", byte_string = { i = 0xa1fce84 }, byte_string_start = 0x6ed1888 "\bq\210 \210\t \001\n \022", next = 0xbf7b20 } top = 0xbf6d38 result = { i = 0x7b03c45 } type = (unknown: 4) #39 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x2, arg_vector=0xa171175) at ../../src/eval.c:2921 val = { i = 0xbf7490 } syms_left = { i = 0x0 } next = { i = 0xfffffffc07a9d018 } lexenv = { i = 0x0 } count = 0x60 i = 0x2 optional = 0x1 rest = 0x0 #40 0x00000004001eb101 in Ffuncall (nargs=0x3, args=0xbf75f8) at ../../src/eval.c:2742 fun = { i = 0xa1700b5 } original_fun = { i = 0xfffffffc08429ce8 } funcar = { i = 0xbf7600 } numargs = 0x2 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbf7580 } internal_args = 0xbf7600 count = 0x5f #41 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x5e op = 0x2 vectorp = 0xa16b2c0 stack = { pc = 0x99e8e1d " \034", byte_string = { i = 0xa1ecd44 }, byte_string_start = 0x99e8e08 "r\b!q\210 \210\t \034", next = 0xbf83b0 } top = 0xbf75f8 result = { i = 0x0 } type = (unknown: 4) #42 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x0, arg_vector=0xa16b2bd) at ../../src/eval.c:2921 val = { i = 0xbf7d40 } syms_left = { i = 0x0 } next = { i = 0xfffffffc08429c78 } lexenv = { i = 0x0 } count = 0x5e i = 0x0 optional = 0x0 rest = 0x0 #43 0x00000004001eb101 in Ffuncall (nargs=0x1, args=0xbf7ea8) at ../../src/eval.c:2742 fun = { i = 0xa16b6dd } original_fun = { i = 0xa16b6dd } funcar = { i = 0x401ba7860 } numargs = 0x0 lisp_numargs = { i = 0xbf7e40 } val = { i = 0xd510 } internal_args = 0x9fc3f58 count = 0x5d #44 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x58 op = 0x0 vectorp = 0xa16b118 stack = { pc = 0x6ed4856 "0 7", byte_string = { i = 0xa1e5c14 }, byte_string_start = 0x6ed4830 "\b \031\030\0322;", next = 0xbf8c40 } top = 0xbf7ea8 result = { i = 0x702b7b4 } type = CONDITION_CASE #45 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x4, arg_vector=0xa16b115) at ../../src/eval.c:2921 val = { i = 0xbf85d0 } syms_left = { i = 0x0 } next = { i = 0xfffffffc08429ab8 } lexenv = { i = 0x0 } count = 0x54 i = 0x4 optional = 0x0 rest = 0x0 #46 0x00000004001eb101 in Ffuncall (nargs=0x5, args=0xbf8738) at ../../src/eval.c:2742 fun = { i = 0xa16b1c5 } original_fun = { i = 0xfffffffc084299d8 } funcar = { i = 0xa16b705 } numargs = 0x4 lisp_numargs = { i = 0xbf86e0 } val = { i = 0x4211000 } internal_args = 0x40012948e count = 0x53 #47 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x53 op = 0x4 vectorp = 0xa16b708 stack = { pc = 0x6ed4a3e " ", byte_string = { i = 0xa1ecc84 }, byte_string_start = 0x6ed4a38 "\b\t $ ", next = 0xbf94d0 } top = 0xbf8738 result = { i = 0xbf8cc0 } type = (unknown: 4) #48 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x4, arg_vector=0xa16b705) at ../../src/eval.c:2921 val = { i = 0xbf8e60 } syms_left = { i = 0x0 } next = { i = 0xfffffffc07a9d018 } lexenv = { i = 0x0 } count = 0x4f i = 0x4 optional = 0x1 rest = 0x0 #49 0x00000004001eb101 in Ffuncall (nargs=0x5, args=0xbf8fc8) at ../../src/eval.c:2742 fun = { i = 0xa16b735 } original_fun = { i = 0xfffffffc08429cb0 } funcar = { i = 0x6e } numargs = 0x4 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbf8f50 } internal_args = 0x6e92f04 count = 0x4e #50 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x4d op = 0x4 vectorp = 0x9da4038 stack = { pc = 0x6e4c667 ") ", byte_string = { i = 0x9f01494 }, byte_string_start = 0x6e4c618 "\b!\031\n \026", next = 0xbf9d70 } top = 0xbf8fc8 result = { i = 0x702c6a4 } type = (unknown: 4) #51 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0x9da4035) at ../../src/eval.c:2921 val = { i = 0xbf96f0 } syms_left = { i = 0x0 } next = { i = 0xfffffffc07a9d018 } lexenv = { i = 0x0 } count = 0x4a i = 0x3 optional = 0x1 rest = 0x0 #52 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbf9858) at ../../src/eval.c:2742 fun = { i = 0x9da40cd } original_fun = { i = 0xfffffffc07a9cfe0 } funcar = { i = 0xbf9860 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbf97e0 } internal_args = 0x964d9a8 count = 0x49 #53 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x43 op = 0x3 vectorp = 0x78728d0 stack = { pc = 0x7eece19 "\026\026) \210 \016\027! L", byte_string = { i = 0x4b78144 }, byte_string_start = 0x7eecde0 "\b! \021 \032 \025", next = 0xbfa600 } top = 0xbf9858 result = { i = 0xa028a03 } type = (unknown: 4) #54 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0x78728cd) at ../../src/eval.c:2921 val = { i = 0xbf9f90 } syms_left = { i = 0x0 } next = { i = 0xfffffffc07a9d018 } lexenv = { i = 0x0 } count = 0x40 i = 0x3 optional = 0x1 rest = 0x0 #55 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbfa0f8) at ../../src/eval.c:2742 fun = { i = 0x9959e0d } original_fun = { i = 0xfffffffc07abee58 } funcar = { i = 0xbfa100 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfa080 } internal_args = 0x96532c0 count = 0x3f #56 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x3e op = 0x3 vectorp = 0x9da4038 stack = { pc = 0x6e4c62b " O", byte_string = { i = 0x9f01494 }, byte_string_start = 0x6e4c618 "\b!\031\n \026", next = 0xbfaea0 } top = 0xbfa0f8 result = { i = 0x70690b4 } type = (unknown: 4) #57 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0x9da4035) at ../../src/eval.c:2921 val = { i = 0xbfa820 } syms_left = { i = 0x0 } next = { i = 0xfffffffc07a9d018 } lexenv = { i = 0x0 } count = 0x3b i = 0x3 optional = 0x1 rest = 0x0 #58 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbfa988) at ../../src/eval.c:2742 fun = { i = 0x9da40cd } original_fun = { i = 0xfffffffc07a9cfe0 } funcar = { i = 0xbfa950 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfa910 } internal_args = 0xd count = 0x3a #59 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x39 op = 0x3 vectorp = 0xa183298 stack = { pc = 0x6eec85d " \025= 8", byte_string = { i = 0xa437aa4 }, byte_string_start = 0x6eec838 "\b!\031 \t#\210\n\b\v $", next = 0xbfb750 } top = 0xbfa988 result = { i = 0x0 } type = (unknown: 4) #60 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x1, arg_vector=0xa183295) at ../../src/eval.c:2921 val = { i = 0xbfb0c0 } syms_left = { i = 0x0 } next = { i = 0xfffffffc083fc168 } lexenv = { i = 0x0 } count = 0x35 i = 0x1 optional = 0x1 rest = 0x0 #61 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbfb228) at ../../src/eval.c:2742 fun = { i = 0xa18333d } original_fun = { i = 0xfffffffc08419a48 } funcar = { i = 0xbfb230 } numargs = 0x1 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfb1b0 } internal_args = 0xbfb230 count = 0x34 #62 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x2d op = 0x1 vectorp = 0xa183398 stack = { pc = 0x6eecb36 "\026U\016B \001\016B\026O\016V \001\002 \210\016@!\026W \016U\" \026A\026X\016J\016A\"\026J \210\201`", byte_string = { i = 0xa437204 }, byte_string_start = 0x6eec948 "\b\t\"J\032\b!@= \023", next = 0xbfbff0 } top = 0xbfb228 result = { i = 0x0 } type = (unknown: 4) #63 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x3, arg_vector=0xa183395) at ../../src/eval.c:2921 val = { i = 0xbfb970 } syms_left = { i = 0x0 } next = { i = 0xfffffffc0842d360 } lexenv = { i = 0x0 } count = 0x2a i = 0x3 optional = 0x1 rest = 0x0 #64 0x00000004001eb101 in Ffuncall (nargs=0x4, args=0xbfbad8) at ../../src/eval.c:2742 fun = { i = 0xa1836fd } original_fun = { i = 0xfffffffc08400d68 } funcar = { i = 0xbfbae0 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfba60 } internal_args = 0x965a970 count = 0x29 #65 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x27 op = 0x3 vectorp = 0xa1741a8 stack = { pc = 0x6ef6b89 "\035\t ?", byte_string = { i = 0xa42d054 }, byte_string_start = 0x6ef6b70 " \b!#\210\b!\031\b!\032\t \031", next = 0xbfc8a0 } top = 0xbfbad8 result = { i = 0xbfc020 } type = (unknown: 4) #66 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x6, arg_vector=0xa1741a5) at ../../src/eval.c:2921 val = { i = 0xbfc210 } syms_left = { i = 0x0 } next = { i = 0xfffffffc0842d360 } lexenv = { i = 0x0 } count = 0x21 i = 0x6 optional = 0x1 rest = 0x0 #67 0x00000004001eb101 in Ffuncall (nargs=0x7, args=0xbfc378) at ../../src/eval.c:2742 fun = { i = 0xa17c11d } original_fun = { i = 0xfffffffc07a9b8f8 } funcar = { i = 0xbfc380 } numargs = 0x6 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfc300 } internal_args = 0x9fc1240 count = 0x20 #68 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x1e op = 0x6 vectorp = 0xa17c068 stack = { pc = 0x6ef6b2b " \034", byte_string = { i = 0xa42a9b4 }, byte_string_start = 0x6ef6b18 "\030\t I", next = 0xbfd150 } top = 0xbfc378 result = { i = 0x2 } type = (unknown: 4) #69 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x7, arg_vector=0xa17c065) at ../../src/eval.c:2921 val = { i = 0xbfcac0 } syms_left = { i = 0x0 } next = { i = 0xfffffffc0842d360 } lexenv = { i = 0x0 } count = 0x17 i = 0x7 optional = 0x1 rest = 0x0 #70 0x00000004001eb101 in Ffuncall (nargs=0x8, args=0xbfcc28) at ../../src/eval.c:2742 fun = { i = 0xa17c0ed } original_fun = { i = 0xfffffffc07abb818 } funcar = { i = 0xbfcc30 } numargs = 0x7 lisp_numargs = { i = 0x401b9a350 } val = { i = 0x36 } internal_args = 0x400876700 count = 0x16 #71 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x10 op = 0x7 vectorp = 0xa161880 stack = { pc = 0x6e79f5b ".\006 ", byte_string = { i = 0xa100a34 }, byte_string_start = 0x6e79ee0 "\b=\t \t", next = 0xbfd9d0 } top = 0xbfcc28 result = { i = 0x400720ea0 } type = (unknown: 4) #72 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x2, arg_vector=0xa16187d) at ../../src/eval.c:2921 val = { i = 0xbfd370 } syms_left = { i = 0x0 } next = { i = 0xfffffffc0842d360 } lexenv = { i = 0x0 } count = 0xc i = 0x2 optional = 0x1 rest = 0x0 #73 0x00000004001eb101 in Ffuncall (nargs=0x3, args=0xbfd4d8) at ../../src/eval.c:2742 fun = { i = 0xa161945 } original_fun = { i = 0xfffffffc07745ec8 } funcar = { i = 0x401b9a350 } numargs = 0x2 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfd460 } internal_args = 0xa count = 0xb #74 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0xb op = 0x2 vectorp = 0xa161980 stack = { pc = 0x6e79fc8 " ", byte_string = { i = 0xa101194 }, byte_string_start = 0x6e79fb8 "m \f", next = 0xbfe250 } top = 0xbfd4d8 result = { i = 0x0 } type = (unknown: 4) #75 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x1, arg_vector=0xa16197d) at ../../src/eval.c:2921 val = { i = 0xbfdbf0 } syms_left = { i = 0x0 } next = { i = 0xfffffffffecce038 } lexenv = { i = 0x0 } count = 0xa i = 0x1 optional = 0x1 rest = 0x0 #76 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbfdd58) at ../../src/eval.c:2742 fun = { i = 0xa1619ad } original_fun = { i = 0xfffffffc08425568 } funcar = { i = 0x401b9a350 } numargs = 0x1 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfdce0 } internal_args = 0xd510 count = 0x9 #77 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x0, args=0x0) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x9 op = 0x1 vectorp = 0x8f078c0 stack = { pc = 0x9f345b9 " ", byte_string = { i = 0x6f919a4 }, byte_string_start = 0x9f34588 "m \f", next = 0xbff100 } top = 0xbfdd58 result = { i = 0xbfe2d0 } type = (unknown: 4) #78 0x00000004001ebc33 in funcall_lambda (fun=..., nargs=0x1, arg_vector=0x8f078bd) at ../../src/eval.c:2921 val = { i = 0xbfe470 } syms_left = { i = 0x0 } next = { i = 0xfffffffffecce038 } lexenv = { i = 0x0 } count = 0x8 i = 0x1 optional = 0x1 rest = 0x0 #79 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbfe738) at ../../src/eval.c:2742 fun = { i = 0x8f07915 } original_fun = { i = 0xfffffffc08423c40 } funcar = { i = 0x4006a4d48 } numargs = 0x1 lisp_numargs = { i = 0xbfe580 } val = { i = 0xbfe560 } internal_args = 0x40012b6b3 count = 0x7 #80 0x00000004001e05e9 in Ffuncall_interactively (nargs=0x2, args=0xbfe738) at ../../src/callint.c:248 speccount = 0x6 #81 0x00000004001ead26 in Ffuncall (nargs=0x3, args=0xbfe730) at ../../src/eval.c:2673 fun = { i = 0x4006a4d4d } original_fun = { i = 0x6858 } funcar = { i = 0x400317144 } numargs = 0x2 lisp_numargs = { i = 0xbfe6b0 } val = { i = 0xbfe700 } internal_args = 0x0 count = 0x5 #82 0x00000004001e2f43 in Fcall_interactively (function=..., record_flag=..., keys=...) at ../../src/callint.c:836 val = { i = 0xbfe840 } args = 0xbfe730 visargs = 0xbfe748 specs = { i = 0x6f8ad84 } filter_specs = { i = 0x6f8ad84 } teml = { i = 0x0 } up_event = { i = 0x0 } enable = { i = 0x0 } sa_avail = 0x3fb6 sa_count = 0x5 sa_must_free = 0x0 speccount = 0x5 next_event = 0x1 prefix_arg = { i = 0x0 } string = 0xbfe790 "P" tem = 0x4006d30dd "" varies = 0xbfe760 "" i = 0x3 nargs = 0x3 mark = 0xbfe9f0 arg_from_tty = 0x0 key_count = 0x1 record_then_fail = 0x0 save_this_command = { i = 0xfffffffc08423c40 } save_last_command = { i = 0xfffffffffec30770 } save_this_original_command = { i = 0xfffffffc08423c40 } save_real_this_command = { i = 0xfffffffc08423c40 } #83 0x00000004001eaed9 in Ffuncall (nargs=0x4, args=0xbfebe8) at ../../src/eval.c:2700 internal_argbuf = {{ i = 0xfffffffc08423c40 }, { i = 0x0 }, { i = 0x401b9a350 }, { i = 0x4003f1ced }, { i = 0xe380 }, { i = 0x4001c8409 }, { i = 0x0 }, { i = 0x4001f6733 }} fun = { i = 0x4006a4d7d } original_fun = { i = 0xfffffffffec0a308 } funcar = { i = 0x401b9a350 } numargs = 0x3 lisp_numargs = { i = 0x401b9a350 } val = { i = 0xbfeb40 } internal_args = 0xbfebf0 count = 0x4 #84 0x000000040023f911 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0x1, args=0xbff490) at ../../src/bytecode.c:880 targets = {0x40024361c , 0x400243694 , 0x400243696 , 0x400243698 , 0x40024369a , 0x40024369a , 0x400243705 , 0x400243783 , 0x40023ee1b , 0x40023ee1d , 0x40023ee1f , 0x40023ee21 , 0x40023ee23 , 0x40023ee23 , 0x40023ee29 , 0x40023edde , 0x40023f4ac , 0x40023f4ae , 0x40023f4b0 , 0x40023f4b2 , 0x40023f4b4 , 0x40023f4b4 , 0x40023f4f5 , 0x40023f4ba , 0x40023f819 , 0x40023f81b , 0x40023f81d , 0x40023f81f , 0x40023f821 , 0x40023f821 , 0x40023f7c1 , 0x40023f7de , 0x40023f8e1 , 0x40023f8e3 , 0x40023f8e5 , 0x40023f8e7 , 0x40023f8e9 , 0x40023f8e9 , 0x40023f889 , 0x40023f8a6 , 0x40023f9ab , 0x40023f9ad , 0x40023f9af , 0x40023f9b1 , 0x40023f9b3 , 0x40023f9b3 , 0x40023f953 , 0x40023f970 , 0x400240c2a , 0x400240aca , 0x400240ac1 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x400240e89 , 0x400240fb8 , 0x400241028 , 0x400241099 , 0x40024110b , 0x40023f2c5 , 0x40023f350 , 0x400241192 , 0x40023f1d5 , 0x40023f3bb , 0x40024120a , 0x400241275 , 0x4002412c3 , 0x40024132e , 0x400241386 , 0x400241466 , 0x4002414b4 , 0x40024151f , 0x4002415aa , 0x4002415f8 , 0x400241646 , 0x4002416b1 , 0x40024171c , 0x400241787 , 0x400241812 , 0x40024186a , 0x4002418c2 , 0x4002419a2 , 0x400241a3e , 0x400241ada , 0x400241d62 , 0x400241dd3 , 0x400241e44 , 0x400241eb5 , 0x400241f26 , 0x400241f7e , 0x40024201b , 0x400242073 , 0x4002420cb , 0x400242123 , 0x40024223e , 0x400240932 , 0x4002422a9 , 0x4002422f7 , 0x4002423d2 , 0x40024243d , 0x4002424a8 , 0x4002424f6 , 0x40024254d , 0x4002425a4 , 0x400242603 , 0x40024361c , 0x40024265e , 0x4002426aa , 0x4002426f6 , 0x400242742 , 0x40024278e , 0x4002427da , 0x400240932 , 0x40024361c , 0x400242828 , 0x400242883 , 0x4002428d1 , 0x40024291f , 0x40024298a , 0x4002429f5 , 0x400242a43 , 0x400242b68 , 0x400242bd3 , 0x400242c3e , 0x400242ca9 , 0x400242cf5 , 0x40024361c , 0x400240851 , 0x40023fa6b , 0x40023f036 , 0x40023fbda , 0x40023fd79 , 0x40023ff09 , 0x4002407d1 , 0x400240814 , 0x40023f768 , 0x4002408e6 , 0x40024096f , 0x400240a00 , 0x400240a4c , 0x400240c7a , 0x400240d08 , 0x400240d93 , 0x400240e00 , 0x40023fa1a , 0x400242d43 , 0x400242dce , 0x400242e1c , 0x400242e6a , 0x400242eb8 , 0x400242f06 , 0x400242f71 , 0x400242fdc , 0x400243047 , 0x4002430b2 , 0x400243229 , 0x400243294 , 0x4002432ff , 0x40024334d , 0x4002433b8 , 0x400243423 , 0x400243482 , 0x4002434e1 , 0x40024217b , 0x4002421d3 , 0x400243539 , 0x4002435ab , 0x40024361c , 0x400240099 , 0x4002401db , 0x40024035f , 0x4002404e3 , 0x40024065a , 0x4002413de , 0x40024191a , 0x40024234a , 0x400243828 , 0x4002438a9 , 0x40024361c , 0x40024361c , 0x400243951 , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x40024361c , 0x4002439e4 } count = 0x4 op = 0x3 vectorp = 0x4003f1cf0 stack = { pc = 0x400650d45 "\006\006\071 ", byte_string = { i = 0x4003f1ccc }, byte_string_start = 0x400650cca "\020 ? \023", next = 0x0 } top = 0xbfebe8 result = { i = 0xe508 } type = (unknown: 4) #85 0x00000004001eb7dc in funcall_lambda (fun=..., nargs=0x1, arg_vector=0xbff488) at ../../src/eval.c:2855 size = 0x5 val = { i = 0xbff320 } syms_left = { i = 0x1006 } next = { i = 0x401b84de0 } lexenv = { i = 0x401b84e60 } count = 0x4 i = 0x40012b6d3 optional = 0x0 rest = 0x0 #86 0x00000004001eb101 in Ffuncall (nargs=0x2, args=0xbff480) at ../../src/eval.c:2742 fun = { i = 0x4003f1c9d } original_fun = { i = 0x3db0 } funcar = { i = 0x56afd54d } numargs = 0x1 lisp_numargs = { i = 0x0 } val = { i = 0x1 } internal_args = 0x3 count = 0x3 #87 0x00000004001ea803 in call1 (fn=..., arg1=...) at ../../src/eval.c:2552 No locals. #88 0x0000000400135184 in command_loop_1 () at ../../src/keyboard.c:1461 scount = 0x2 cmd = { i = 0xfffffffc08423c40 } keybuf = {{ i = 0x36 }, { i = 0xd }, { i = 0x0 }, { i = 0x4001c8b1d }, { i = 0xbff530 }, { i = 0x4001298ee }, { i = 0x401b9a350 }, { i = 0x401ba22d8 }, { i = 0x400792b85 }, { i = 0x0 }, { i = 0xbff5c0 }, { i = 0x4001ec93c }, { i = 0x0 }, { i = 0x0 }, { i = 0x401b9a350 }, { i = 0x401ba22d8 }, { i = 0x40043b855 }, { i = 0x4008ce470 }, { i = 0x0 }, { i = 0x4001ec34a }, { i = 0xbff5b0 }, { i = 0x4001298ee }, { i = 0x401b9a350 }, { i = 0x400129801 }, { i = 0x0 }, { i = 0x401ba22d8 }, { i = 0xbff640 }, { i = 0x4001e74d8 }, { i = 0x0 }, { i = 0x4001e8d1f }} i = 0x1 prev_modiff = 0x642 prev_buffer = 0x91dc820 already_adjusted = 0x0 #89 0x00000004001e7186 in internal_condition_case (bfun=0x4001347b5 , handlers=..., hfun=0x400133c00 ) at ../../src/eval.c:1309 val = { i = 0x401b9f600 } c = 0xcd52b0 #90 0x000000040013433e in command_loop_2 (ignore=...) at ../../src/keyboard.c:1089 val = { i = 0xbff780 } #91 0x00000004001e6677 in internal_catch (tag=..., func=0x40013430c , arg=...) at ../../src/eval.c:1074 val = { i = 0x0 } c = 0xcd5140 #92 0x0000000400134291 in command_loop () at ../../src/keyboard.c:1068 No locals. #93 0x0000000000000000 in ?? () No symbol table info available. Backtrace stopped: previous frame inner to this frame (corrupt stack?) Lisp Backtrace: "internal-default-process-filter" (0xbf33d8) "accept-process-output" (0xbf4ad0) "nnheader-accept-process-output" (0xbf5370) "nntp-accept-process-output" (0xbf5c00) "nntp-send-command-nodelete" (0xbf64b0) "nntp-send-xover-command" (0xbf6d40) "nntp-retrieve-headers-with-xover" (0xbf7600) 0xa16b6d8 PVEC_COMPILED "nntp-with-open-group-function" (0xbf8740) "nntp-retrieve-headers" (0xbf8fd0) "gnus-retrieve-headers" (0xbf9860) "gnus-cache-retrieve-headers" (0xbfa100) "gnus-retrieve-headers" (0xbfa990) "gnus-fetch-headers" (0xbfb230) "gnus-select-newsgroup" (0xbfbae0) "gnus-summary-read-group-1" (0xbfc380) "gnus-summary-read-group" (0xbfcc30) "gnus-group-read-group" (0xbfd4e0) "gnus-group-select-group" (0xbfdd60) "gnus-topic-select-group" (0xbfe740) "funcall-interactively" (0xbfe738) "call-interactively" (0xbfebf0) "command-execute" (0xbff488) From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 07 00:42:41 2016 Received: (at 22526) by debbugs.gnu.org; 7 Feb 2016 05:42:41 +0000 Received: from localhost ([127.0.0.1]:36280 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSI7N-0007Fb-JN for submit@debbugs.gnu.org; Sun, 07 Feb 2016 00:42:41 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:44204) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSI7L-0007FT-7n for 22526@debbugs.gnu.org; Sun, 07 Feb 2016 00:42:39 -0500 Received: from cpe-60-225-211-161.nsw.bigpond.net.au ([60.225.211.161] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aSI6z-0005T0-9G; Sun, 07 Feb 2016 06:42:17 +0100 From: Lars Ingebrigtsen To: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> Date: Sun, 07 Feb 2016 16:42:11 +1100 In-Reply-To: <56AFD88B.5040904@gmail.com> (Andy Moreton's message of "Mon, 1 Feb 2016 22:13:31 +0000") Message-ID: <87pow9cc0c.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-MailScanner-ID: 1aSI6z-0005T0-9G X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1455428538.01922@LuGT9plmbpkoUyTK+XsBmg X-Spam-Status: No X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Andy Moreton writes: [...] > ../../src/insdel.c:411 > tem = { > i = 0xd510 > } > real_gap_loc = 0xf035 > real_gap_loc_byte = 0xf035 > old_gap_size = 0x7d0 > current_size = 0xf804 > #12 0x00000004001723c4 in make_gap (nbytes_added=0x830) at > ../../src/insdel.c:481 Hm, that sounds kinda serious... [...] > #15 0x000000040024ff9d in Finternal_default_process_filter (proc=..., > text=...) at ../../src/process.c:5527 > old_read_only = { > i = 0x0 > } > old_begv = 0x1 > old_zv = 0xf035 > old_begv_byte = 0x1 > old_zv_byte = 0xf035 > before = 0xf035 > before_byte = 0xf035 > opoint_byte = 0xf035 > b = 0xbf3270 > p = 0x73e8cb0 > opoint = 0xf035 It looks like Emacs is segfaulting while inserting stuff from a filter into a buffer, if I'm reading this correctly. But I have no idea what could be causing it. Anybody? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 07 11:00:58 2016 Received: (at 22526) by debbugs.gnu.org; 7 Feb 2016 16:00:58 +0000 Received: from localhost ([127.0.0.1]:37352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSRli-00084i-Fv for submit@debbugs.gnu.org; Sun, 07 Feb 2016 11:00:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56801) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSRlg-00084W-NL for 22526@debbugs.gnu.org; Sun, 07 Feb 2016 11:00:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSRlX-0001xw-NX for 22526@debbugs.gnu.org; Sun, 07 Feb 2016 11:00:51 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57258) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSRlX-0001xs-Gi; Sun, 07 Feb 2016 11:00:47 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4049 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aSRlW-0007Y3-GY; Sun, 07 Feb 2016 11:00:47 -0500 Date: Sun, 07 Feb 2016 18:00:27 +0200 Message-Id: <83h9hkse78.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-reply-to: <87pow9cc0c.fsf@gnus.org> (message from Lars Ingebrigtsen on Sun, 07 Feb 2016 16:42:11 +1100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) > From: Lars Ingebrigtsen > Date: Sun, 07 Feb 2016 16:42:11 +1100 > Cc: 22526@debbugs.gnu.org > > Andy Moreton writes: > > [...] > > > ../../src/insdel.c:411 > > tem = { > > i = 0xd510 > > } > > real_gap_loc = 0xf035 > > real_gap_loc_byte = 0xf035 > > old_gap_size = 0x7d0 > > current_size = 0xf804 > > #12 0x00000004001723c4 in make_gap (nbytes_added=0x830) at > > ../../src/insdel.c:481 > > Hm, that sounds kinda serious... It is. Something very basic in inserting text into a buffer went wrong. > > #15 0x000000040024ff9d in Finternal_default_process_filter (proc=..., > > text=...) at ../../src/process.c:5527 > > old_read_only = { > > i = 0x0 > > } > > old_begv = 0x1 > > old_zv = 0xf035 > > old_begv_byte = 0x1 > > old_zv_byte = 0xf035 > > before = 0xf035 > > before_byte = 0xf035 > > opoint_byte = 0xf035 > > b = 0xbf3270 > > p = 0x73e8cb0 > > opoint = 0xf035 > > It looks like Emacs is segfaulting while inserting stuff from a filter > into a buffer, if I'm reading this correctly. But I have no idea what > could be causing it. Anybody? Hard to tell without a reproducible recipe, or at least some additional info. If the session is still running in a debugger, I might ask some questions about some variables. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 07 15:59:34 2016 Received: (at submit) by debbugs.gnu.org; 7 Feb 2016 20:59:34 +0000 Received: from localhost ([127.0.0.1]:37581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSWQg-0008HT-Dj for submit@debbugs.gnu.org; Sun, 07 Feb 2016 15:59:34 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36003) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSWQd-0008HF-Ve for submit@debbugs.gnu.org; Sun, 07 Feb 2016 15:59:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSWQY-0005Dn-2n for submit@debbugs.gnu.org; Sun, 07 Feb 2016 15:59:26 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:56351) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSWQY-0005Dj-0O for submit@debbugs.gnu.org; Sun, 07 Feb 2016 15:59:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSWQX-00066P-7F for bug-gnu-emacs@gnu.org; Sun, 07 Feb 2016 15:59:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSWQT-0005Cx-V7 for bug-gnu-emacs@gnu.org; Sun, 07 Feb 2016 15:59:25 -0500 Received: from plane.gmane.org ([80.91.229.3]:43940) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSWQT-0005Cr-OG for bug-gnu-emacs@gnu.org; Sun, 07 Feb 2016 15:59:21 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aSWQR-0000CA-8c for bug-gnu-emacs@gnu.org; Sun, 07 Feb 2016 21:59:19 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Feb 2016 21:59:19 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Feb 2016 21:59:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Sun, 07 Feb 2016 20:58:57 +0000 Lines: 10 Message-ID: <864mdk44q6.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:ybDjKH2BIrW70kLs3+TwZER6gRk= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sun 07 Feb 2016, Eli Zaretskii wrote: > Hard to tell without a reproducible recipe, or at least some > additional info. If the session is still running in a debugger, I > might ask some questions about some variables. I don't have that session running any more. Please do make suggestions for things to look at in gdb that I can try if I manage to reproduce the problem. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 07 16:06:11 2016 Received: (at 22526) by debbugs.gnu.org; 7 Feb 2016 21:06:11 +0000 Received: from localhost ([127.0.0.1]:37602 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSWX4-0008TX-Vm for submit@debbugs.gnu.org; Sun, 07 Feb 2016 16:06:11 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37808) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aSWX3-0008TL-Ok for 22526@debbugs.gnu.org; Sun, 07 Feb 2016 16:06:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSWWv-0006IB-Eh for 22526@debbugs.gnu.org; Sun, 07 Feb 2016 16:06:04 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44484) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSWWv-0006I7-Ay; Sun, 07 Feb 2016 16:06:01 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1070 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aSWWu-0003Qf-I6; Sun, 07 Feb 2016 16:06:01 -0500 Date: Sun, 07 Feb 2016 23:05:42 +0200 Message-Id: <83mvrcqli1.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <864mdk44q6.fsf@gmail.com> (message from Andy Moreton on Sun, 07 Feb 2016 20:58:57 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) > From: Andy Moreton > Date: Sun, 07 Feb 2016 20:58:57 +0000 > > On Sun 07 Feb 2016, Eli Zaretskii wrote: > > Hard to tell without a reproducible recipe, or at least some > > additional info. If the session is still running in a debugger, I > > might ask some questions about some variables. > > I don't have that session running any more. Please do make suggestions > for things to look at in gdb that I can try if I manage to reproduce the > problem. Thanks. AFAIU, the crash was here: /* Put an anchor. */ *(Z_ADDR) = 0; <<<<<<<<<<<<<<<<< So the first question is, of course, what is the value of Z_ADDR? Next question is what are the values of the variables in the expression to which Z_ADDR expands: /* Address of end of buffer. */ #define Z_ADDR (current_buffer->text->beg + current_buffer->text->gap_size + current_buffer->text->z_byte - BEG_BYTE) From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 10 21:07:36 2016 Received: (at submit) by debbugs.gnu.org; 11 Feb 2016 02:07:37 +0000 Received: from localhost ([127.0.0.1]:35544 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTgfQ-0005ds-FK for submit@debbugs.gnu.org; Wed, 10 Feb 2016 21:07:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35757) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTgfO-0005da-0x for submit@debbugs.gnu.org; Wed, 10 Feb 2016 21:07:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTgfH-0006rD-4E for submit@debbugs.gnu.org; Wed, 10 Feb 2016 21:07:28 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:39077) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTgfH-0006r9-1A for submit@debbugs.gnu.org; Wed, 10 Feb 2016 21:07:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54936) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTgfF-0002qM-As for bug-gnu-emacs@gnu.org; Wed, 10 Feb 2016 21:07:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTgfB-0006oF-4V for bug-gnu-emacs@gnu.org; Wed, 10 Feb 2016 21:07:25 -0500 Received: from plane.gmane.org ([80.91.229.3]:34299) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTgfA-0006mF-QF for bug-gnu-emacs@gnu.org; Wed, 10 Feb 2016 21:07:21 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aTgf5-0005i7-J6 for bug-gnu-emacs@gnu.org; Thu, 11 Feb 2016 03:07:15 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Feb 2016 03:07:15 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Feb 2016 03:07:15 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Thu, 11 Feb 2016 02:06:54 +0000 Lines: 452 Message-ID: <86twlg2e69.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:xEUoTQQvn67Q9YNYjpHgOD8wl/A= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sun 07 Feb 2016, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Sun, 07 Feb 2016 20:58:57 +0000 >> >> On Sun 07 Feb 2016, Eli Zaretskii wrote: >> > Hard to tell without a reproducible recipe, or at least some >> > additional info. If the session is still running in a debugger, I >> > might ask some questions about some variables. >> >> I don't have that session running any more. Please do make suggestions >> for things to look at in gdb that I can try if I manage to reproduce the >> problem. > > Thanks. > > AFAIU, the crash was here: > > /* Put an anchor. */ > *(Z_ADDR) = 0; <<<<<<<<<<<<<<<<< > > So the first question is, of course, what is the value of Z_ADDR? > > Next question is what are the values of the variables in the > expression to which Z_ADDR expands: > > /* Address of end of buffer. */ > #define Z_ADDR (current_buffer->text->beg + current_buffer->text->gap_size + current_buffer->text->z_byte - BEG_BYTE) I've seen a similar crash again with emacs-25 built from changeset 456c0a31. Lisp Backtrace: "internal-default-process-filter" (0xbf2248) "accept-process-output" (0xbf3940) "nnheader-accept-process-output" (0xbf41e0) "nntp-accept-process-output" (0xbf4a70) "nntp-send-command-nodelete" (0xbf5320) "nntp-send-xover-command" (0xbf5bb0) "nntp-retrieve-headers-with-xover" (0xbf6470) 0x9dab1b8 PVEC_COMPILED "nntp-with-open-group-function" (0xbf75b0) "nntp-retrieve-headers" (0xbf7e40) "gnus-retrieve-headers" (0xbf86d0) "gnus-cache-retrieve-headers" (0xbf8f70) "gnus-retrieve-headers" (0xbf9800) "gnus-fetch-headers" (0xbfa0a0) "gnus-select-newsgroup" (0xbfa950) "gnus-summary-read-group-1" (0xbfb1f0) "gnus-summary-read-group" (0xbfbaa0) "gnus-summary-next-group" (0xbfc350) "gnus-summary-walk-group-buffer" (0xbfcc10) "gnus-summary-next-article" (0xbfd4b0) "gnus-summary-next-unread-article" (0xbfdd50) "gnus-summary-next-page" (0xbfe740) "funcall-interactively" (0xbfe738) "call-interactively" (0xbfebf0) "command-execute" (0xbff488) The C backtrace from "bt full" starts with the frames below (details of current_buffer follow): #1 0x000000040028fbc4 in emacs_abort () at ../../src/w32fns.c:9794 button = 0x6 #2 0x000000040012f72b in terminate_due_to_signal (sig=0xb, backtrace_limit=0x28) at ../../src/emacs.c:380 No locals. #3 0x000000040015da9d in handle_fatal_signal (sig=0xb) at ../../src/sysdep.c:1601 No locals. #4 0x000000040015da6d in deliver_thread_signal (sig=0xb, handler=0x40015da85 ) at ../../src/sysdep.c:1575 old_errno = 0xc #5 0x000000040015dad9 in deliver_fatal_thread_signal (sig=0xb) at ../../src/sysdep.c:1613 No locals. #6 0x0000000400301540 in _gnu_exception_handler (exception_data=0xbf1040) at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt_handler.c:223 old_handler = action = 0x0 reset_fpu = 0x0 #7 0x00007ff901ae5ac6 in ntdll!__C_specific_handler () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #8 0x00007ff901af9a9d in ntdll!.chkstk () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #9 0x00007ff901a84f29 in ntdll!RtlImageNtHeaderEx () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #10 0x00007ff901af8baa in ntdll!KiUserExceptionDispatcher () from C:\WINDOWS\SYSTEM32\ntdll.dll No symbol table info available. #11 0x000000040017202c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411 tem = { i = 0xd510 } real_gap_loc = 0xf035 real_gap_loc_byte = 0xf035 old_gap_size = 0x7d0 current_size = 0xf804 #12 0x00000004001723e4 in make_gap (nbytes_added=0x830) at ../../src/insdel.c:481 No locals. #13 0x00000004001733a4 in insert_from_string_1 (string=..., pos=0x0, pos_byte=0x0, nchars=0x1000, nbytes=0x1000, inherit=0x0, before_markers=0x1) at ../../src/insdel.c:916 outgoing_nbytes = 0x1000 intervals = 0xbf1fd0 #14 0x00000004001731f3 in insert_from_string_before_markers (string=..., pos=0x0, pos_byte=0x0, length=0x1000, length_byte=0x1000, inherit=0x0) at ../../src/insdel.c:882 opoint = 0xf035 #15 0x000000040025011d in Finternal_default_process_filter (proc=..., text=...) at ../../src/process.c:5527 old_read_only = { i = 0x0 } old_begv = 0x1 old_zv = 0xf035 old_begv_byte = 0x1 old_zv_byte = 0xf035 before = 0xf035 before_byte = 0xf035 opoint_byte = 0xf035 b = 0xbf20e0 p = 0x77feb88 opoint = 0xf035 #16 0x00000004001eb021 in Ffuncall (nargs=0x3, args=0xbf2240) at ../../src/eval.c:2696 internal_argbuf = {{ i = 0xbf21f0 }, { i = 0x400163f98 }, { i = 0x0 }, { i = 0x0 }, { i = 0xbf21b0 }, { i = 0x40012990e }, { i = 0x401b9b350 }, { i = 0x401ba2dd0 }} fun = { i = 0x4006a8df5 } original_fun = { i = 0x7ee0 } funcar = { i = 0x0 } numargs = 0x2 lisp_numargs = { i = 0x4006a8df0 } val = { i = 0xbf21e0 } internal_args = 0xbf2248 count = 0xa0 In frame #11 make_gap_larger, current_buffer looks like: (gdb) $1 = (struct buffer *) 0x9434730 (gdb) $2 = { header = { size = 0x4000000006032047 }, name_ = { i = 0x6b5d4b4 }, filename_ = { i = 0x0 }, directory_ = { i = 0x91406d4 }, backed_up_ = { i = 0x0 }, save_length_ = { i = 0x2 }, auto_save_file_name_ = { i = 0x0 }, read_only_ = { i = 0x0 }, mark_ = { i = 0x69ae731 }, local_var_alist_ = { i = 0x69526c3 }, major_mode_ = { i = 0x6938 }, mode_name_ = { i = 0x40032154c }, mode_line_format_ = { i = 0x4007ff4a3 }, header_line_format_ = { i = 0x0 }, keymap_ = { i = 0x0 }, abbrev_table_ = { i = 0x4007c1855 }, syntax_table_ = { i = 0x400789e2d }, category_table_ = { i = 0x40078a605 }, case_fold_search_ = { i = 0x0 }, tab_width_ = { i = 0x22 }, fill_column_ = { i = 0x13a }, left_margin_ = { i = 0x2 }, auto_fill_function_ = { i = 0x0 }, downcase_table_ = { i = 0x40078ab5d }, upcase_table_ = { i = 0x40078fbe5 }, case_canon_table_ = { i = 0x400985f35 }, case_eqv_table_ = { i = 0x400976965 }, truncate_lines_ = { i = 0xd510 }, word_wrap_ = { i = 0x0 }, ctl_arrow_ = { i = 0xd510 }, bidi_display_reordering_ = { i = 0xd510 }, bidi_paragraph_direction_ = { i = 0x0 }, selective_display_ = { i = 0x0 }, selective_display_ellipses_ = { i = 0xd510 }, minor_modes_ = { i = 0x0 }, overwrite_mode_ = { i = 0x0 }, abbrev_mode_ = { i = 0x0 }, display_table_ = { i = 0x0 }, mark_active_ = { i = 0x0 }, enable_multibyte_characters_ = { i = 0x0 }, buffer_file_coding_system_ = { i = 0xfffffffffec61568 }, file_format_ = { i = 0x0 }, auto_save_file_format_ = { i = 0xd510 }, cache_long_scans_ = { i = 0xd510 }, width_table_ = { i = 0x0 }, pt_marker_ = { i = 0x0 }, begv_marker_ = { i = 0x0 }, zv_marker_ = { i = 0x0 }, point_before_scroll_ = { i = 0x0 }, file_truename_ = { i = 0x0 }, invisibility_spec_ = { i = 0xd510 }, last_selected_window_ = { i = 0x0 }, display_count_ = { i = 0x2 }, left_margin_cols_ = { i = 0x2 }, right_margin_cols_ = { i = 0x2 }, left_fringe_width_ = { i = 0x0 }, right_fringe_width_ = { i = 0x0 }, fringes_outside_margins_ = { i = 0x0 }, scroll_bar_width_ = { i = 0x0 }, scroll_bar_height_ = { i = 0x0 }, vertical_scroll_bar_type_ = { i = 0xd510 }, horizontal_scroll_bar_type_ = { i = 0xd510 }, indicate_empty_lines_ = { i = 0xd510 }, indicate_buffer_boundaries_ = { i = 0x0 }, fringe_indicator_alist_ = { i = 0x400c28ab3 }, fringe_cursor_alist_ = { i = 0x40095d173 }, display_time_ = { i = 0x0 }, scroll_up_aggressively_ = { i = 0x0 }, scroll_down_aggressively_ = { i = 0x0 }, cursor_type_ = { i = 0xd510 }, extra_line_spacing_ = { i = 0x0 }, cursor_in_non_selected_windows_ = { i = 0xd510 }, own_text = { beg = 0x1f0000 "224 Overview information for 108895-109097 follows\r\n108895\tRe: Problem with whitespaces in search\ttomas@tuxteam.de\tThu, 28 Jan 2016 15:58:13 +0100\t<20160128145813.GB14779@tuxteam.de>\t<20160128101634.G"..., gpt = 0xf035, z = 0xf035, gpt_byte = 0xf035, z_byte = 0xf035, gap_size = 0x17d0, modiff = 0x45c, chars_modiff = 0x45c, save_modiff = 0x1, overlay_modiff = 0x1, compact = 0x1, beg_unchanged = 0x0, end_unchanged = 0x0, unchanged_modified = 0x1, overlay_unchanged_modified = 0x1, intervals = 0x0, markers = 0x69ae700, inhibit_shrinking = 0x0, redisplay = 0x1 }, text = 0x9434970, next = 0x9434ef0, pt = 0xf035, pt_byte = 0xf035, begv = 0x1, begv_byte = 0x1, zv = 0xf035, zv_byte = 0xf035, base_buffer = 0x0, indirections = 0x0, window_count = 0x0, local_flags = '\000' , modtime = { tv_sec = 0x0, tv_nsec = 0xfffffffe }, modtime_size = 0xffffffffffffffff, auto_save_modified = 0x0, display_error_modiff = 0x0, auto_save_failure_time = 0x0, last_window_start = 0x1, newline_cache = 0x4a222c0, width_run_cache = 0x0, bidi_paragraph_cache = 0x0, prevent_redisplay_optimizations_p = 0x1, clip_changed = 0x0, overlays_before = 0x0, overlays_after = 0x0, overlay_center = 0xf035, undo_list_ = { i = 0xd510 } } ...and in the same frame, current_buffer->text looks like this: (gdb) $3 = (struct buffer_text *) 0x9434970 (gdb) $4 = { beg = 0x1f0000 "224 Overview information for 108895-109097 follows\r\n108895\tRe: Problem with whitespaces in search\ttomas@tuxteam.de\tThu, 28 Jan 2016 15:58:13 +0100\t<20160128145813.GB14779@tuxteam.de>\t<20160128101634.G"..., gpt = 0xf035, z = 0xf035, gpt_byte = 0xf035, z_byte = 0xf035, gap_size = 0x17d0, modiff = 0x45c, chars_modiff = 0x45c, save_modiff = 0x1, overlay_modiff = 0x1, compact = 0x1, beg_unchanged = 0x0, end_unchanged = 0x0, unchanged_modified = 0x1, overlay_unchanged_modified = 0x1, intervals = 0x0, markers = 0x69ae700, inhibit_shrinking = 0x0, redisplay = 0x1 } Hopefully this is of some use. AndyM From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 11 15:27:43 2016 Received: (at 22526) by debbugs.gnu.org; 11 Feb 2016 20:27:43 +0000 Received: from localhost ([127.0.0.1]:36960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTxq3-00008T-63 for submit@debbugs.gnu.org; Thu, 11 Feb 2016 15:27:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41715) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTxq1-000085-Kw for 22526@debbugs.gnu.org; Thu, 11 Feb 2016 15:27:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTxpr-0005Ee-DS for 22526@debbugs.gnu.org; Thu, 11 Feb 2016 15:27:36 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60771) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTxpr-0005EZ-9x; Thu, 11 Feb 2016 15:27:31 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4924 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aTxpq-0004N7-Kq; Thu, 11 Feb 2016 15:27:31 -0500 Date: Thu, 11 Feb 2016 22:27:23 +0200 Message-Id: <8360xv9ems.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <86twlg2e69.fsf@gmail.com> (message from Andy Moreton on Thu, 11 Feb 2016 02:06:54 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) > From: Andy Moreton > Date: Thu, 11 Feb 2016 02:06:54 +0000 > > Hopefully this is of some use. It is, thanks. The plot thickens... This is one of those cases where I'd give anything for a way to trace execution in reverse and see what happened before the problem... Anyway, is that GDB session still running? If so, could you please try the following two GDB commands? (gdb) p Z_ADDR (gdb) p *(Z_ADDR) If the last one says something about not being able to access memory at address such-and-such, then please try a series of commands like this: (gdb) p/x *(Z_ADDR - 1) (gdb) p/x *(Z_ADDR - 2) (gdb) p/x *(Z_ADDR - 3) etc., until you find the largest address which GDB succeeds to access and report its contents. (If the first few commands still report failure to access, it might be better to use larger offsets, and then perform binary search once you find an accessible address.) The goal is, assuming that Z_ADDR somehow points to memory outside of the process address space, to find the last byte that is still inside the address space. Then do this: (gdb) p/x THAT_ADDRESS - BEG_ADDR where THAT_ADDRESS is the last address that GDB can access. I'd also like to ask you to add a couple of lines to make_gap_larger, to help with debugging this, but I want to see the results of the above first. For the record, what seems to have happened here is that some Gnus command caused Emacs to insert a 4K string into a buffer that was 63493 bytes long. In response, Emacs enlarged the buffer text to accommodate those 4K, then moved the existing buffer text towards higher address to enlarge the gap by 4K, in preparation for inserting the string into the gap. Then it crashed when it tried to null-terminate the enlarged buffer text. The crash is strange because the code in gap_left, called just before the crash, should have already accessed all the addresses up to and including the one immediately preceding Z_ADDR. So this seems to imply that there's some off-by-one error somewhere in the related code, but I don't see it yet. Btw, it sounds like it should be easy to reproduce this almost at will, since the two backtraces are almost identical -- they both show the same insertion of a 4096 byte string into a buffer by the default process filter that reads stuff received from the news server. Could you perhaps try coming up with such a reproducer, starting from "emacs -Q"? That would make the debugging much more efficient. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 11 16:20:43 2016 Received: (at submit) by debbugs.gnu.org; 11 Feb 2016 21:20:43 +0000 Received: from localhost ([127.0.0.1]:37002 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTyfL-00032W-B6 for submit@debbugs.gnu.org; Thu, 11 Feb 2016 16:20:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58877) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTyfK-00032K-2S for submit@debbugs.gnu.org; Thu, 11 Feb 2016 16:20:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTyfE-0002uV-2Y for submit@debbugs.gnu.org; Thu, 11 Feb 2016 16:20:36 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:56212) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTyfD-0002uQ-Jg for submit@debbugs.gnu.org; Thu, 11 Feb 2016 16:20:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49841) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTyfC-0006aC-Mz for bug-gnu-emacs@gnu.org; Thu, 11 Feb 2016 16:20:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTyf7-0002ti-HK for bug-gnu-emacs@gnu.org; Thu, 11 Feb 2016 16:20:34 -0500 Received: from plane.gmane.org ([80.91.229.3]:49120) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTyf7-0002tP-AS for bug-gnu-emacs@gnu.org; Thu, 11 Feb 2016 16:20:29 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aTyf4-0003VP-LG for bug-gnu-emacs@gnu.org; Thu, 11 Feb 2016 22:20:26 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Feb 2016 22:20:26 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Feb 2016 22:20:26 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Thu, 11 Feb 2016 21:20:06 +0000 Lines: 29 Message-ID: <8637sz7xmh.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:YK+Ps7q2MSAovvpduX/3cnhSDeg= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Thu 11 Feb 2016, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Thu, 11 Feb 2016 02:06:54 +0000 >> >> Hopefully this is of some use. > > It is, thanks. The plot thickens... This is one of those cases where > I'd give anything for a way to trace execution in reverse and see what > happened before the problem... > > Anyway, is that GDB session still running? Sadly not. > Btw, it sounds like it should be easy to reproduce this almost at > will, since the two backtraces are almost identical -- they both show > the same insertion of a 4096 byte string into a buffer by the default > process filter that reads stuff received from the news server. Could > you perhaps try coming up with such a reproducer, starting from > "emacs -Q"? That would make the debugging much more efficient. If it was easy to reproduce then it ought to be easier with gnus (assuming the same initial file contents), but it happens only rarely. I think this crash may have involved gnus restoring auto-save data after a prior emacs session had been killed. AndyM From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 11 16:26:30 2016 Received: (at 22526) by debbugs.gnu.org; 11 Feb 2016 21:26:30 +0000 Received: from localhost ([127.0.0.1]:37011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTykw-0003Bh-7l for submit@debbugs.gnu.org; Thu, 11 Feb 2016 16:26:30 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60867) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTykv-0003BW-9d for 22526@debbugs.gnu.org; Thu, 11 Feb 2016 16:26:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTykj-0004cK-L3 for 22526@debbugs.gnu.org; Thu, 11 Feb 2016 16:26:24 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33669) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTykj-0004c6-I9; Thu, 11 Feb 2016 16:26:17 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1049 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aTyki-0007ut-SC; Thu, 11 Feb 2016 16:26:17 -0500 Date: Thu, 11 Feb 2016 23:26:10 +0200 Message-Id: <83io1v7xcd.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <8637sz7xmh.fsf@gmail.com> (message from Andy Moreton on Thu, 11 Feb 2016 21:20:06 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) > From: Andy Moreton > Date: Thu, 11 Feb 2016 21:20:06 +0000 > > > Anyway, is that GDB session still running? > > Sadly not. Is there some reason that you couldn't leave it running once you get the crash? If so, perhaps you could describe those reasons, and I could try helping you overcome them. Being able to look around in a crashed session is important for making the debugging as efficient as possible, given the sporadic nature of the crashes. Thanks. > > Btw, it sounds like it should be easy to reproduce this almost at > > will, since the two backtraces are almost identical -- they both show > > the same insertion of a 4096 byte string into a buffer by the default > > process filter that reads stuff received from the news server. Could > > you perhaps try coming up with such a reproducer, starting from > > "emacs -Q"? That would make the debugging much more efficient. > > If it was easy to reproduce then it ought to be easier with gnus > (assuming the same initial file contents), but it happens only rarely. > > I think this crash may have involved gnus restoring auto-save data after > a prior emacs session had been killed. Well, if you find some reproducible recipe, it will be appreciated. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 12 08:35:17 2016 Received: (at submit) by debbugs.gnu.org; 12 Feb 2016 13:35:17 +0000 Received: from localhost ([127.0.0.1]:37341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUDsT-0005Ao-1X for submit@debbugs.gnu.org; Fri, 12 Feb 2016 08:35:17 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54143) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUDsR-0005Ac-Mg for submit@debbugs.gnu.org; Fri, 12 Feb 2016 08:35:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUDsL-0002TP-Ef for submit@debbugs.gnu.org; Fri, 12 Feb 2016 08:35:10 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:35812) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUDsL-0002TE-Cc for submit@debbugs.gnu.org; Fri, 12 Feb 2016 08:35:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUDsK-0004Ug-GD for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 08:35:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUDsG-0002OI-Hv for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 08:35:08 -0500 Received: from plane.gmane.org ([80.91.229.3]:38397) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUDsG-0002Nq-9l for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 08:35:04 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUDsE-00007R-5t for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 14:35:02 +0100 Received: from uk.solarflare.com ([193.34.186.16]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 14:35:02 +0100 Received: from andrewjmoreton by uk.solarflare.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 14:35:02 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Fri, 12 Feb 2016 13:34:37 +0000 Lines: 62 Message-ID: References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: uk.solarflare.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:pd0e4VKWv9QHU1KoOztIKh5XHPU= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Thu 11 Feb 2016, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Thu, 11 Feb 2016 21:20:06 +0000 >> >> > Anyway, is that GDB session still running? >> >> Sadly not. > > Is there some reason that you couldn't leave it running once you get > the crash? Pilot error :-) I have managed to reproduce the crash again, and kept the gdb session running. #11 0x000000040017202c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411 tem = { i = 0xd510 } real_gap_loc = 0xf035 real_gap_loc_byte = 0xf035 old_gap_size = 0x7d0 current_size = 0xf804 #12 0x00000004001723e4 in make_gap (nbytes_added=0x830) at ../../src/insdel.c:481 No locals. #13 0x00000004001733a4 in insert_from_string_1 (string=..., pos=0x0, pos_byte=0x0, nchars=0x1000, nbytes=0x1000, inherit=0x0, before_markers=0x1) at ../../src/insdel.c:916 outgoing_nbytes = 0x1000 intervals = 0xbf3150 #14 0x00000004001731f3 in insert_from_string_before_markers (string=..., pos=0x0, pos_byte=0x0, length=0x1000, length_byte=0x1000, inherit=0x0) at ../../src/insdel.c:882 opoint = 0xf035 #15 0x000000040025011d in Finternal_default_process_filter (proc=..., text=...) at ../../src/process.c:5527 old_read_only = { i = 0x0 } old_begv = 0x1 old_zv = 0xf035 old_begv_byte = 0x1 old_zv_byte = 0xf035 before = 0xf035 before_byte = 0xf035 opoint_byte = 0xf035 b = 0xbf3260 p = 0xa65cc18 opoint = 0xf035 (gdb) frame 11 #11 0x000000040017202c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411 411 *(Z_ADDR) = 0; (gdb) p Z_ADDR $1 = (unsigned char *) 0x200804 (gdb) p *(Z_ADDR) Cannot access memory at address 0x200804 (gdb) p/x *(Z_ADDR - 0x804) Cannot access memory at address 0x200000 (gdb) p/x *(Z_ADDR - 0x805) $16 = 0x0 (gdb) p/x (Z_ADDR - 0x805) - BEG_ADDR $18 = 0xffff From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 12 11:16:47 2016 Received: (at 22526) by debbugs.gnu.org; 12 Feb 2016 16:16:47 +0000 Received: from localhost ([127.0.0.1]:38132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUGOl-0003uZ-6N for submit@debbugs.gnu.org; Fri, 12 Feb 2016 11:16:47 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54860) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUGOj-0003uM-8t for 22526@debbugs.gnu.org; Fri, 12 Feb 2016 11:16:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUGOZ-0004Oy-0K for 22526@debbugs.gnu.org; Fri, 12 Feb 2016 11:16:39 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33760) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUGOY-0004Or-Tv; Fri, 12 Feb 2016 11:16:34 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2352 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUGOY-0006mA-6w; Fri, 12 Feb 2016 11:16:34 -0500 Date: Fri, 12 Feb 2016 18:16:32 +0200 Message-Id: <83fuwx7vkv.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton , Fabrice Popineau In-reply-to: (message from Andy Moreton on Fri, 12 Feb 2016 13:34:37 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.1 (-----) > From: Andy Moreton > Date: Fri, 12 Feb 2016 13:34:37 +0000 > > I have managed to reproduce the crash again, and kept the gdb > session running. Thanks. Now that you've succeeded, I'm going to ask you to terminate the debug session and try applying a patch ;-) > 411 *(Z_ADDR) = 0; > (gdb) p Z_ADDR > $1 = (unsigned char *) 0x200804 > (gdb) p *(Z_ADDR) > Cannot access memory at address 0x200804 > > (gdb) p/x *(Z_ADDR - 0x804) > Cannot access memory at address 0x200000 > (gdb) p/x *(Z_ADDR - 0x805) > $16 = 0x0 > > (gdb) p/x (Z_ADDR - 0x805) - BEG_ADDR > $18 = 0xffff This means that, when enlarging buffer text, we failed to commit memory beyond the initial 64KB, whereas the buffer was enlarged by almost 4K beyond that. This is unexpected (does your system exhibit symptoms of memory pressure?), but the code which handles such a possible failure to commit reserved pages is not safe in that case. Please try the patch below, and see if these crashes go away. Fabrice, can you read this thread and suggest other ideas for how could this happen? Do you think the patch below is TRT and should be committed to the repository in any case? diff --git a/src/w32heap.c b/src/w32heap.c index 00da86a..f56d01b 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -700,6 +700,8 @@ mmap_realloc (void **var, size_t nbytes) /* We need to enlarge the block. */ if (memInfo.RegionSize < nbytes) { + void *old_ptr; + if (VirtualQuery (*var + memInfo.RegionSize, &m2, sizeof(m2)) == 0) DebPrint (("mmap_realloc: VirtualQuery error = %ld\n", GetLastError ())); @@ -717,7 +719,7 @@ mmap_realloc (void **var, size_t nbytes) { DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", GetLastError ())); - errno = ENOMEM; + goto enlarge_block; } return *var; } @@ -726,7 +728,8 @@ mmap_realloc (void **var, size_t nbytes) /* Else we must actually enlarge the block by allocating a new one and copying previous contents from the old to the new one. */ - void *old_ptr = *var; + enlarge_block: + old_ptr = *var; if (mmap_alloc (var, nbytes)) { From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 12 17:26:39 2016 Received: (at submit) by debbugs.gnu.org; 12 Feb 2016 22:26:39 +0000 Received: from localhost ([127.0.0.1]:38323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUMAh-0000Wq-CJ for submit@debbugs.gnu.org; Fri, 12 Feb 2016 17:26:39 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36527) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUMAf-0000WY-Eu for submit@debbugs.gnu.org; Fri, 12 Feb 2016 17:26:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUMAZ-00084D-H9 for submit@debbugs.gnu.org; Fri, 12 Feb 2016 17:26:32 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47289) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUMAZ-000848-EU for submit@debbugs.gnu.org; Fri, 12 Feb 2016 17:26:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55707) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUMAY-00004s-B9 for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 17:26:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUMAT-0007yo-9x for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 17:26:30 -0500 Received: from plane.gmane.org ([80.91.229.3]:48138) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUMAT-0007x4-1l for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 17:26:25 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUMAR-0006xN-Ak for bug-gnu-emacs@gnu.org; Fri, 12 Feb 2016 23:26:23 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 23:26:23 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 23:26:23 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Fri, 12 Feb 2016 22:26:02 +0000 Lines: 15 Message-ID: <86fuwxk1l1.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:Mh9HamfBp8sQ/VWR7sp8g4J5I/I= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Fri 12 Feb 2016, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Fri, 12 Feb 2016 13:34:37 +0000 >> >> I have managed to reproduce the crash again, and kept the gdb >> session running. > > Thanks. Now that you've succeeded, I'm going to ask you to terminate > the debug session and try applying a patch ;-) No obvious problems after applying the patch, but it may take a while to find the right circumstances to trigger any issues. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 03:28:50 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 08:28:50 +0000 Received: from localhost ([127.0.0.1]:38448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUVZR-0000lK-Uo for submit@debbugs.gnu.org; Sat, 13 Feb 2016 03:28:50 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36712) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUVZP-0000l7-PX for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 03:28:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUVZG-0001Ro-FL for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 03:28:42 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51877) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUVZG-0001Rk-Bw; Sat, 13 Feb 2016 03:28:38 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3536 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUVZF-0001mr-JB; Sat, 13 Feb 2016 03:28:38 -0500 Date: Sat, 13 Feb 2016 10:28:37 +0200 Message-Id: <837fi96mkq.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton , Fabrice Popineau In-reply-to: <86fuwxk1l1.fsf@gmail.com> (message from Andy Moreton on Fri, 12 Feb 2016 22:26:02 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.1 (-----) > From: Andy Moreton > Date: Fri, 12 Feb 2016 22:26:02 +0000 > > On Fri 12 Feb 2016, Eli Zaretskii wrote: > > >> From: Andy Moreton > >> Date: Fri, 12 Feb 2016 13:34:37 +0000 > >> > >> I have managed to reproduce the crash again, and kept the gdb > >> session running. > > > > Thanks. Now that you've succeeded, I'm going to ask you to terminate > > the debug session and try applying a patch ;-) > > No obvious problems after applying the patch, but it may take a while to > find the right circumstances to trigger any issues. Thanks, let's wait. FWIW, I'm not really sure that patch will fix the problem, for 2 reasons: (1) the code it fixes should only get executed very rarely, if ever; and (2) according to my reading of gap_left, it should have touched these addresses just before hitting the segfault. So I believe there's some other factor at work here I cannot figure out. Maybe Fabrice will have some ideas. Btw, can you attach GDB to Emacs _before_ the problem happens? It could be that the backtrace we see is not entirely reliable when attaching GDB after the segfault. Also, is this an optimized build? I don't think I've seen all the basic data collected by report-emacs-bug about your build; can you post it? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 05:44:21 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 10:44:22 +0000 Received: from localhost ([127.0.0.1]:38460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUXgb-00044x-Nl for submit@debbugs.gnu.org; Sat, 13 Feb 2016 05:44:21 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60159) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUXga-00044j-Hn for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 05:44:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUXgS-0007pR-7G for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 05:44:15 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53206) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUXgS-0007pN-3p; Sat, 13 Feb 2016 05:44:12 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3791 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUXgR-0001zr-AV; Sat, 13 Feb 2016 05:44:11 -0500 Date: Sat, 13 Feb 2016 12:44:11 +0200 Message-Id: <83vb5s6gas.fsf@gnu.org> From: Eli Zaretskii To: andrewjmoreton@gmail.com, fabrice.popineau@gmail.com In-reply-to: <837fi96mkq.fsf@gnu.org> (message from Eli Zaretskii on Sat, 13 Feb 2016 10:28:37 +0200) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.1 (-----) > Date: Sat, 13 Feb 2016 10:28:37 +0200 > From: Eli Zaretskii > Cc: 22526@debbugs.gnu.org > > FWIW, I'm not really sure that patch will fix the problem, for 2 > reasons: (1) the code it fixes should only get executed very rarely, > if ever; and (2) according to my reading of gap_left, it should have > touched these addresses just before hitting the segfault. So I > believe there's some other factor at work here I cannot figure out. Answering my own question: #2 above can happen if the gap was already at the end of buffer text -- in that case, gap_left does nothing except update the gap position. The values shown in one of the previous backtraces indicate this is indeed what happened here. And in that case, line 411 of insdel.c is indeed the first one where the additional memory allocated by enlarge_buffer_text is touched. So it looks like the problem is indeed somewhere in w32heap.c. Btw, I see in mmap_malloc a problem similar to the one I tried to fix with the patch for mmap_realloc: if the call to VirtualAlloc that commits the reserved memory fails, mmap_malloc won't return NULL as it should. AFAIU, failure to commit reserved memory could happen if the system is short on physical memory. Are there other reasons? From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 10:17:14 2016 Received: (at submit) by debbugs.gnu.org; 13 Feb 2016 15:17:14 +0000 Received: from localhost ([127.0.0.1]:39473 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUbwf-0004sO-S5 for submit@debbugs.gnu.org; Sat, 13 Feb 2016 10:17:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:49432) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUbwe-0004sA-EX for submit@debbugs.gnu.org; Sat, 13 Feb 2016 10:17:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUbwY-0003cB-DP for submit@debbugs.gnu.org; Sat, 13 Feb 2016 10:17:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:46192) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUbwY-0003c7-9o for submit@debbugs.gnu.org; Sat, 13 Feb 2016 10:17:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUbwX-00025W-9m for bug-gnu-emacs@gnu.org; Sat, 13 Feb 2016 10:17:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUbwU-0003ZI-3V for bug-gnu-emacs@gnu.org; Sat, 13 Feb 2016 10:17:05 -0500 Received: from plane.gmane.org ([80.91.229.3]:47808) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUbwT-0003YD-SK for bug-gnu-emacs@gnu.org; Sat, 13 Feb 2016 10:17:02 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUbwQ-0007eH-Tf for bug-gnu-emacs@gnu.org; Sat, 13 Feb 2016 16:16:58 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 13 Feb 2016 16:16:58 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 13 Feb 2016 16:16:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Sat, 13 Feb 2016 15:16:32 +0000 Lines: 27 Message-ID: <86d1s0hc8f.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:eUtaRlr+n3/RscoCbvj1GezrGr4= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sat 13 Feb 2016, Eli Zaretskii wrote: > Also, is this an optimized build? I don't think I've seen all the > basic data collected by report-emacs-bug about your build; can you > post it? This is running on a Windows 10 box with an i7-4770K and 16GB RAM, so memory pressure should not be a problem. In GNU Emacs 25.0.90.19 (x86_64-w64-mingw32) of 2016-02-13 built on QUIETUS Repository revision: d97f522d3d3fa18eba2962d53e6c197ace938cc2 Windowing system distributor 'Microsoft Corp.', version 10.0.10586 Configured using: 'configure --prefix=c:/emacs/emacs-25 --build=x86_64-w64-mingw32 --without-dbus --enable-checking --enable-check-lisp-object-type --with-gif --with-jpeg --with-png --with-tiff --with-xpm --with-gnutls --with-rsvg --with-xml2 --without-imagemagick --with-modules 'CFLAGS= -g3 -O0'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS MODULES Important settings: value of $LANG: ENG locale-coding-system: cp1252 From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 10:53:10 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 15:53:10 +0000 Received: from localhost ([127.0.0.1]:39486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUcVS-0005sX-4Y for submit@debbugs.gnu.org; Sat, 13 Feb 2016 10:53:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:32847) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUcVP-0005sK-Ma for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 10:53:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUcVG-00062l-E3 for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 10:53:02 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:56551) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUcVG-00062c-Al; Sat, 13 Feb 2016 10:52:58 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1073 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUcVF-0008RN-MQ; Sat, 13 Feb 2016 10:52:58 -0500 Date: Sat, 13 Feb 2016 17:52:58 +0200 Message-Id: <83fuww6205.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <86d1s0hc8f.fsf@gmail.com> (message from Andy Moreton on Sat, 13 Feb 2016 15:16:32 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andy Moreton > Date: Sat, 13 Feb 2016 15:16:32 +0000 > > On Sat 13 Feb 2016, Eli Zaretskii wrote: > > Also, is this an optimized build? I don't think I've seen all the > > basic data collected by report-emacs-bug about your build; can you > > post it? > > This is running on a Windows 10 box with an i7-4770K and 16GB RAM, so > memory pressure should not be a problem. What other reasons could prevent VirtualAlloc from successfully committing a range of addresses that was already reserved? > In GNU Emacs 25.0.90.19 (x86_64-w64-mingw32) > of 2016-02-13 built on QUIETUS > Repository revision: d97f522d3d3fa18eba2962d53e6c197ace938cc2 > Windowing system distributor 'Microsoft Corp.', version 10.0.10586 > Configured using: > 'configure --prefix=c:/emacs/emacs-25 --build=x86_64-w64-mingw32 > --without-dbus --enable-checking --enable-check-lisp-object-type > --with-gif --with-jpeg --with-png --with-tiff --with-xpm --with-gnutls > --with-rsvg --with-xml2 --without-imagemagick --with-modules 'CFLAGS= > -g3 -O0'' > > Configured features: > XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB > TOOLKIT_SCROLL_BARS MODULES > > Important settings: > value of $LANG: ENG > locale-coding-system: cp1252 Thanks. Please run Emacs under GDB, and see if you get any of the debug printouts in mmap_alloc and mmap_realloc when this problem happens (if it happens). From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 11:08:34 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 16:08:34 +0000 Received: from localhost ([127.0.0.1]:39495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUckL-0006H4-NS for submit@debbugs.gnu.org; Sat, 13 Feb 2016 11:08:33 -0500 Received: from mail-ob0-f175.google.com ([209.85.214.175]:33011) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUckK-0006Gp-MQ for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 11:08:33 -0500 Received: by mail-ob0-f175.google.com with SMTP id is5so159891367obc.0 for <22526@debbugs.gnu.org>; Sat, 13 Feb 2016 08:08:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=bwydpif4ZDzpLNBttkbZ3XQi4x9ACcEEsTd1eWyilSE=; b=lWPtdv+11tChky0CRhQPGTi/JNiPesCFeh+KVka1AGrWNKduUsl8O4r1PaGE05wQ8P Ql8XxD4FQp+Xtm9ZGUEIXyhVlPrI/q78GFI0876C/6Wtl11ZDUldLSs56AREqd5lHFr9 pLujWCTsE2SxQungRkwdwGuU2vyxaPt8tLKtr40XnGQMPfzomjhx2hN7JF9LXqzxijho B3yvyWnHdfHo/EluSsHtJySFbDefoiVpwSkZEXp4lJhTPArGVPQPVRXS7zVUDngbtPRD 0xo/4Do8/xUnZgqDE7ErSS7unc9HNnb4sm+kt68Tz06PaLuaekHQLbDtTRtISK+ueGke aTmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=bwydpif4ZDzpLNBttkbZ3XQi4x9ACcEEsTd1eWyilSE=; b=Rwvc3DKWa2IGonwOOXU29ccyl/pM/aKaZEAPhP8CAWvxsw7M4glxBinO5M+DyQVmsE JkGjaz3jja8ekKncpzi64zR1AV92dkqeX/NpJ41nbcc/lufXhKlP/y/Zev3A2Smyq5q8 32duFNPDJPKAf5yxDtGBMTPmixx819/aNHoHTwCFZpGtNknfJCip7DKO/4AGrgEzw3Gc 71uWNPLsvB2pptAG3tiRIbltOlAH6snonkhOPmBVKT7Nt07Jj8CBblRPsZKISLS0pl52 ho5tDptChjzcx4zus5ZxYFvHVa1fWaewO0b/3WT4OSAWmmyDjykOQ3qk1M4uPMUAYihX JJpQ== X-Gm-Message-State: AG10YOTa/Lj9A7V2leKNCoxMmfBy33nHHSE4qDoAMWyklPyZwwLjk+g7eCZAkXuM1kre3kHcGkVQYBx92GrKEQ== X-Received: by 10.182.135.132 with SMTP id ps4mr6156851obb.58.1455379707282; Sat, 13 Feb 2016 08:08:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sat, 13 Feb 2016 08:08:07 -0800 (PST) In-Reply-To: <83vb5s6gas.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> From: Fabrice Popineau Date: Sat, 13 Feb 2016 17:08:07 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=089e01177c17774c8d052ba8fe3d X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e01177c17774c8d052ba8fe3d Content-Type: text/plain; charset=UTF-8 Sorry for the delay with my answer, I'm trying to catch up with this problem. First, and about the patch Eli has offered for mmap_realloc(), I would be interested in knowing what was the error code at line 718: DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", GetLastError ())); I wonder if there is a case where it would fail on the VirtualAlloc() and manage with the mmap_alloc() later. I agree than in the case of a failure with VirtualAlloc(), we don't return NULL here, which may be the root of further problems. Second, I don't see the problem in mmap_alloc(): if VirtualAlloc() fails, p is NULL and this is the value returned at line 668: return *var = p; Am I missing something here ? Fabrice 2016-02-13 11:44 GMT+01:00 Eli Zaretskii : > > Date: Sat, 13 Feb 2016 10:28:37 +0200 > > From: Eli Zaretskii > > Cc: 22526@debbugs.gnu.org > > > > FWIW, I'm not really sure that patch will fix the problem, for 2 > > reasons: (1) the code it fixes should only get executed very rarely, > > if ever; and (2) according to my reading of gap_left, it should have > > touched these addresses just before hitting the segfault. So I > > believe there's some other factor at work here I cannot figure out. > > Answering my own question: #2 above can happen if the gap was already > at the end of buffer text -- in that case, gap_left does nothing > except update the gap position. The values shown in one of the > previous backtraces indicate this is indeed what happened here. And > in that case, line 411 of insdel.c is indeed the first one where the > additional memory allocated by enlarge_buffer_text is touched. > > So it looks like the problem is indeed somewhere in w32heap.c. > > Btw, I see in mmap_malloc a problem similar to the one I tried to fix > with the patch for mmap_realloc: if the call to VirtualAlloc that > commits the reserved memory fails, mmap_malloc won't return NULL as it > should. > > AFAIU, failure to commit reserved memory could happen if the system is > short on physical memory. Are there other reasons? > --089e01177c17774c8d052ba8fe3d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sorry for the delay with my answer, I'm trying to catc= h up with this problem.

First, and about the patch Eli h= as offered for mmap_realloc(), I would be interested in knowing
w= hat was the error code at line 718:
=C2=A0 =C2=A0 =C2=A0DebPrint (("realloc = enlarge: VirtualAlloc error %ld\n",
GetLastError ()));

I wonder if there is a case where it would fail on the VirtualAlloc() and = manage with the mmap_alloc() later.
I agree than in the case of a= failure with VirtualAlloc(), we don't return NULL here, which may be t= he root
of further problems.

Second, I d= on't see the problem in mmap_alloc(): if VirtualAlloc() fails, p is NUL= L and this is the value returned
at line 668:

=
=C2=A0 return *var =3D p;

Am I mi= ssing something here ?

Fabrice



2016-02-13 11:44 GMT+01:00 Eli Zaretskii <<= a href=3D"mailto:eliz@gnu.org" target=3D"_blank">eliz@gnu.org>:
> Date: Sat, 13 Feb 2016 10:28:37 += 0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc:
22526@debbugs.gnu.org=
>
> FWIW, I'm not really sure that patch will fix the problem, for 2 > reasons: (1) the code it fixes should only get executed very rarely, > if ever; and (2) according to my reading of gap_left, it should have > touched these addresses just before hitting the segfault.=C2=A0 So I > believe there's some other factor at work here I cannot figure out= .

Answering my own question: #2 above can happen if the gap was alread= y
at the end of buffer text -- in that case, gap_left does nothing
except update the gap position.=C2=A0 The values shown in one of the
previous backtraces indicate this is indeed what happened here.=C2=A0 And in that case, line 411 of insdel.c is indeed the first one where the
additional memory allocated by enlarge_buffer_text is touched.

So it looks like the problem is indeed somewhere in w32heap.c.

Btw, I see in mmap_malloc a problem similar to the one I tried to fix
with the patch for mmap_realloc: if the call to VirtualAlloc that
commits the reserved memory fails, mmap_malloc won't return NULL as it<= br> should.

AFAIU, failure to commit reserved memory could happen if the system is
short on physical memory.=C2=A0 Are there other reasons?

--089e01177c17774c8d052ba8fe3d-- From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 13:07:17 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 18:07:17 +0000 Received: from localhost ([127.0.0.1]:38261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUebF-0000JC-1L for submit@debbugs.gnu.org; Sat, 13 Feb 2016 13:07:17 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41746) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUebD-0000Iu-O7 for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 13:07:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUdHc-0003TT-W3 for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 11:43:01 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57206) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUdHc-0003TP-Q3; Sat, 13 Feb 2016 11:42:56 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1159 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUdHb-0008IY-V0; Sat, 13 Feb 2016 11:42:56 -0500 Date: Sat, 13 Feb 2016 18:42:56 +0200 Message-Id: <83d1s05zov.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sat, 13 Feb 2016 17:08:07 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sat, 13 Feb 2016 17:08:07 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > Sorry for the delay with my answer, I'm trying to catch up with this problem. No need to apologize. Thanks for chiming in. > First, and about the patch Eli has offered for mmap_realloc(), I would be interested in knowing > what was the error code at line 718: > DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", > GetLastError ())); I don't think we know that, because I think Andy attached the debugger only after the crash. But I sure hope to be wrong ;-) > I wonder if there is a case where it would fail on the VirtualAlloc() and manage with the mmap_alloc() later. > I agree than in the case of a failure with VirtualAlloc(), we don't return NULL here, which may be the root > of further problems. Yes. So you agree it's a good idea to commit that patch? > Second, I don't see the problem in mmap_alloc(): if VirtualAlloc() fails, p is NULL and this is the value returned > at line 668: > > return *var = p; > > Am I missing something here ? I thought about the scenario where VirtualAlloc succeeds in the call with MEM_RESERVE, but fails in the call with MEM_COMMIT. Please also read the rest of the thread, perhaps my conclusion about mmap_realloc being the culprit as incorrect. I just don't see how else to explain the fact that Emacs asked to enlarge the buffer beyond 64KB, but got a valid pointer to only a 64KB memory region. From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 16:27:00 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 21:27:00 +0000 Received: from localhost ([127.0.0.1]:38373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUhiW-0005Oj-7n for submit@debbugs.gnu.org; Sat, 13 Feb 2016 16:27:00 -0500 Received: from mail-wm0-f49.google.com ([74.125.82.49]:38706) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUhiU-0005OW-Qk for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 16:26:59 -0500 Received: by mail-wm0-f49.google.com with SMTP id a4so9945929wme.1 for <22526@debbugs.gnu.org>; Sat, 13 Feb 2016 13:26:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=4vJc1CkbdP/A+O4HLofVr2d5547siQL6pPVVqL4CcYo=; b=Y60IDOWa5tkG8yZHAqyw887k+iE5doba33DsMTlHMGfDhfwDCXVgf47nd+ElTUBIvs Zc/YKsBARInr0wkS1xP2ljgqnego5NbT6RlJynD0+eSdV4gCzLxdUncqDaoOEHFgHFzN WIRfhf+NawzqmBT5/Rqdp/VKgDYvCrzDB2+9Iu95LuXU0RGi0tcIIqu/uhMzBAM9FXX2 +sKNHhYGAhWezPYXJXvvlkpVGQtGORfeZ4ldYqTZUZ5tMngBwPwjMZKPKTg0HkcJcRxq M/uANhmdE7jutn+Y5YLk7TscC37TsuIo8dRWRxY2aqfGrc0FC2kgmMg8FfS2hy9gs29q F8Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=4vJc1CkbdP/A+O4HLofVr2d5547siQL6pPVVqL4CcYo=; b=l//WGrNp48FEY/eajmfF18rnEBak13qo7zek3vk1Q7C37wdHqfwzMfKNbNbtrpjumV GOWVpjQXBJz/jR6ZR5lX+X6CroaYUWAecS4VcTtOwFF9OpcBwDiDr4pVHLfUL7Vy99RZ gnIlPcSeck7p2+NglTRTPTqiCClxMfuwX7Bk9Xm6cEi1cgpFn1Ekxj7Z/H544x4PotyQ kpQ/1lwYqGUz60VUgNksVdoyCiN1cEJNfd53UgDjnaDoU3gSJX862QoTncVnJBAYwO7m kH9S0q3zgmPRx1ajaG7MnD1fcYzIz8OxvzSC3h02WUcGmeFiYWHlR+wT0AuGLeuIFZHo 3g8w== X-Gm-Message-State: AG10YOSrWZxNmfcGP0ky5iIlLh7QBCHcOqItlGmGCi+HF+P4Js/XF74ruUkOTYAuOXhjWg== X-Received: by 10.194.2.76 with SMTP id 12mr8488866wjs.28.1455398813277; Sat, 13 Feb 2016 13:26:53 -0800 (PST) Received: from [192.168.0.4] (82-69-64-228.dsl.in-addr.zen.co.uk. [82.69.64.228]) by smtp.gmail.com with ESMTPSA id ka4sm17996872wjc.47.2016.02.13.13.26.51 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 13 Feb 2016 13:26:51 -0800 (PST) Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> From: Andy Moreton Message-ID: <56BF9F89.5020008@gmail.com> Date: Sat, 13 Feb 2016 21:26:33 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <83fuww6205.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On 13/02/2016 15:52, Eli Zaretskii wrote: > Thanks. Please run Emacs under GDB, and see if you get any of the > debug printouts in mmap_alloc and mmap_realloc when this problem > happens (if it happens). I now have an emacs built from changeset d97f522d3d3f with your patch. After a few runs, I now have a gdb session with: warning: realloc enlarge: VirtualAlloc error 87 Program received signal SIGSEGV, Segmentation fault. 0x000000040017209c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411 411 *(Z_ADDR) = 0; I will keep the gdb session running for further debugging. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 16:36:24 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 21:36:24 +0000 Received: from localhost ([127.0.0.1]:38381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUhrc-0005d6-8w for submit@debbugs.gnu.org; Sat, 13 Feb 2016 16:36:24 -0500 Received: from mail-ob0-f171.google.com ([209.85.214.171]:35286) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUhra-0005cu-DQ for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 16:36:22 -0500 Received: by mail-ob0-f171.google.com with SMTP id xk3so166356924obc.2 for <22526@debbugs.gnu.org>; Sat, 13 Feb 2016 13:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=QwApD4hTIymePFC3iT6ETiyr1YOVeG7RoQmQWEmMSr8=; b=uztgc4JUcWLPg+OmtfD1B61F/sC0Bbja4kYFSQpoyXSkDTOgX/SZQyi3YZgmfHIVe/ QbuVe9yOGBk5ZxoSfOcpi8jDELIvixlAdI3raCQ2Nx/nvGqExTOmFADfKDbI0RSufIR9 8qw/J21MKWrEzWHkZCQlPT+EA5yYKmpmaexystUST5EknaHs/yS9oFn+8LIj2xgkGgnO 8d4WQazNUxxykFgvNMcJfMkNB5iOgg+oT26uZjh/gzyVMVNQWETOUQQTuxapDS66heYv h5Jkalonn3caqMpRb+3D7p9DowJEWFGV8r8wo87bO0Ndgs+G44BSYlDUpCa07Og6ECj1 Czpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=QwApD4hTIymePFC3iT6ETiyr1YOVeG7RoQmQWEmMSr8=; b=DCAe85RqXkmStjb/M84j0gosA2739Joh+mxoo9KtCWjKXWl1LuOxlBs4Fq9pHR2EpC v2I7yGT1LHmvIrs0upDIsVXz3hLVpd0uWatOF8ZmnC8bXAfSamhaonqv4wx9qoIhQ9N/ 929Qj9Y7xLKYgcnRBLMCjwAFxQ3wq1RD6TJx+y8hosyuJ7b50mzmtB3QohAuBGHeJNRv 2TDcN5byB0OEbSBGFVDkvEv9EYOC6imQe3jRzUc4npI8fdgmuNw5n70cgwjN2CzgqFMj cLlmbtx2dbNhdcjXH6JNNY0vDnWV0fJ1tKFwPsHVDICQ/0y+xVOPnvMtWWGLXXFymtI/ /dLQ== X-Gm-Message-State: AG10YORLziuBePBMjO2pAbMKLT5RtkvGnQkXPk8gwIjaJabWyvQhnNhLd3V7C/1R8PHe+y7lTMKwRzwtiznWvQ== X-Received: by 10.182.73.225 with SMTP id o1mr7079460obv.80.1455399376964; Sat, 13 Feb 2016 13:36:16 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sat, 13 Feb 2016 13:35:57 -0800 (PST) In-Reply-To: <83d1s05zov.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> From: Fabrice Popineau Date: Sat, 13 Feb 2016 22:35:57 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=089e0160b7c6ded1ec052bad9289 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e0160b7c6ded1ec052bad9289 Content-Type: text/plain; charset=UTF-8 2016-02-13 17:42 GMT+01:00 Eli Zaretskii : > > From: Fabrice Popineau > > Date: Sat, 13 Feb 2016 17:08:07 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > Sorry for the delay with my answer, I'm trying to catch up with this > problem. > > No need to apologize. Thanks for chiming in. > > > First, and about the patch Eli has offered for mmap_realloc(), I would > be interested in knowing > > what was the error code at line 718: > > DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", > > GetLastError ())); > > I don't think we know that, because I think Andy attached the debugger > only after the crash. But I sure hope to be wrong ;-) > > > I wonder if there is a case where it would fail on the VirtualAlloc() > and manage with the mmap_alloc() later. > > I agree than in the case of a failure with VirtualAlloc(), we don't > return NULL here, which may be the root > > of further problems. > > Yes. So you agree it's a good idea to commit that patch? > > I think we need the DebPrint() trace of the problem to conclude. If Andy could recompile with: diff --git a/src/w32fns.c b/src/w32fns.c index a5018ae..f439e36 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -8553,7 +8553,7 @@ _DebPrint (const char *fmt, ...) va_start (args, fmt); vsprintf (buf, fmt, args); va_end (args); -#if CYGWIN +#if 1 /* CYGWIN */ fprintf (stderr, "%s", buf); #endif OutputDebugString (buf); It would ease the printing/copying/pasting of DebPrint() messages. About w32heap.c, the very minimum that we need is : diff --git a/src/w32heap.c b/src/w32heap.c index 00da86a..91167cd 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -654,7 +654,7 @@ mmap_alloc (void **var, size_t nbytes) *var = VirtualAlloc (p, nbytes, MEM_COMMIT, PAGE_READWRITE); } - if (!p) + if (p == NULL || *var == NULL) { if (GetLastError () == ERROR_NOT_ENOUGH_MEMORY) errno = ENOMEM; @@ -718,6 +718,7 @@ mmap_realloc (void **var, size_t nbytes) DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", GetLastError ())); errno = ENOMEM; + return NULL; } return *var; } About mmap_realloc(), I'm not sure a second attempt at reallocating the buffer at a different address has a better chance to succeed (but who knows ? Maybe you are right to try, but I would avoid the jump between the branches of the conditional). Anyway, there may be some other interference : /* If there is enough room in the current reserved area, then commit more pages as needed. */ if (m2.State == MEM_RESERVE && nbytes <= memInfo.RegionSize + m2.RegionSize) { If the address sent to mmap_realloc() has been messed up by another part of the code, we won't know it, VirtualQuery will return a wrong value and we will keep taking wrong decisions. For example, if m2.State is not MEM_RESERVE, what does that mean? Every block that we try to reallocate should have been allocated first, so reserved first. Are there other cases that could happen? The error codes from VirtualAlloc() here are crucial. Admittedly, if there were problems of this nature, they would probably have been observed on other platforms. > > Second, I don't see the problem in mmap_alloc(): if VirtualAlloc() > fails, p is NULL and this is the value returned > > at line 668: > > > > return *var = p; > > > > Am I missing something here ? > > I thought about the scenario where VirtualAlloc succeeds in the call > with MEM_RESERVE, but fails in the call with MEM_COMMIT. > Ok, agreed. > Please also read the rest of the thread, perhaps my conclusion about > mmap_realloc being the culprit as incorrect. I just don't see how > else to explain the fact that Emacs asked to enlarge the buffer beyond > 64KB, but got a valid pointer to only a 64KB memory region. > I'm positive on the fact that mmap_realloc() should have returned NULL, so that any caller could take the right action. At the moment, it failed to enlarge the bloc, but acted as if it were able to do so by returning its address. Hence cascading problems. Fabrice --089e0160b7c6ded1ec052bad9289 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


2016-02-13 17:42 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
=
> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sat, 13 Feb 2016 17:08:07 +0100
> Cc: andrewjmoreton@gmail.c= om, 22526@debbugs.gnu.org<= br> >
> Sorry for the delay with my answer, I'm trying to catch up with th= is problem.

No need to apologize.=C2=A0 Thanks for chiming in.

> First, and about the patch Eli has offered for mmap_realloc(), I would= be interested in knowing
> what was the error code at line 718:
> DebPrint (("realloc enlarge: VirtualAlloc error %ld\n",
> GetLastError ()));

I don't think we know that, because I think Andy attached the de= bugger
only after the crash.=C2=A0 But I sure hope to be wrong ;-)

> I wonder if there is a case where it would fail on the VirtualAlloc() = and manage with the mmap_alloc() later.
> I agree than in the case of a failure with VirtualAlloc(), we don'= t return NULL here, which may be the root
> of further problems.

Yes.=C2=A0 So you agree it's a good idea to commit that patch?


I think we need the DebPrint() trace of the problem to conclude.
If Andy could recompile with:
diff --git a/src/w32fns.c b/s= rc/w32fns.c
index a5018ae..f439e36 100644
--- a/src/w32= fns.c
+++ b/src/w32fns.c
@@ -8553,7 +8553,7 @@ _DebPrin= t (const char *fmt, ...)
=C2=A0 =C2=A0va_start (args, fmt);
=
=C2=A0 =C2=A0vsprintf (buf, fmt, args);
=C2=A0 =C2=A0va_end = (args);
-#if CYGWIN
+#if 1 /* CYGWIN */
=C2= =A0 =C2=A0fprintf (stderr, "%s", buf);
=C2=A0#endif
=C2=A0 =C2=A0OutputDebugString (buf);

It would ease the printing/copying/pasting of DebPrint() messages.


About w32heap.c, the very minimum that we = need is :

diff --git a/src/w32heap.c b/src/w32heap= .c
index 00da86a..91167cd 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -654,7 +654,7 @@ mmap_alloc (void = **var, size_t nbytes)
=C2=A0 =C2=A0 =C2=A0 =C2=A0*var =3D Virtual= Alloc (p, nbytes, MEM_COMMIT, PAGE_READWRITE);
=C2=A0 =C2=A0 =C2= =A0}

- =C2=A0if (!p)
+ =C2=A0if (p =3D= =3D NULL || *var =3D=3D NULL)
=C2=A0 =C2=A0 =C2=A0{
=C2= =A0 =C2=A0 =C2=A0 =C2=A0if (GetLastError () =3D=3D ERROR_NOT_ENOUGH_MEMORY)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 errno =3D ENOMEM;
@@ -718,= 6 +718,7 @@ mmap_realloc (void **var, size_t nbytes)
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DebPrint (("realloc enlar= ge: VirtualAlloc error %ld\n",
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 GetLastError= ()));
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0err= no =3D ENOMEM;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= return NULL;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return *var;
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 }

About mmap_realloc(), I= 'm not sure a second attempt at reallocating the buffer at a different = address has a better chance to succeed=C2=A0
(but who knows ? May= be you are right to try, but I would avoid the jump between the branches of= the conditional).

Anyway, there may be some other= interference :

=C2=A0 =C2=A0 =C2=A0 /* If there i= s enough room in the current reserved area, then
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0commit more pages as needed. =C2=A0*/
=C2=A0 = =C2=A0 =C2=A0 if (m2.State =3D=3D MEM_RESERVE
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 && nbytes <=3D memInfo.RegionSize + m2.RegionS= ize)
{

If the address sent to mmap_realloc() has been messed up = by another part of the code, we won't know it, VirtualQuery will return= =C2=A0
a wrong value and we will keep taking wrong decisions. For= example, if m2.State is not MEM_RESERVE, what does that mean?
Ev= ery block that we try to reallocate should have been allocated first, so re= served first. Are there =C2=A0other cases that could happen?

=
The error codes from VirtualAlloc() here are crucial.
=
Admittedly, if there were problems of this nature, they woul= d probably have been observed on other platforms.
=C2=A0
> Second, I don't see the problem in mmap_alloc(): if VirtualAlloc()= fails, p is NULL and this is the value returned
> at line 668:
>
> return *var =3D p;
>
> Am I missing something here ?

I thought about the scenario where VirtualAlloc succeeds in the call=
with MEM_RESERVE, but fails in the call with MEM_COMMIT.

Ok, agreed.
=C2=A0
Please also read the rest of the thread, perhaps my conclusion about
mmap_realloc being the culprit as incorrect.=C2=A0 I just don't see how=
else to explain the fact that Emacs asked to enlarge the buffer beyond
64KB, but got a valid pointer to only a 64KB memory region.

I'm positive on= the fact that mmap_realloc() should have returned NULL, so that=C2=A0
any caller could take the right action. At the = moment, it failed to enlarge the bloc,=C2=A0
but acted as if it were able to do so by returning its address. Hence cas= cading
problems.

Fabrice
--089e0160b7c6ded1ec052bad9289-- From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 17:12:09 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 22:12:09 +0000 Received: from localhost ([127.0.0.1]:38393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUiQC-0006SF-TF for submit@debbugs.gnu.org; Sat, 13 Feb 2016 17:12:09 -0500 Received: from eggs.gnu.org ([208.118.235.92]:33676) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUiQA-0006Rn-Qz for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 17:12:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUiQ0-00015f-Kk for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 17:12:01 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33416) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUiQ0-00015a-H1; Sat, 13 Feb 2016 17:11:56 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1919 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUiPz-0005v1-SS; Sat, 13 Feb 2016 17:11:56 -0500 Date: Sun, 14 Feb 2016 00:11:58 +0200 Message-Id: <83r3ggz2dt.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sat, 13 Feb 2016 22:35:57 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sat, 13 Feb 2016 22:35:57 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > I think we need the DebPrint() trace of the problem to conclude. I think the patch I propose below will help in that. > About w32heap.c, the very minimum that we need is : > > diff --git a/src/w32heap.c b/src/w32heap.c > index 00da86a..91167cd 100644 > --- a/src/w32heap.c > +++ b/src/w32heap.c > @@ -654,7 +654,7 @@ mmap_alloc (void **var, size_t nbytes) > *var = VirtualAlloc (p, nbytes, MEM_COMMIT, PAGE_READWRITE); > } > > - if (!p) > + if (p == NULL || *var == NULL) > { > if (GetLastError () == ERROR_NOT_ENOUGH_MEMORY) > errno = ENOMEM; > @@ -718,6 +718,7 @@ mmap_realloc (void **var, size_t nbytes) > DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", > GetLastError ())); > errno = ENOMEM; > + return NULL; > } > return *var; > } See below, I think the patch I propose handles that as well. > About mmap_realloc(), I'm not sure a second attempt at reallocating the buffer at a different address has a > better chance to succeed > (but who knows ? Maybe you are right to try, but I would avoid the jump between the branches of the > conditional). > > Anyway, there may be some other interference : > > /* If there is enough room in the current reserved area, then > commit more pages as needed. */ > if (m2.State == MEM_RESERVE > && nbytes <= memInfo.RegionSize + m2.RegionSize) > { > > If the address sent to mmap_realloc() has been messed up by another part of the code, we won't know it, > VirtualQuery will return > a wrong value and we will keep taking wrong decisions. For example, if m2.State is not MEM_RESERVE, > what does that mean? It means the region after the one we are trying to enlarge was not reserved by us, and we should call mmap_alloc (which we do). No? What I'm worried about is something else: the code is written under the assumption that *var is the base address of the allocation, which is why we use *var + memInfo.RegionSize to get to the next region. But if *var is not the base address, this is wrong, and we should use memInfo.BaseAddress instead, I think. WDYT? > Every block that we try to reallocate should have been allocated first, so reserved first. Are there other cases > that could happen? > > The error codes from VirtualAlloc() here are crucial. The error is ERROR_INVALID_PARAMETER (87), as Andy just reported. > Admittedly, if there were problems of this nature, they would probably have been observed on other platforms. I agree that it's strange we only see this now on a single machine. But maybe Andy does have memory content he doesn't know about. Anyway, here's the patch I propose. Andy, please apply this and then run Emacs under GDB again, so that the error messages will be seen. The patch includes the previous one. diff --git a/src/w32heap.c b/src/w32heap.c index 00da86a..a05c7f2 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -652,15 +652,19 @@ mmap_alloc (void **var, size_t nbytes) { /* Now, commit pages for NBYTES. */ *var = VirtualAlloc (p, nbytes, MEM_COMMIT, PAGE_READWRITE); + if (*var == NULL) + p = *var; } if (!p) { - if (GetLastError () == ERROR_NOT_ENOUGH_MEMORY) + DWORD e = GetLastError (); + + if (e == ERROR_NOT_ENOUGH_MEMORY) errno = ENOMEM; else { - DebPrint (("mmap_alloc: error %ld\n", GetLastError ())); + DebPrint (("mmap_alloc: error %ld\n", e)); errno = EINVAL; } } @@ -700,6 +704,8 @@ mmap_realloc (void **var, size_t nbytes) /* We need to enlarge the block. */ if (memInfo.RegionSize < nbytes) { + void *old_ptr; + if (VirtualQuery (*var + memInfo.RegionSize, &m2, sizeof(m2)) == 0) DebPrint (("mmap_realloc: VirtualQuery error = %ld\n", GetLastError ())); @@ -715,9 +721,11 @@ mmap_realloc (void **var, size_t nbytes) MEM_COMMIT, PAGE_READWRITE); if (!p /* && GetLastError() != ERROR_NOT_ENOUGH_MEMORY */) { - DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", + DebPrint (("realloc enlarge: VirtualAlloc (%p + %I64x, %I64x) error %ld\n", + *var, (uint64_t)memInfo.RegionSize, + (uint64_t)(nbytes - memInfo.RegionSize), GetLastError ())); - errno = ENOMEM; + goto enlarge_block; } return *var; } @@ -726,7 +734,8 @@ mmap_realloc (void **var, size_t nbytes) /* Else we must actually enlarge the block by allocating a new one and copying previous contents from the old to the new one. */ - void *old_ptr = *var; + enlarge_block: + old_ptr = *var; if (mmap_alloc (var, nbytes)) { From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 13 18:44:28 2016 Received: (at 22526) by debbugs.gnu.org; 13 Feb 2016 23:44:28 +0000 Received: from localhost ([127.0.0.1]:38419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUjrY-0000DC-FA for submit@debbugs.gnu.org; Sat, 13 Feb 2016 18:44:28 -0500 Received: from mail-ob0-f171.google.com ([209.85.214.171]:34359) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUjrW-0000Cx-Py for 22526@debbugs.gnu.org; Sat, 13 Feb 2016 18:44:27 -0500 Received: by mail-ob0-f171.google.com with SMTP id wb13so169586680obb.1 for <22526@debbugs.gnu.org>; Sat, 13 Feb 2016 15:44:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=1kDrkhNTdvPRd4xfC04OUi1M/YURlEYQ94SQtudVEDc=; b=HEl0ameh5Ll7jTXP5J8MZ7WmKmrbqlJe8qzGNyvFm7HJ238eE2eQu1RjcbF7KWgxvG +1m5jjvJbQCEj5gc726fXOb5JC9DBx0pW5ZAK3APSpwnzwnHZfy+/XB5CaGOhv+Vg+ws Y2BbXSSJyrWn5JVCGNhKWLItEBKoEpTQnqXlV2nGrYItBLKgXj0c+Nv2Cg6RETJOSgYW qbKfV5pnaVEwu9K9L0sL3P9uRPLKitNOfjTPrCvS2C9UywmjTupLPjOpndFRZ6ehMkvK NkK/k84lNmaF5m7xeDTg4bz7vBuHnyoe9LO/n0UiJvwhrDsehWkkHy8aBSt/UH6QgrHb tbdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=1kDrkhNTdvPRd4xfC04OUi1M/YURlEYQ94SQtudVEDc=; b=efxr0O+/KgktX12SySqdoR95EEKL05dg2BRLrWg2JzpkPtudXHR7s5SpVwU/Qamqxx EAYZGDJMSpj/CEsUNTFnakF4OpRmukTOGbqlkTdMabuVq9URBRaSw7fOHVGVFPcemSB+ blxuH1P5OixCI4q3LBdzatFKfUJ+wGKvYz36vQYsL7AM71rpjsLSd0eirE+cQ6XxDWgr oTy0OF+mqgKHcTTNuSxdcJHzS+aDrEuGoIgVcdYaLqlhEzsDPw6TzoU7kf37zClvnOKi QDWPTM9dCbns3zIaGvjrtG17HjkG+EE0uhh4sCTgWsvr90N/uvWOU7+AaAd5RJnVe6tQ 2s8Q== X-Gm-Message-State: AG10YOQOwicNxP01MvJrlz4imGiUQv4sgO+f7okedDmg3e/Yw1MpJOcHuSzo8R2SXCHCDhkyWsrZXB/xQ7vciA== X-Received: by 10.60.67.71 with SMTP id l7mr7210512oet.55.1455407061056; Sat, 13 Feb 2016 15:44:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sat, 13 Feb 2016 15:44:01 -0800 (PST) In-Reply-To: <83r3ggz2dt.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> From: Fabrice Popineau Date: Sun, 14 Feb 2016 00:44:01 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=001a11c30ba0e0c229052baf5cb0 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c30ba0e0c229052baf5cb0 Content-Type: text/plain; charset=UTF-8 2016-02-13 23:11 GMT+01:00 Eli Zaretskii : > I think the patch I propose below will help in that. > > Ok, let's see what Andy will come with. > > Anyway, there may be some other interference : > > > > /* If there is enough room in the current reserved area, then > > commit more pages as needed. */ > > if (m2.State == MEM_RESERVE > > && nbytes <= memInfo.RegionSize + m2.RegionSize) > > { > > > > If the address sent to mmap_realloc() has been messed up by another part > of the code, we won't know it, > > VirtualQuery will return > > a wrong value and we will keep taking wrong decisions. For example, if > m2.State is not MEM_RESERVE, > > what does that mean? > > It means the region after the one we are trying to enlarge was not > reserved by us, and we should call mmap_alloc (which we do). No? > > What I'm worried about is something else: the code is written under > the assumption that *var is the base address of the allocation, which > is why we use *var + memInfo.RegionSize to get to the next region. > But if *var is not the base address, this is wrong, and we should use > memInfo.BaseAddress instead, I think. WDYT? > > Yes, that should probably be more correct. But that would also mean someone has changed b->text->beg for some buffer b. Is there somewhere a good reason to do that ? The mmap_alloc() and mmap_realloc() are called each at one place only in buffer.c . Maybe we should try to assert *var == memInfo.BaseAddress and see if it breaks. > > > The error codes from VirtualAlloc() here are crucial. > > The error is ERROR_INVALID_PARAMETER (87), as Andy just reported. > > Weird. There is a good chance that *var is wrong and you are right. Fabrice --001a11c30ba0e0c229052baf5cb0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


2016-02-13 23:11 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
=
=C2=A0
I think the patch I propose= below will help in that.


Ok, let's = see what Andy will come with.
=C2=A0
> Anyway, there may be some other interference = :
>
> /* If there is enough room in the current reserved area, then
> commit more pages as needed. */
> if (m2.State =3D=3D MEM_RESERVE
> && nbytes <=3D memInfo.RegionSize + m2.RegionSize)
> {
>
> If the address sent to mmap_realloc() has been messed up by another pa= rt of the code, we won't know it,
> VirtualQuery will return
> a wrong value and we will keep taking wrong decisions. For example, if= m2.State is not MEM_RESERVE,
> what does that mean?

It means the region after the one we are trying to enlarge was not reserved by us, and we should call mmap_alloc (which we do).=C2=A0 No?

What I'm worried about is something else: the code is written under
the assumption that *var is the base address of the allocation, which
is why we use *var + memInfo.RegionSize to get to the next region.
But if *var is not the base address, this is wrong, and we should use
memInfo.BaseAddress instead, I think.=C2=A0 WDYT?


Yes, that shou= ld probably be more correct.
But that would also mean someone has= changed b->text->beg for some buffer b.
Is there somewhere= a good reason to do that ?
The mmap_alloc() and mmap_realloc() a= re called each at one place only in buffer.c .
Maybe we should tr= y to assert *var =3D=3D memInfo.BaseAddress and see if it breaks.
=C2=A0

> The error codes from VirtualAlloc() here are crucial.

The error is ERROR_INVALID_PARAMETER (87), as Andy just reported.

Weird. There i= s a good chance that *var is wrong and you are right.

<= div>Fabrice
--001a11c30ba0e0c229052baf5cb0-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 00:41:28 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 05:41:28 +0000 Received: from localhost ([127.0.0.1]:38464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUpR2-0000Hm-Gh for submit@debbugs.gnu.org; Sun, 14 Feb 2016 00:41:28 -0500 Received: from eggs.gnu.org ([208.118.235.92]:53650) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUpR1-0000HZ-EW for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 00:41:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUpQv-0003rd-9d for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 00:41:22 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39566) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUpQq-0003pn-GF; Sun, 14 Feb 2016 00:41:16 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2413 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUpQp-000753-Lm; Sun, 14 Feb 2016 00:41:16 -0500 Date: Sun, 14 Feb 2016 07:41:18 +0200 Message-Id: <83povzzw5d.fsf@gnu.org> From: Eli Zaretskii To: fabrice.popineau@gmail.com In-reply-to: <83r3ggz2dt.fsf@gnu.org> (message from Eli Zaretskii on Sun, 14 Feb 2016 00:11:58 +0200) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Sun, 14 Feb 2016 00:11:58 +0200 > From: Eli Zaretskii > Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com > > > From: Fabrice Popineau > > Date: Sat, 13 Feb 2016 22:35:57 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > I think we need the DebPrint() trace of the problem to conclude. > > I think the patch I propose below will help in that. Fabrice didn't like my goto, so here's a version without that: diff --git a/src/w32heap.c b/src/w32heap.c index 00da86a..6047b19 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -652,15 +652,19 @@ mmap_alloc (void **var, size_t nbytes) { /* Now, commit pages for NBYTES. */ *var = VirtualAlloc (p, nbytes, MEM_COMMIT, PAGE_READWRITE); + if (*var == NULL) + p = *var; } if (!p) { - if (GetLastError () == ERROR_NOT_ENOUGH_MEMORY) + DWORD e = GetLastError (); + + if (e == ERROR_NOT_ENOUGH_MEMORY) errno = ENOMEM; else { - DebPrint (("mmap_alloc: error %ld\n", GetLastError ())); + DebPrint (("mmap_alloc: error %ld\n", e)); errno = EINVAL; } } @@ -700,6 +704,8 @@ mmap_realloc (void **var, size_t nbytes) /* We need to enlarge the block. */ if (memInfo.RegionSize < nbytes) { + void *old_ptr; + if (VirtualQuery (*var + memInfo.RegionSize, &m2, sizeof(m2)) == 0) DebPrint (("mmap_realloc: VirtualQuery error = %ld\n", GetLastError ())); @@ -715,31 +721,29 @@ mmap_realloc (void **var, size_t nbytes) MEM_COMMIT, PAGE_READWRITE); if (!p /* && GetLastError() != ERROR_NOT_ENOUGH_MEMORY */) { - DebPrint (("realloc enlarge: VirtualAlloc error %ld\n", + DebPrint (("realloc enlarge: VirtualAlloc (%p + %I64x, %I64x) error %ld\n", + *var, (uint64_t)memInfo.RegionSize, + (uint64_t)(nbytes - memInfo.RegionSize), GetLastError ())); - errno = ENOMEM; } + else + return *var; + } + /* Else we must actually enlarge the block by allocating a new + one and copying previous contents from the old to the new one. */ + old_ptr = *var; + + if (mmap_alloc (var, nbytes)) + { + CopyMemory (*var, old_ptr, memInfo.RegionSize); + mmap_free (&old_ptr); return *var; } else { - /* Else we must actually enlarge the block by allocating a - new one and copying previous contents from the old to the - new one. */ - void *old_ptr = *var; - - if (mmap_alloc (var, nbytes)) - { - CopyMemory (*var, old_ptr, memInfo.RegionSize); - mmap_free (&old_ptr); - return *var; - } - else - { - /* We failed to enlarge the buffer. */ - *var = old_ptr; - return NULL; - } + /* We failed to reallocate the buffer. */ + *var = old_ptr; + return NULL; } } From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 00:49:29 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 05:49:29 +0000 Received: from localhost ([127.0.0.1]:38468 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUpYn-0000TF-BL for submit@debbugs.gnu.org; Sun, 14 Feb 2016 00:49:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55173) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUpYm-0000T4-2G for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 00:49:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUpYc-0005YX-Tu for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 00:49:22 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39737) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUpYc-0005YT-Qb; Sun, 14 Feb 2016 00:49:18 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2425 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUpYc-0003I7-1g; Sun, 14 Feb 2016 00:49:18 -0500 Date: Sun, 14 Feb 2016 07:49:21 +0200 Message-Id: <83oabjzvry.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sun, 14 Feb 2016 00:44:01 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sun, 14 Feb 2016 00:44:01 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > What I'm worried about is something else: the code is written under > the assumption that *var is the base address of the allocation, which > is why we use *var + memInfo.RegionSize to get to the next region. > But if *var is not the base address, this is wrong, and we should use > memInfo.BaseAddress instead, I think. WDYT? > > Yes, that should probably be more correct. > But that would also mean someone has changed b->text->beg for some buffer b. > Is there somewhere a good reason to do that ? No, there isn't. But how sure are we that the address VirtualAlloc returns to us when we commit is always the base address of the region? It could theoretically return any page-aligned address within the region we previously reserved, no? So I added debugging printouts to actually show those data. (I also tried to google for failure to commit reserved memory, but didn't find anything that looked like our case.) Btw, what exactly is the difference between memInfo.BaseAddress and memInfo.AllocationBase? The MSDN documentation describes both using the same words in different order, so it's hard to understand. > The mmap_alloc() and mmap_realloc() are called each at one place only in buffer.c . > Maybe we should try to assert *var == memInfo.BaseAddress and see if it breaks. Will do if nothing else come up. > > The error codes from VirtualAlloc() here are crucial. > > The error is ERROR_INVALID_PARAMETER (87), as Andy just reported. > > Weird. There is a good chance that *var is wrong and you are right. Maybe. I'd actually expect ERROR_INVALID_ADDRESS in that case, but this is not explicitly documented anywhere. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 04:05:40 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 09:05:40 +0000 Received: from localhost ([127.0.0.1]:38495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUscd-0005EB-Lh for submit@debbugs.gnu.org; Sun, 14 Feb 2016 04:05:39 -0500 Received: from mail-ob0-f180.google.com ([209.85.214.180]:33916) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUscb-0005Dx-L6 for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 04:05:38 -0500 Received: by mail-ob0-f180.google.com with SMTP id wb13so177135220obb.1 for <22526@debbugs.gnu.org>; Sun, 14 Feb 2016 01:05:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=Wd7jG9wlME/ijcz99G1aikhAZEGc73clZEI/LB1Pjpg=; b=mi4ITYkjVD5rQucmwsTq1zwkPSvVFg+qbXia06q5wYpsMXG23fzMcFWn79vI01NHuR sJb4mkDfaLbg2amxC2Bhv4u61ajmdEewKeLiPLbvaxGYOymtAH+GOTIqqN20SaBAM3+O 0X3gZjRnGIOyQfIXHVkiZVu+KeoFhaY+GS6waeJaYtN/0xvwCPp2cLTjoS8ysgLtHACn QKVO+REE86X9kSNceJj5WEV1EM6ocvPzkWkDSM3+5ZyAJ7j+N6UVOO8atvB4IfzifJWN mr6WIFeWshyGhhnPPM2pvNg91VZva5C+hdJX2fT31WMPKtv7Td+JzOSrMDwY7C+DeURD 4CSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=Wd7jG9wlME/ijcz99G1aikhAZEGc73clZEI/LB1Pjpg=; b=UNhQ9NhxenJhd14g3U5+YGLjH8W2zaIM7j2fDYGlMspVHwO4mBqRHtdzCpnsZ4X0Os IDWTRUxHZG66n8fOhWwuHCLdSUjDHEFroKRvwM7AUctv4qSSybIxoa2fcaARDftQP7f0 HEB5kmQhWt4C2NQ1r9J77VyL5+2yaFFd7HmUqlsS2Jwv3JtZ01Ep/S9wqrbMm1mI2MLV BM1zFQwbV4oTaoD6gjetO3h4NJsJndYMxcbQj50PUTIOJLok1KW4Ct8bPAZkFnQ2yW1V CFUplSIUscLirbmyauixOtw0qiYjxIi0wVeQDhu2C1376N94kt5LJYtVdL8Cc5GT1tJo ABiw== X-Gm-Message-State: AG10YOSQYIgaJGknFUHMpmLKEaRNGIVzxzLDncTfpV+p2VC+9rf1CAsYT/ii8zEussooO8DQ4btOwNy0JKAurw== X-Received: by 10.182.51.138 with SMTP id k10mr980437obo.76.1455440731992; Sun, 14 Feb 2016 01:05:31 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sun, 14 Feb 2016 01:05:12 -0800 (PST) In-Reply-To: <83oabjzvry.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83oabjzvry.fsf@gnu.org> From: Fabrice Popineau Date: Sun, 14 Feb 2016 10:05:12 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=047d7bfeb70ad278d9052bb733a2 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7bfeb70ad278d9052bb733a2 Content-Type: text/plain; charset=UTF-8 2016-02-14 6:49 GMT+01:00 Eli Zaretskii : > > From: Fabrice Popineau > > Date: Sun, 14 Feb 2016 00:44:01 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > What I'm worried about is something else: the code is written under > > the assumption that *var is the base address of the allocation, which > > is why we use *var + memInfo.RegionSize to get to the next region. > > But if *var is not the base address, this is wrong, and we should use > > memInfo.BaseAddress instead, I think. WDYT? > > > > Yes, that should probably be more correct. > > But that would also mean someone has changed b->text->beg for some > buffer b. > > Is there somewhere a good reason to do that ? > > No, there isn't. But how sure are we that the address VirtualAlloc > returns to us when we commit is always the base address of the region? > This what the documentation says. https://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).aspx Return value If the function succeeds, the return value is the base address of the allocated region of pages. If the function fails, the return value is NULL. To get extended error information, call GetLastError. > (I also tried to google for failure to > commit reserved memory, but didn't find anything that looked like our > case.) > > I did the same. > Btw, what exactly is the difference between memInfo.BaseAddress and > memInfo.AllocationBase? The MSDN documentation describes both using > the same words in different order, so it's hard to understand. > > Same question here. Re-reading the documentation, I would understand it as : - BaseAddress is the adress that we passed to VirtualQuery, rounded down to the beginning of the page - AllocationBase is the start of the bloc of pages that we have committed previously. So we should use AllocationBase. Another thing I wonder: could pages be in a state MEM_RESERVE | MEM_COMMIT? I hope not. > > The mmap_alloc() and mmap_realloc() are called each at one place only in > buffer.c . > > Maybe we should try to assert *var == memInfo.BaseAddress and see if it > breaks. > > Will do if nothing else come up. > > > > The error codes from VirtualAlloc() here are crucial. > > > > The error is ERROR_INVALID_PARAMETER (87), as Andy just reported. > > > > Weird. There is a good chance that *var is wrong and you are right. > > Maybe. I'd actually expect ERROR_INVALID_ADDRESS in that case, but > this is not explicitly documented anywhere. > Something I refer to when I need to understand the inner workings of the win32 API is the source code for ReactOS: http://doxygen.reactos.org/d2/d2c/virtual_8c_a39ad5f8f1a5214f4874171695ab2bd6b.html#a39ad5f8f1a5214f4874171695ab2bd6b (for example). Not ideal, and it doesn't mean the MS thing works the same way, but at least it allows to understand some things. Fabrice --047d7bfeb70ad278d9052bb733a2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


2016-02-14 6:49 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
=
> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sun, 14 Feb 2016 00:44:01 +0100
> Cc: andrewjmoreton@gmail.c= om, 22526@debbugs.gnu.org<= br> >
>=C2=A0 What I'm worried about is something else: the code is writte= n under
>=C2=A0 the assumption that *var is the base address of the allocation, = which
>=C2=A0 is why we use *var + memInfo.RegionSize to get to the next regio= n.
>=C2=A0 But if *var is not the base address, this is wrong, and we shoul= d use
>=C2=A0 memInfo.BaseAddress instead, I think. WDYT?
>
> Yes, that should probably be more correct.
> But that would also mean someone has changed b->text->beg for so= me buffer b.
> Is there somewhere a good reason to do that ?

No, there isn't.=C2=A0 But how sure are we that the address Virt= ualAlloc
returns to us when we commit is always the base address of the region?
<= /blockquote>

This what the documentation says.
https://msdn.microsoft.com/en-us/library/windows/deskto= p/aa366887(v=3Dvs.85).aspx

Return val= ue

If the function succeeds, the return value is t= he base address of the allocated region of pages.
If the function= fails, the return value is NULL. To get extended error information, call G= etLastError.

=C2=A0
= =C2=A0=C2=A0 (I also tried to google for failure to
commit reserved memory, but didn't find anything that looked like our case.)

I did the same.=C2=A0
=C2=A0
Btw, what exactly is the difference between memInfo.BaseAddress and
memInfo.AllocationBase?=C2=A0 The MSDN documentation describes both using the same words in different order, so it's hard to understand.


Same question = here.
Re-reading the documentation, I would understand it as :
- BaseAddress is the adress that we passed to VirtualQuery, rounded= down to the beginning of the page
- AllocationBase is the start = of the bloc of pages that we have committed previously.
So we sho= uld use AllocationBase.

Another thing I wonder: co= uld pages be in a state MEM_RESERVE | MEM_COMMIT?
I hope not.

=C2=A0
> The mmap_alloc() and mmap_realloc() are called each at one place only = in buffer.c .
> Maybe we should try to assert *var =3D=3D memInfo.BaseAddress and see = if it breaks.

Will do if nothing else come up.

>=C2=A0 > The error codes from VirtualAlloc() here are crucial.
>
>=C2=A0 The error is ERROR_INVALID_PARAMETER (87), as Andy just reported= .
>
> Weird. There is a good chance that *var is wrong and you are right.
Maybe.=C2=A0 I'd actually expect ERROR_INVALID_ADDRESS in that c= ase, but
this is not explicitly documented anywhere.

Something I refer t= o when I need to understand the inner workings of the win32 API is the sour= ce code for ReactOS:
(for example).
Not ideal, and it doesn't mean the MS thing works the same= way, but at least it allows to understand some things.

Fabrice
--047d7bfeb70ad278d9052bb733a2-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 09:18:04 2016 Received: (at submit) by debbugs.gnu.org; 14 Feb 2016 14:18:04 +0000 Received: from localhost ([127.0.0.1]:38611 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUxUx-0005VH-PP for submit@debbugs.gnu.org; Sun, 14 Feb 2016 09:18:03 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37220) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUxUv-0005Un-Ue for submit@debbugs.gnu.org; Sun, 14 Feb 2016 09:18:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUxUp-0007Hr-Sc for submit@debbugs.gnu.org; Sun, 14 Feb 2016 09:17:56 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:40409) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUxUp-0007Hn-PQ for submit@debbugs.gnu.org; Sun, 14 Feb 2016 09:17:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56422) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUxUo-0005Z0-R4 for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2016 09:17:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUxUk-0007Hd-Mu for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2016 09:17:54 -0500 Received: from plane.gmane.org ([80.91.229.3]:33541) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUxUk-0007HZ-Ej for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2016 09:17:50 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUxUj-0006J2-4p for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2016 15:17:49 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 14 Feb 2016 15:17:49 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 14 Feb 2016 15:17:49 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Sun, 14 Feb 2016 14:17:19 +0000 Lines: 42 Message-ID: <86egcfs7f4.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.91 (windows-nt) Cancel-Lock: sha1:OoFWTioqAjnWgFilrVFCzHmESEA= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sun 14 Feb 2016, Eli Zaretskii wrote: >> Date: Sun, 14 Feb 2016 00:11:58 +0200 >> From: Eli Zaretskii >> Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com >> >> > From: Fabrice Popineau >> > Date: Sat, 13 Feb 2016 22:35:57 +0100 >> > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org >> > >> > I think we need the DebPrint() trace of the problem to conclude. >> >> I think the patch I propose below will help in that. > > Fabrice didn't like my goto, so here's a version without that: For some reason "git apply" did not like this patch, so I had to apply it by hand (on top of commit cc6d9064905). Running that under gdb and opening a group in gnus showed: warning: realloc enlarge: VirtualAlloc (00000000001f0000 + 10000, 807) error 87 Emacs kept working normally at this point, so the latest patch improves things. Looking at the running emacs with vmmap (a Microsoft Sysinternals tool), I see that the region it was trying to expand the block into was already occupied: Address Type Size Committed Private Blocks Protection Details 00000000001F0000 Private Data 4 4 4 1 Read/Write 00000000001F0000 Private Data 4 4 4 Read/Write 0000000000200000 Private Data 2,048 44 44 9 Read/Write Thread Environment Block ID: 1112 0000000000200000 Private Data 1,008 Reserved Thread Environment Block ID: 1112 00000000002FC000 Private Data 12 12 12 Read/Write Thread Environment Block ID: 1112 00000000002FF000 Private Data 24 Reserved Thread Environment Block ID: 1112 0000000000305000 Private Data 16 16 16 Read/Write Thread Environment Block ID: 1112 0000000000309000 Private Data 88 Reserved Thread Environment Block ID: 1112 000000000031F000 Private Data 8 8 8 Read/Write Thread Environment Block ID: 1112 0000000000321000 Private Data 24 Reserved Thread Environment Block ID: 1112 0000000000327000 Private Data 8 8 8 Read/Write Thread Environment Block ID: 1112 0000000000329000 Private Data 860 Reserved Thread Environment Block ID: 1112 From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 11:55:15 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 16:55:15 +0000 Received: from localhost ([127.0.0.1]:38974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUzx5-0000eF-Ck for submit@debbugs.gnu.org; Sun, 14 Feb 2016 11:55:15 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38558) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUzx3-0000e2-6L for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 11:55:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUzwu-0006SB-Ts for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 11:55:08 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58053) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUzwu-0006S0-RE; Sun, 14 Feb 2016 11:55:04 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3140 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUzwu-0004ZF-7N; Sun, 14 Feb 2016 11:55:04 -0500 Date: Sun, 14 Feb 2016 18:55:08 +0200 Message-Id: <83a8n3z0yb.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <86egcfs7f4.fsf@gmail.com> (message from Andy Moreton on Sun, 14 Feb 2016 14:17:19 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andy Moreton > Date: Sun, 14 Feb 2016 14:17:19 +0000 > > warning: realloc enlarge: VirtualAlloc (00000000001f0000 + 10000, 807) error 87 > > Emacs kept working normally at this point, so the latest patch improves things. > > Looking at the running emacs with vmmap (a Microsoft Sysinternals tool), > I see that the region it was trying to expand the block into was already > occupied: > > Address Type Size Committed Private Blocks Protection Details > 00000000001F0000 Private Data 4 4 4 1 Read/Write > 00000000001F0000 Private Data 4 4 4 Read/Write > 0000000000200000 Private Data 2,048 44 44 9 Read/Write Thread Environment Block ID: 1112 > 0000000000200000 Private Data 1,008 Reserved Thread Environment Block ID: 1112 I don't understand how it could have been occupied when the above message was shown, because of this condition: if (VirtualQuery (*var + memInfo.RegionSize, &m2, sizeof(m2)) == 0) DebPrint (("mmap_realloc: VirtualQuery error = %ld\n", GetLastError ())); /* If there is enough room in the current reserved area, then commit more pages as needed. */ if (m2.State == MEM_RESERVE <<<<<<<<<<<<<<<<<<<<<<<<<<<< && nbytes <= memInfo.RegionSize + m2.RegionSize) { This 'if' says that the region starting at 0x1f0000+0x10000 is in the "reserved" state, i.e. it cannot be used by any process, including the Emacs process (Emacs can only start using it after committing the region, which is exactly what the failed call to VirtualAlloc tried to do). Am I missing something? It's good to know the patch improves things. I will push it, and I will also add more debugging printouts to help us understand better what is going on here. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 11:58:00 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 16:58:00 +0000 Received: from localhost ([127.0.0.1]:38982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUzzk-0000i6-1r for submit@debbugs.gnu.org; Sun, 14 Feb 2016 11:58:00 -0500 Received: from eggs.gnu.org ([208.118.235.92]:39510) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUzzj-0000hu-1w for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 11:57:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUzza-0007RC-MY for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 11:57:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58105) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUzza-0007R8-JY; Sun, 14 Feb 2016 11:57:50 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3141 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUzzZ-0004ya-Ru; Sun, 14 Feb 2016 11:57:50 -0500 Date: Sun, 14 Feb 2016 18:57:54 +0200 Message-Id: <838u2nz0tp.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sun, 14 Feb 2016 10:05:12 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83oabjzvry.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sun, 14 Feb 2016 10:05:12 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > Btw, what exactly is the difference between memInfo.BaseAddress and > memInfo.AllocationBase? The MSDN documentation describes both using > the same words in different order, so it's hard to understand. > > Same question here. > Re-reading the documentation, I would understand it as : > - BaseAddress is the adress that we passed to VirtualQuery, rounded down to the beginning of the page > - AllocationBase is the start of the bloc of pages that we have committed previously. > So we should use AllocationBase. Right. Although running under a debugger seems to indicate that they are always the same, somehow. > Another thing I wonder: could pages be in a state MEM_RESERVE | MEM_COMMIT? > I hope not. No, these 2 states are mutually exclusive, according to my reading of the documentation. > > > The error codes from VirtualAlloc() here are crucial. > > > > The error is ERROR_INVALID_PARAMETER (87), as Andy just reported. > > > > Weird. There is a good chance that *var is wrong and you are right. > > Maybe. I'd actually expect ERROR_INVALID_ADDRESS in that case, but > this is not explicitly documented anywhere. > > > Something I refer to when I need to understand the inner workings of the win32 API is the source code for > ReactOS: > http://doxygen.reactos.org/d2/d2c/virtual_8c_a39ad5f8f1a5214f4874171695ab2bd6b.html#a39ad5f8f1a5214f4874171695ab2bd6b > > (for example). > Not ideal, and it doesn't mean the MS thing works the same way, but at least it allows to understand some > things. Yes. There's also WINE. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 12:51:35 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 17:51:35 +0000 Received: from localhost ([127.0.0.1]:39014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV0pb-0001wh-F0 for submit@debbugs.gnu.org; Sun, 14 Feb 2016 12:51:35 -0500 Received: from eggs.gnu.org ([208.118.235.92]:49511) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV0pa-0001wV-GA for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 12:51:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aV0pS-0001VY-2Y for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 12:51:29 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59112) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aV0pR-0001VQ-Vk; Sun, 14 Feb 2016 12:51:26 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3288 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aV0pR-0005Rh-7B; Sun, 14 Feb 2016 12:51:25 -0500 Date: Sun, 14 Feb 2016 19:51:29 +0200 Message-Id: <837fi7yyce.fsf@gnu.org> From: Eli Zaretskii To: andrewjmoreton@gmail.com, Fabrice Popineau In-reply-to: <83a8n3z0yb.fsf@gnu.org> (message from Eli Zaretskii on Sun, 14 Feb 2016 18:55:08 +0200) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Sun, 14 Feb 2016 18:55:08 +0200 > From: Eli Zaretskii > Cc: 22526@debbugs.gnu.org > > It's good to know the patch improves things. I will push it, and I > will also add more debugging printouts to help us understand better > what is going on here. Done. Please use the changeset in commit 8badf95. If the error message in mmap_realloc gets printed by GDB, please show the data it reveals. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 16:05:06 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 21:05:06 +0000 Received: from localhost ([127.0.0.1]:39104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV3qs-0001L7-Bi for submit@debbugs.gnu.org; Sun, 14 Feb 2016 16:05:06 -0500 Received: from mail-ob0-f174.google.com ([209.85.214.174]:33695) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV3qq-0001Ka-AL for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:05:04 -0500 Received: by mail-ob0-f174.google.com with SMTP id jq7so3509942obb.0 for <22526@debbugs.gnu.org>; Sun, 14 Feb 2016 13:05:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=MMMJQasXLXT0nncZhSVPqMWJm9zzQ+fd9xr8XH8Sf2Q=; b=sFhRSaV9uXE6hb0UFL/x7SkQ6cQ2vg/y04pq5yLZp+whStEfOMbNUhtFM9b6WmZ71F JIgeZfP8zv05XQgYON2claRR5YGAN0T4eSs48bb+Su0gEUWjNk8ABrCKdKybdnV8NGyd 9NjFAa3BirlQTOtSzIgHo7IvdvXJRNE6V1w+R4Aj+LRcJV9msjbfB/P0jVAUHDlHCb4U 4G68lOeAqxEol+LrmHofxBpqBSMHeg8IuPBK2YEF0mFvAXKOa/EVvChSKDz2ZTmSEgkX pyoInIeG6dOSli5qpKP4baa2aXoCdgUIP9GHL5Dl7O4eeeZukNpjmoKp2AjhwvTLwOOL SNHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=MMMJQasXLXT0nncZhSVPqMWJm9zzQ+fd9xr8XH8Sf2Q=; b=UeV/JA0TX9Hhvx8+9owkU5XfuWE4pLBr5By2oP334u/PjpX24EqKy0GXlRK+QlD6VF fEc1YMpMV2a+/T9lxMhB4QmdFkgYpgtlZuzeXofjyyCjtvBDUD0vq950NO3kpCO9W0cA ScvhlpTSZ1dqAwsYIM10H8m9km+Z8MnXS3slkqhVyw9ZxUe+aVdzXEYIMpzUIA0OJAQJ P0ijrTJrKwbfi07yqJn9OwQjDF+aJn+bVnhJbBmwOG7wzRsC+jZ11M+8jIM6w6c/n8j1 D9ZT4DuPWr+uDIJ0oh8SCfi7kvCmIfdsr7fO/KrZpTC5BX1vdDTQ+uqr2nWFl0rsHAME hf3A== X-Gm-Message-State: AG10YOSrzQgjxIDlVA5Rh2wrzPEhVbd2/IyI3banlq9M7TMPCLWJL8xJnHXLdAckt1vbzjiUOnlijqYChohz2Q== X-Received: by 10.182.51.138 with SMTP id k10mr2687047obo.76.1455483898491; Sun, 14 Feb 2016 13:04:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sun, 14 Feb 2016 13:04:39 -0800 (PST) In-Reply-To: <837fi7yyce.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> From: Fabrice Popineau Date: Sun, 14 Feb 2016 22:04:39 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=047d7bfeb70abefb36052bc1405f X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7bfeb70abefb36052bc1405f Content-Type: text/plain; charset=UTF-8 I see the same block Andrew sees using vmmap and I wonder what buffer is attached to it. Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to display free/unusable blocks, it reports 0x1F1000 as unusable, size 60k and committed 60k. The problem is that the first block has been allocated with 4k, so the next 60k are unusable. We should allocate by block by allocation granularity as reported by GetSystemInfo(). http://blogs.microsoft.co.il/sasha/2014/07/22/tracking-unusable-virtual-memory-vmmap/ http://forum.sysinternals.com/what-does-vmmap-means-by-unusable-memory_topic25797.html https://msdn.microsoft.com/en-us/library/windows/desktop/ms724958(v=vs.85).aspx We have been lucky (or maybe unlucky !) not being hit by this problem sooner. Fabrice 2016-02-14 18:51 GMT+01:00 Eli Zaretskii : > > Date: Sun, 14 Feb 2016 18:55:08 +0200 > > From: Eli Zaretskii > > Cc: 22526@debbugs.gnu.org > > > > It's good to know the patch improves things. I will push it, and I > > will also add more debugging printouts to help us understand better > > what is going on here. > > Done. Please use the changeset in commit 8badf95. If the error > message in mmap_realloc gets printed by GDB, please show the data it > reveals. > > Thanks. > --047d7bfeb70abefb36052bc1405f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I see the same block Andrew sees using vmmap and I wonder = what buffer is attached to it.

Also vmmap reports a 4k b= lock committed at 0x1F0000. If I ask vmmap to display free/unusable blocks,=
it reports 0x1F1000 as unusable, size 60k and committed 60k. The= problem is that the first block has been=C2=A0
allocated with 4k= , so the next 60k are unusable. We should allocate by block by allocation g= ranularity=C2=A0
as reported by GetSystemInfo().



We have been lucky (or maybe unlucky= !) not being hit by this problem sooner.

Fabrice<= /div>

2016-0= 2-14 18:51 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
> Date: Sun, 14 Feb 2016 18:55:08 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 22526@debbugs.gnu.org=
>
> It's good to know the patch improves things.=C2=A0 I will p= ush it, and I
> will also add more debugging printouts to help us understand better > what is going on here.

Done.=C2=A0 Please use the changeset in commit 8badf95.=C2=A0 If the error<= br> message in mmap_realloc gets printed by GDB, please show the data it
reveals.

Thanks.

--047d7bfeb70abefb36052bc1405f-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 16:29:14 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 21:29:14 +0000 Received: from localhost ([127.0.0.1]:39108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4EE-0001ra-EH for submit@debbugs.gnu.org; Sun, 14 Feb 2016 16:29:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56280) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4EC-0001rM-Ac for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:29:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aV4E3-0001By-MR for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:29:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33691) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aV4E3-0001Bu-Ji; Sun, 14 Feb 2016 16:29:03 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3658 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aV4E2-0001Xd-Ua; Sun, 14 Feb 2016 16:29:03 -0500 Date: Sun, 14 Feb 2016 23:29:08 +0200 Message-Id: <83vb5rx9p7.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sun, 14 Feb 2016 22:04:39 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sun, 14 Feb 2016 22:04:39 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > I see the same block Andrew sees using vmmap and I wonder what buffer is attached to it. You can find that out by running under a debugger and placing a conditional breakpoint where we allocate memory for buffers. > Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to display free/unusable blocks, > it reports 0x1F1000 as unusable, size 60k and committed 60k. The problem is that the first block has been > allocated with 4k, so the next 60k are unusable. We should allocate by block by allocation granularity > as reported by GetSystemInfo(). You mean, instead of reserving NBYTES or 2 * NBYTES, round it up to an integral number of 64KB chunks? From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 16:32:11 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 21:32:11 +0000 Received: from localhost ([127.0.0.1]:39112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4H4-0001wu-Tf for submit@debbugs.gnu.org; Sun, 14 Feb 2016 16:32:11 -0500 Received: from mail-ob0-f181.google.com ([209.85.214.181]:36636) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4H4-0001wj-10 for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:32:10 -0500 Received: by mail-ob0-f181.google.com with SMTP id gc3so87635876obb.3 for <22526@debbugs.gnu.org>; Sun, 14 Feb 2016 13:32:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=UdvJCvgcHxXToSGS71o0NmM5/0wKAlVVe62JXcx4Rhc=; b=eRuiU3SV5/z3o9Mv4pZrTWE5vaSsL2Rpv6NBAnUVc6X667wdwKL8+pWK9NdjnuFO8s 7lavz9gXT5kVkBDqqd+F0Efo5u5m1/hKEpyHVYSshWR7uIZStc6Hdg/ATZftcHL/I7eq v3pJ51GliNbHs6Lbu33pwVj7tX6pbhLSpBk8a2uYE/WDIQuGqR4hk41kj1NP8Dkrg687 KoJk7ME3Zdy0/ch2tqyAVPX5Sdrq6ITTTWG2p1yMqYyItVg7kBd4V2tdTae4TwdHYqqD efIdYcWouQ43ZdUw/ddxsTKXsWSnZiqwuO3rJ5jHzh4SLbs/QDZNjH/Xz2XT8D3bQdyj ZyjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=UdvJCvgcHxXToSGS71o0NmM5/0wKAlVVe62JXcx4Rhc=; b=SXOdtPd5NTBVYcbpKIlK2JOsY0uN4w63v6A5m05r1z82I3Hw/t0yz1d72Ggqo5wmL5 HkQ4hwQLcQ78LTkZLYfwRXgOlg+bepdaYXs6R/LUxeVjFpz3vz0EyzVSXphCGOjvunba Pdbjwq4fJyrCrIR9lfulWBaeI1KMCygbUKM+YacELjc1RgNxJlTAUVBu1xzWnL/HvQBq Xx43yTy8U+7cjoTw+DZ6Ppwi+YB/RnNHWd3RqnAsrpacEbhgqnS+vJnzbyUxYgXx2RBD NP6XQscSu6f5nf+Y1kJ8Gf6Ri0nNeHRFiLayoQeTKB6PobsTU/prMwzMji5uID/geThT 6bXQ== X-Gm-Message-State: AG10YOTvUhUxkzQhdHKeZ5OJ1MqPP4/lAKON0ivF7YB9KRJm0hysdZIqiWKKEBiFyGhmzj7StniCafeeHK6M4Q== X-Received: by 10.202.242.2 with SMTP id q2mr9455810oih.137.1455485524583; Sun, 14 Feb 2016 13:32:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sun, 14 Feb 2016 13:31:45 -0800 (PST) In-Reply-To: <83vb5rx9p7.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> <83vb5rx9p7.fsf@gnu.org> From: Fabrice Popineau Date: Sun, 14 Feb 2016 22:31:45 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=94eb2c09532eab2c27052bc1a1ec X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --94eb2c09532eab2c27052bc1a1ec Content-Type: text/plain; charset=UTF-8 2016-02-14 22:29 GMT+01:00 Eli Zaretskii : > > From: Fabrice Popineau > > Date: Sun, 14 Feb 2016 22:04:39 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > I see the same block Andrew sees using vmmap and I wonder what buffer is > attached to it. > > You can find that out by running under a debugger and placing a > conditional breakpoint where we allocate memory for buffers. > > > Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to > display free/unusable blocks, > > it reports 0x1F1000 as unusable, size 60k and committed 60k. The problem > is that the first block has been > > allocated with 4k, so the next 60k are unusable. We should allocate by > block by allocation granularity > > as reported by GetSystemInfo(). > > You mean, instead of reserving NBYTES or 2 * NBYTES, round it up to an > integral number of 64KB chunks? > Definitely yes, for the MEM_RESERVE VirtualAlloc() calls. And I expect that Andrew shouldn't see the DebPrint() message anymore. Fabrice --94eb2c09532eab2c27052bc1a1ec Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


2016-02-14 22:29 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
=
> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sun, 14 Feb 2016 22:04:39 +0100
> Cc: andrewjmoreton@gmail.c= om, 22526@debbugs.gnu.org<= br> >
> I see the same block Andrew sees using vmmap and I wonder what buffer = is attached to it.

You can find that out by running under a debugger and placing a
conditional breakpoint where we allocate memory for buffers.

> Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to= display free/unusable blocks,
> it reports 0x1F1000 as unusable, size 60k and committed 60k. The probl= em is that the first block has been
> allocated with 4k, so the next 60k are unusable.=C2=A0 We should alloc= ate by block by allocation granularity
>=C2=A0 as reported by GetSystemInfo().

You mean, instead of reserving NBYTES or 2 * NBYTES, round it up to = an
integral number of 64KB chunks?

Definitely yes, for= the MEM_RESERVE VirtualAlloc() calls.=C2=A0
And I expect that Andrew shouldn't see the DebPrint() message anymore= .=C2=A0

Fabrice

--94eb2c09532eab2c27052bc1a1ec-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 16:34:20 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 21:34:20 +0000 Received: from localhost ([127.0.0.1]:39116 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4JA-0001zx-Ah for submit@debbugs.gnu.org; Sun, 14 Feb 2016 16:34:20 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57224) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4J9-0001zl-5o for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:34:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aV4J0-00027y-PO for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:34:13 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33769) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aV4J0-00027u-MD; Sun, 14 Feb 2016 16:34:10 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3666 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aV4Iz-0001dx-T9; Sun, 14 Feb 2016 16:34:10 -0500 Date: Sun, 14 Feb 2016 23:34:14 +0200 Message-Id: <83twlbx9gp.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sun, 14 Feb 2016 22:04:39 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sun, 14 Feb 2016 22:04:39 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to display free/unusable blocks, > it reports 0x1F1000 as unusable, size 60k and committed 60k. The problem is that the first block has been > allocated with 4k, so the next 60k are unusable. We should allocate by block by allocation granularity > as reported by GetSystemInfo(). Actually... are you saying this explains Andrew's problem in some way? I cannot see how, because in that case we requested less than 1 page in the next region, so if even 4KB (one page) was available there, the call to VirtualAlloc to commit that chunk should have succeeded. No? From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 16:42:10 2016 Received: (at 22526) by debbugs.gnu.org; 14 Feb 2016 21:42:10 +0000 Received: from localhost ([127.0.0.1]:39119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4Qk-0002Aj-3J for submit@debbugs.gnu.org; Sun, 14 Feb 2016 16:42:10 -0500 Received: from mail-ob0-f181.google.com ([209.85.214.181]:35682) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV4Qi-0002AU-Kv for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 16:42:08 -0500 Received: by mail-ob0-f181.google.com with SMTP id xk3so188090938obc.2 for <22526@debbugs.gnu.org>; Sun, 14 Feb 2016 13:42:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=hslmQ1ukIH83U1frcU9aTRf95XQYg/W1VUMjF2cBwys=; b=hgBOE8aFn6f3R/RWKSoI/t6vnSV85vSqhbAY5x4FxFB0Q/tqgGZduz88efTfwKjWSD vxy/nUD+71gawsqImu9rJ9lCia9dpqkj1CtJL0mpj6lo/5DZAaAzojhYP47Ddeox8cc9 dHBpQBGaH6L+hP33kp1F/BJo0A5LIEsXXy+zxq6SxMdC+v2BVEDtXi9pBY3yTzOBm7Jn DmvworXJjAJVuG9weD6VqPV4BY72OGrpbfg0/FvlW22t9PnusGdHfOIpxd+kZugCZyuG OBccQVBoLL+8H8l8TaVEwtd5Q8oWYhALDlMchWJe5HwKuIbYriCyN2Rm3vAXaMxiq1N6 lQCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=hslmQ1ukIH83U1frcU9aTRf95XQYg/W1VUMjF2cBwys=; b=TP/4ZBmCXd9v0pHG72v/i2FzqKu5GPenJYgw4PMtuVhCYSDM4jG54aDNl0I2do7BUb wGL0k/3T9DlAJHClRb8YgVbWzT9hcJTU3FUccSYjvTZLLRWE0nWzoq6P/FP6b7A5VQ01 t7Y77Mc9vk4Ucc2LJf3YYpWYNU0CNeZVDsDTnkIZ4ROXnIEfx6jD+zwKQ6Tg3mAhc1Tm E4NYmNKYdj6jEJzQC3GRRCIIQG/syBQW9mq+5LOtXeWySMur+2WrgIBhe9tV/xw88oov IqrAxfGbnCB91kf6dfPRC3WCpQn9gs/Gad0jlBzUQPSVqOf7s4zvn75E5ZPKP+u7Rd/0 PX0g== X-Gm-Message-State: AG10YOQy/oZSw5c0Y6Bjxx39BMloESZt8whP+d/2BytBGTTI7Ztmgz6DCmcKuSDdgfJPXg0E5ahplb0K/FC/Kw== X-Received: by 10.182.153.10 with SMTP id vc10mr9740631obb.10.1455486123047; Sun, 14 Feb 2016 13:42:03 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Sun, 14 Feb 2016 13:41:43 -0800 (PST) In-Reply-To: <83twlbx9gp.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> <83twlbx9gp.fsf@gnu.org> From: Fabrice Popineau Date: Sun, 14 Feb 2016 22:41:43 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/related; boundary=089e013a099657f7a2052bc1c5bf X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --089e013a099657f7a2052bc1c5bf Content-Type: multipart/alternative; boundary=089e013a099657f79f052bc1c5be --089e013a099657f79f052bc1c5be Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable As vmmap shows it, the next region is unusable. The reserved region is 4k and the 60k after are lost. I think it is worth to try that : diff --git a/src/w32heap.c b/src/w32heap.c index 69706a3..db14357 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -641,12 +641,12 @@ mmap_alloc (void **var, size_t nbytes) advance, and the buffer is enlarged several times as the data is decompressed on the fly. */ if (nbytes < MAX_BUFFER_SIZE) - p =3D VirtualAlloc (NULL, (nbytes * 2), MEM_RESERVE, PAGE_READWRITE); + p =3D VirtualAlloc (NULL, ROUND_UP((nbytes * 2), get_allocation_unit()= ), MEM_RESERVE, PAGE_READWRITE); /* If it fails, or if the request is above 512MB, try with the requested size. */ if (p =3D=3D NULL) - p =3D VirtualAlloc (NULL, nbytes, MEM_RESERVE, PAGE_READWRITE); + p =3D VirtualAlloc (NULL, ROUND_UP(nbytes, get_allocation_unit()), MEM_RESERVE, PAGE_READWRITE); if (p !=3D NULL) { because running with it, vmmap shows now : [image: Images int=C3=A9gr=C3=A9es 1] and you see the 64k block is reserved, the first 4k are commited and the next 60k are usable. Anyway, it is more correct with this patch than without it. Fabrice 2016-02-14 22:34 GMT+01:00 Eli Zaretskii : > > From: Fabrice Popineau > > Date: Sun, 14 Feb 2016 22:04:39 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > Also vmmap reports a 4k block committed at 0x1F0000. If I ask vmmap to > display free/unusable blocks, > > it reports 0x1F1000 as unusable, size 60k and committed 60k. The proble= m > is that the first block has been > > allocated with 4k, so the next 60k are unusable. We should allocate by > block by allocation granularity > > as reported by GetSystemInfo(). > > Actually... are you saying this explains Andrew's problem in some way? > I cannot see how, because in that case we requested less than 1 page > in the next region, so if even 4KB (one page) was available there, the > call to VirtualAlloc to commit that chunk should have succeeded. No? > --089e013a099657f79f052bc1c5be Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
As vmmap shows it, the next region is unusable.
The re= served region is 4k and the 60k after are lost.

I = think it is worth to try that :

diff --git a/= src/w32heap.c b/src/w32heap.c
index 69706a3..db14357 100644
=
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -641,12= +641,12 @@ mmap_alloc (void **var, size_t nbytes)
=C2=A0 =C2=A0 = =C2=A0 advance, and the buffer is enlarged several times as the data is
=C2=A0 =C2=A0 =C2=A0 decompressed on the fly. =C2=A0*/
=C2= =A0 =C2=A0if (nbytes < MAX_BUFFER_SIZE)
- =C2=A0 =C2=A0p =3D V= irtualAlloc (NULL, (nbytes * 2), MEM_RESERVE, PAGE_READWRITE);
+ = =C2=A0 =C2=A0p =3D VirtualAlloc (NULL, ROUND_UP((nbytes * 2), get_allocatio= n_unit()), MEM_RESERVE, PAGE_READWRITE);

=C2=A0 = =C2=A0/* If it fails, or if the request is above 512MB, try with the
<= div>=C2=A0 =C2=A0 =C2=A0 requested size. =C2=A0*/
=C2=A0 =C2=A0if= (p =3D=3D NULL)
- =C2=A0 =C2=A0p =3D VirtualAlloc (NULL, nbytes,= MEM_RESERVE, PAGE_READWRITE);
+ =C2=A0 =C2=A0p =3D VirtualAlloc = (NULL, ROUND_UP(nbytes, get_allocation_unit()), MEM_RESERVE, PAGE_READWRITE= );

=C2=A0 =C2=A0if (p !=3D NULL)
=C2=A0 = =C2=A0 =C2=A0{

because running with it, vmma= p shows now :

3D"Images

and you see the 64k block is reserved, the first 4k a= re commited and the next 60k are usable.
Anyway, it is more corre= ct with this patch than without it.

Fabrice
<= /div>

2016-02-14 2= 2:34 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sun, 14 Feb 2016 22:04:39 +0100
> Cc: andrewjmoreton@gmail.c= om, 22526@debbugs.gnu.org<= br> >
> Also vmmap reports a 4k block committed at 0x1= F0000. If I ask vmmap to display free/unusable blocks,
> it reports 0x1F1000 as unusable, size 60k and committed 60k. The probl= em is that the first block has been
> allocated with 4k, so the next 60k are unusable. We should allocate by= block by allocation granularity
> as reported by GetSystemInfo().

Actually... are you saying this explains Andrew's problem in som= e way?
I cannot see how, because in that case we requested less than 1 page
in the next region, so if even 4KB (one page) was available there, the
call to VirtualAlloc to commit that chunk should have succeeded.=C2=A0 No?<= br>

--089e013a099657f79f052bc1c5be-- --089e013a099657f7a2052bc1c5bf Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_152e1b9ebc74e0bf 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 S+e1qGkdOGLeSw9ErF04q2XzXvCYYBv9X2EmevBmXdppLeqjXL2n27bd17fuB5RXf1GzScfb3N/E x/qcH6k+Pufaz26pLdO1A/dsu2Z1I6WuCVp+rtbi/ChX2T7tKRvGvl7MppqEtQIl+6Kpe/K+u6TO gVbXOX1cH1nPqr32qctsGKspNBUnCRsHarquGKAnLZrKnpkKreDzKH3+DGnXLjMVbfrzLrF2nYdN 6TfszbHZ7zZNlckOBBBAAAEEEPAW6M5gw96jwS/Nl89esKaFWNOFs8GcEDoazbG0PLtPZw/GU+Ks akGz2m596TQXEttn1ZiiaXVBmt2eM7e1d/kIWFuBEe0P7tTta29O3mCaGXuKr9WgbSq5iRd+Ad+y dpb59XJT9QT5P6P90RtN58TGRd2bc04sz27X+QNhuVcXxrW4z8yrfl4HgkfIjcGi9sVfdKK4yxxj DjVPYJg0jKmZBurakZHcfSZsU/5zzmkTZt9iGFcwXdvqTp0NBjOijA74n8V9cT1a09Xtb9Hnbj+h XdtntZyaAueippdntT1qB3n16FtndauSpnaYOY9yLcyX0haGxQ4jet+9kqzpktbMCOr4Tm1X+J49 EBFMrxS8Z2It2f8VZ2hT361+O61DfbRf76YfP6Qz0ZRsmb6+jTacrb+mcybbd7cRt8njsZ3uaz+7 YbZM1w7c0+0a1U302dve52odzo/2K7ypPWX6fhNjGMaa1vLidHANlblkChKPb0hOX9zQxrPhl5um NLLnCvXRfsVt0hFrJ45pUeM6uL/5Z0yNtmB9D+12e4n6TVnTw4bNpXHTe5OKvvXRtvGZkfd5lO7P FqTlaErKqGQtz8MW9rnXgVuvRg4QQAABBBCor8C1p5/aWFpa2piZmdnw+ndxekMa31hYTYdeXRjf kKY3Lia7L25MSxvjQUB7OwmwsWHHtbqwMZ6Eb4QJ421OrxGiP7f+8R//sT8L1mapwvrXhtT4L2xT VkR2O7J2m834+Om4YZZsZ12rj4K8ZrJuMh+cE0ne4wCpOHLOrdT74UHp87PEMZk40/HlpRHgtz6n HWXMiz8uvvnbtfqwI+3Z9urGwrg21FSx0f7xhY2ge82zseohNLL6RkfbtouVdc2+jttc9hxrSsuO tCr1YdmkspfnaAJkwjdZpCJpvEiFy8TRCBVtBe/Hn4th/Sa2qfdyzkmr/yrs/5oS7db50X/tNKzz 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 y/CYBLISCJtUSPus6hmCijNiBZrOalsn5SfnTmpN1oUESIAESIAESIAESIAESIAESIAEGkqgaZMN Mgit7TtbB58dHDaDoz2gjDUYVhWfBPdSYSdUfN9jcOMBlzFWnAYGh91AwAlUKZFGtltio+orKBkK 90J+1yxljAkXQ/lR7DTLqhNZUsBG6cXqLadNlo7t8LhAEue53A6P65ilt85gFoPYKMrSA4Zn7CjP 5TGPDmOK1wVNRNvrQdrpol2ulk9dR1M6P0kgIYGeeyHjqBft75m5/8wkdTJdPUPj6rnn0ZUsb8dL kXPHNzErSAIkQAIkQAIkQAIkQAIkQAIkQAL1InBdvRTH6hXBiEtArpjDtBYeLM3hgD0oS5nsfGIb ogdDR+dw81gOA7kJRzo/OoO5Ia8bHcjYAK6MIywPhHsd7Uu9ke3mNaJJZy7DYs7czcqUQI4JrCwc mMHojgG3TQZLmBmdwoDG3zN0FDPYgYGBHNwWEW1wQLmLkb7sF5ErDsBt1kGMjuYx4WaQluTzkHEY nMuDJcx5voiuwYHlRsi7OXlEAlkJhHzPqrr/1E6gMwMTKOaAubkDWY3roPzk3EGNyaqQAAmQAAmQ AAmQAAmQAAmQAAmQQEMJrHj76aeWL924Bu+88w5KpVJDCr9w4UJDymEhJFAPAs8//zwee+yxeqim ThIgARIgARIgARIgARIgARIgARIgARIgARIgARLITGDdunX48ssvM+uJU3Dt2jWsXr0a534+jia5 UYozkekkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQALtQoCTDe3SUrSTBEiABEiABEiA BEiABEiABEiABEiABEiABEiABEiABFqUACcbWrRhaBYJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ kAAJkAAJtAsBTja0S0vRThIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARJoUQLXBdn1H2/8 p7z83x/OByVXfe0f7uiXeb936f9WrYMZSaD5BL6CdeXnmm8GLSABEiABEiABEiABEiABEiABEiAB EiABEiABEiCBIALr/i3oal2vBU42mEmGPXv21LTwyclJqe97X6mpWiojARIgARIgARIgARIgARIg ARIgARIgARIgARIgARIgARJoIoHAyYYm2sOiSYAESIAESIAESIAESIAESIAESIAESIAESIAESIAE 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 YQREoOMpiLiDOsZdh9WP1ekmAsrNmQrQvaqbKt61dc082dC15FhxEmgqgTV4obSragtkwJ+qczNj EgJknIQSZUiABEiABEiABEiABEiABEggK4Fs/eOspdc0vwiMXuKKtZoypbImE1DfzxeabAWLbxyB wMmGvXv31sUCo/fCBQaIrgtgKm0MgQvP40KhPt+RxlSApZAACZAACZAACZAACZAACZAACZAACZAA CZAACXQygXVNqBxjNjQBOoskARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggU4iwMmGTmpN 1oUESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEmkCAkw1NgM4iSYAESIAESIAESIAESIAE SIAESIAESIAESIAESIAESKCTCDR3sqE8hlwu5/wbKwegpUx2Phrr0rEdyOV24NiSxXnpGHZYbWC3 hzj2tIlHdgxBzYVGtpdVjWYelsdyyO04Bhura88Sju3IIecB6aY296iMsVwOOzw3hM8i2Z6+e8Yn wlMSqAkB37PDeRb5v1ue51Dcdyv8+6eeh+q7WxP720UJObdLS9FOEiABEiABEiABEiABEiABEiAB Emg7As2bbBADHsVpDJbmMDc3h7mZUSwUfYPblMnOxxqYG5iYrbxBe4ZwVPD3/5sZRd6SlgNzAxPo 0+01M7qAon8yopHtZdnGQxIggfYnsPTJApAfxYz/WXR0CD2meuJ5NjABjM7oZ9YMRheK6SfzymMQ z8O80HN0yGjvik9y7opmZiVJgARIgARIgARIgARIgARIgARIoCkEmjTZsIRjU9PAYAkHCrrePUMY HgSmp8wKccpk5wPAnkwoDSa+yZbeOoPZ/Ch2ivZZOob9emDOtFfP0FEIdc1pr8TVoCAJkEAHESi/ NCGfS+NDZvqhB/duyosHkXfHVlSd9aSomGg46uiJytB9aeTcfW3OGpMACZAACZAACZAACZAACZAA CZBALQg0bbJhcRYY3GhmGlRVChsHgdlF7Y5mCZTJyqfaW6SMl8TkwqZ71YpiPWHhH5jr6c03qb2q rVcr5HNdFzluXKQbK9stlStjW6zkLTlr14pyOeNzd1SRHu7uSbqCMu60/G5rbCPk3JNwx+W6P4t0 w+TLy1MSCCOwJB74fTe7uxgqBMs4Ow33uaTTxcTn3NxRJJo3EN+Jopro9j/PKorr0Avk3KENy2qR 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 8j14+P41XTy6FvuaW2icuqZ7mU6OjUCVBbxKhH1PvZudUgvzpYNS/F1b0zMffi2zMiE7gmjtW4/K jvFFi+eXTzQMOnAbcR64LOWEcgS41nNgWN0zgUG5JgflPHp2IfTRgcvkddbpZJUng7LRXfppuryf tT/rEEAAAQQQQKCvBXpU2bCuV198WXrwn/X8PZHfzU9o+kHppy+6VvSEad/HejQ8qOd+/Yhe+ctP 9BXvUr3psXf0yoPv6rnHnLe3MXexanmSm9At3fCrX7wcVNL842MjiePe9NhreuZO/5pObOYDAgj4 Ajc/oTddRefPHvG3xMu/OnFQv7nzuGrftRH93Tfvkl57vnxPm6jC1Coa3kx9Z+MDDfICzoOcu5yb L8C17muwXAWBQbkmB+U8qnBNVD0NJfK6mVOIy0a/aNQrtZkYCYsAAggggAACVRS45p2jz11du/4z +vu///sqpo80IYAAAggggAACCCCAAAIIIIAAAggggAACCCCAQEUFbrjhBr37g+d1raXvwQcfrGgy SRYCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUXSCobPjkk0+qnk7ShwACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAhUV6NGcDRXVIFkIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQtACVDU2T sQMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgj4AlQ2+BosI4AAAggggAACCCCAAAIIIIAAAggg gAACCCCAQNMCVDY0TcYOCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg4AtQ2eBrsIwAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAJNC1DZ0DQZOyCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggIAv QGWDr8EyAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINC1AZUPTZOyAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACvgCVDb4GywgggAACCCCAAAIIIIAAAggggAACCCCAAAIIINC0AJUNTZOxAwII IIAAAggggAACCCCAAAIIIIAAAggggAACCPgCVDb4GiwjgAACCCCAAAIIIIAAAggggAACCCCAAAII IIBA0wJUNjRNxg4IIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgC1DZ4GuwjAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAk0LUNnQNBk7IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgC9AZYOv wTICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0LXBt03uwAwIIIIAAAggggAACCCCAAAIIbCuB 8+fPb6vzHaSTveOOO0qdDnlciolAJQTKXnMWFdddCdCKBimbz+RxRTOwRLLK5rEfFZUNvgbLCCCA AAIIIIAAAggggAACCCCQKbBz587M9aysrsDm5mZTiSOPm+IicIZAs9ecRcF1lwFZ8VXN5jN5XPEM zUhes3nsomAYJSfBOwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLQkQGVDS2zshAACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAk6AygYnwTsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgi0JEBl Q0ts7IQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJOgMoGJ8E7AggggAACCCCAAAIIIIAAAggg gAACCCCAAAIItCRAZUNLbOyEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACToDKBifBOwIIIIAA AggggAACCCCAAAIIIIAAAggggAACCLQkQGVDS2zshAACCCCAAAIIIIAAAggggAAC/S1wSR8sLurc +pX+Pg1S34JAOu/Tn1uIkl36XCB9DaQ/9/npkXwEtkjg2i06DodBAAEEEEAAAQQQQAABBBBAAIFt K2AP7s7rjwXnv3P33do7shmGvf4O7b9tV8EendwcpXHLj9vJc+hWXKHNZpA/O1IHabQtFXQLP176 YFHn7YKrZH5mmXH9tX15XPpAi0Gm+zHt1O6792okfdn6QVpajvKrYN/wN63jBy846nbeTL70Ovep bOh1DnB8BBBAAAEEEEAAAQQQQAABBAZeYJdu279ft8XnmfWw1W3cdAu8I9CiwCX92dVs/fHPunTb Lm1ltVWLiWa3NgRc5dL1d+xXoo4yqIBY16f3jqizj/yb+U1r48TYtUkB8qVJsI4Hp7Kh46REiAAC CCCAAAIIIIAAAggggAACrQukHxa1HlNze/bquM2lktAlBC79WX/UTu3evVNra3/Uny/dpl2Vr23g +iuRs9lBLn0Q9FYP3TYAAAuJSURBVGKpq2iw0Ltu0/7K5332abEWgX4UoLKhH3ONNCOAAAIIIIAA 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 QAABE/j/AfWGjlWsHSwXAAAAAElFTkSuQmCC --089e013a099657f7a2052bc1c5bf-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 22:32:23 2016 Received: (at 22526) by debbugs.gnu.org; 15 Feb 2016 03:32:23 +0000 Received: from localhost ([127.0.0.1]:39195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV9tf-0003Ok-7H for submit@debbugs.gnu.org; Sun, 14 Feb 2016 22:32:23 -0500 Received: from eggs.gnu.org ([208.118.235.92]:33372) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aV9td-0003OW-8h for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 22:32:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aV9tT-0003Zb-4E for 22526@debbugs.gnu.org; Sun, 14 Feb 2016 22:32:16 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39169) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aV9tT-0003ZX-1X; Sun, 14 Feb 2016 22:32:11 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4078 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aV9tS-0007Ob-80; Sun, 14 Feb 2016 22:32:10 -0500 Date: Mon, 15 Feb 2016 05:32:15 +0200 Message-Id: <83si0uy7gg.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Sun, 14 Feb 2016 22:41:43 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> <83twlbx9gp.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Sun, 14 Feb 2016 22:41:43 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > As vmmap shows it, the next region is unusable. > The reserved region is 4k and the 60k after are lost. But we only asked for 800 bytes, which could have been satisfied by those 4KB that were reserved there, no? So why dod the commit fail? > I think it is worth to try that : > > diff --git a/src/w32heap.c b/src/w32heap.c > index 69706a3..db14357 100644 > --- a/src/w32heap.c > +++ b/src/w32heap.c > @@ -641,12 +641,12 @@ mmap_alloc (void **var, size_t nbytes) > advance, and the buffer is enlarged several times as the data is > decompressed on the fly. */ > if (nbytes < MAX_BUFFER_SIZE) > - p = VirtualAlloc (NULL, (nbytes * 2), MEM_RESERVE, PAGE_READWRITE); > + p = VirtualAlloc (NULL, ROUND_UP((nbytes * 2), get_allocation_unit()), MEM_RESERVE, > PAGE_READWRITE); > > /* If it fails, or if the request is above 512MB, try with the > requested size. */ > if (p == NULL) > - p = VirtualAlloc (NULL, nbytes, MEM_RESERVE, PAGE_READWRITE); > + p = VirtualAlloc (NULL, ROUND_UP(nbytes, get_allocation_unit()), MEM_RESERVE, > PAGE_READWRITE); > > if (p != NULL) > { > > because running with it, vmmap shows now : > > Images intégrées 1 > > and you see the 64k block is reserved, the first 4k are commited and the next 60k are usable. > Anyway, it is more correct with this patch than without it. I agree. I will commit something like that soon. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 03:09:36 2016 Received: (at 22526) by debbugs.gnu.org; 15 Feb 2016 08:09:36 +0000 Received: from localhost ([127.0.0.1]:39316 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVEDw-00038i-C5 for submit@debbugs.gnu.org; Mon, 15 Feb 2016 03:09:36 -0500 Received: from mail-ob0-f170.google.com ([209.85.214.170]:33256) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVEDu-00038U-Ea for 22526@debbugs.gnu.org; Mon, 15 Feb 2016 03:09:34 -0500 Received: by mail-ob0-f170.google.com with SMTP id jq7so17230261obb.0 for <22526@debbugs.gnu.org>; Mon, 15 Feb 2016 00:09:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=Svj1Sn0AJ1pZ6L+9tsm6aOv8bbQJbq3lyL5mRAXVFM8=; b=sdiXXlWZKQUj/WkZv259BSch3Z1qLiYiNtgqO6Plzj/YrEbOCTeefq9Bti/YFjCIAw hHE8ripXBtfUBEBsSmQua2Grs3DFMqUMB3diDm0Zea0A7jfLKN141N7Mez0QQwCj+EiJ JT9s55vQFHzMAd8CuXbidg2rW2as6JrD+VEPc0Wjowx0Cwn1aspLrA4PTfx/a5oQcOkG ciEjiK3QD/rW1Gf1rnAMAd0BF5/hFR1CT5xdNqWqsWMT0lNef2HHaleD4bBuEuASxwuE 4IfJNdXqQX5T3YZ95iXIXeyq70WQwlUL8EEQzWy81NvFv8zhi622Xjbyy2DkMrVLzItl J3fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=Svj1Sn0AJ1pZ6L+9tsm6aOv8bbQJbq3lyL5mRAXVFM8=; b=T1Z5jvMkDV5Jm1VPQmrGtZ/SfXRLz0GKToqPGA+LwUlErNL0lHx4p5Au70Hs0spsLc GmXBJ6GVnftxuKzPFWphv6tn9H4UVdO1lyRMNVgQb2UIfkRCRwEF1r5DrZZTkwL3H50g LBBfBq8sBJ6OM9cOZroFw5vq7L2WzbrCcy22+j9jLS3q1l30uW0YSWX7IwQfTy+hC4wx pmiwYW3whWr2WD/LuXhj/L8XMqVfEDl+s94OrGkVurVtiNWko0hL7uo31Yzxfa9IUXH2 4LoXn9FnIZdekEhh4B+eeYaSRUlyrElV2TGB9zfDpP9rHMOReqWVF03Xe1+tN/w4St8R +2rg== X-Gm-Message-State: AG10YOT5u9oXJNPdvryRTzwSvgZ1dxODAV0ha2w2kTR3C9jZf6U5wO5H+dpviMSNHI1gVW36RLU76NAFIckyyw== X-Received: by 10.202.223.84 with SMTP id w81mr10853860oig.8.1455523768932; Mon, 15 Feb 2016 00:09:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.78.131 with HTTP; Mon, 15 Feb 2016 00:09:09 -0800 (PST) In-Reply-To: <83si0uy7gg.fsf@gnu.org> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> <83twlbx9gp.fsf@gnu.org> <83si0uy7gg.fsf@gnu.org> From: Fabrice Popineau Date: Mon, 15 Feb 2016 09:09:09 +0100 Message-ID: Subject: Re: bug#22526: 25.0.90; Crash starting gnus To: Eli Zaretskii Content-Type: multipart/alternative; boundary=001a113d38ce359f94052bca89c1 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a113d38ce359f94052bca89c1 Content-Type: text/plain; charset=UTF-8 2016-02-15 4:32 GMT+01:00 Eli Zaretskii : > > From: Fabrice Popineau > > Date: Sun, 14 Feb 2016 22:41:43 +0100 > > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > > As vmmap shows it, the next region is unusable. > > The reserved region is 4k and the 60k after are lost. > > But we only asked for 800 bytes, which could have been satisfied by > those 4KB that were reserved there, no? So why dod the commit fail? > > As I read it, the first bloc has been reserved and committed for 4k = 0x10000 starting at 0x1f0000, and then 800 bytes have been asked for at 0x1f0000+0x10000 = 0x200000, but we failedl to extend the block (mmap_realloc failed to commit further pages to accommodate the 800 bytes). Am I wrong ? Fabrice --001a113d38ce359f94052bca89c1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


2016-02-15 4:32 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
=
> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sun, 14 Feb 2016 22:41:43 +0100
> Cc: andrewjmoreton@gmail.c= om, 22526@debbugs.gnu.org<= br> >
> As vmmap shows it, the next region is unusable.
> The reserved region is 4k and the 60k after are lost.

But we only asked for 800 bytes, which could have been satisfied by<= br> those 4KB that were reserved there, no?=C2=A0 So why dod the commit fail?

As I read it, = the first bloc has been reserved and committed for 4k =3D 0x10000 starting = at 0x1f0000, and then 800 bytes
have been asked for at 0x1f0000+0= x10000 =3D 0x200000, but we failedl to extend the block (mmap_realloc faile= d
to commit further pages to accommodate the 800 bytes).

Am I wrong ?

Fabrice
--001a113d38ce359f94052bca89c1-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 06:39:08 2016 Received: (at 22526) by debbugs.gnu.org; 15 Feb 2016 11:39:08 +0000 Received: from localhost ([127.0.0.1]:39419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVHUi-0001OL-E9 for submit@debbugs.gnu.org; Mon, 15 Feb 2016 06:39:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:53466) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVHUh-0001OA-Am for 22526@debbugs.gnu.org; Mon, 15 Feb 2016 06:39:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVHUX-0006w1-9Q for 22526@debbugs.gnu.org; Mon, 15 Feb 2016 06:39:02 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:47907) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVHUX-0006vx-66; Mon, 15 Feb 2016 06:38:57 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4693 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aVHUW-0005qk-HB; Mon, 15 Feb 2016 06:38:56 -0500 Date: Mon, 15 Feb 2016 13:39:02 +0200 Message-Id: <83io1qxkx5.fsf@gnu.org> From: Eli Zaretskii To: Fabrice Popineau In-reply-to: (message from Fabrice Popineau on Mon, 15 Feb 2016 09:09:09 +0100) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <83vb5s6gas.fsf@gnu.org> <83d1s05zov.fsf@gnu.org> <83r3ggz2dt.fsf@gnu.org> <83povzzw5d.fsf@gnu.org> <86egcfs7f4.fsf@gmail.com> <83a8n3z0yb.fsf@gnu.org> <837fi7yyce.fsf@gnu.org> <83twlbx9gp.fsf@gnu.org> <83si0uy7gg.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Fabrice Popineau > Date: Mon, 15 Feb 2016 09:09:09 +0100 > Cc: andrewjmoreton@gmail.com, 22526@debbugs.gnu.org > > > As vmmap shows it, the next region is unusable. > > The reserved region is 4k and the 60k after are lost. > > But we only asked for 800 bytes, which could have been satisfied by > those 4KB that were reserved there, no? So why dod the commit fail? > > As I read it, the first bloc has been reserved and committed for 4k = 0x10000 starting at 0x1f0000, and then > 800 bytes > have been asked for at 0x1f0000+0x10000 = 0x200000, but we failedl to extend the block (mmap_realloc > failed > to commit further pages to accommodate the 800 bytes). No. We had a buffer whose size was 0xf804, in a block starting at 0x1f0000, which means we already had 0x10000 committed there. We needed to enlarge buffer text by another 0x1000 (4KB), which exceeded the 64KB committed size by 807 bytes, so we asked for a commit of 807 bytes of the next region, starting at 0x200000. That should have given us a single 4KB page, since the state of that region was "reserved". Instead, it failed with ERROR_INVALID_PARAMETER. IOW, all of the 64KB of the 0x1f0000 block were already committed, and all we needed was a single page of the next block. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 20:19:37 2016 Received: (at submit) by debbugs.gnu.org; 16 Feb 2016 01:19:37 +0000 Received: from localhost ([127.0.0.1]:40613 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVUIi-0002pl-WD for submit@debbugs.gnu.org; Mon, 15 Feb 2016 20:19:37 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36802) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVUIh-0002pT-TB for submit@debbugs.gnu.org; Mon, 15 Feb 2016 20:19:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVUIb-00069w-Q3 for submit@debbugs.gnu.org; Mon, 15 Feb 2016 20:19:30 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58047) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUIb-00069s-N7 for submit@debbugs.gnu.org; Mon, 15 Feb 2016 20:19:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUIa-00078u-PJ for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 20:19:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVUIX-000697-JT for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 20:19:28 -0500 Received: from plane.gmane.org ([80.91.229.3]:51379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVUIX-00068w-C7 for bug-gnu-emacs@gnu.org; Mon, 15 Feb 2016 20:19:25 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aVUIR-0000Ut-Qk for bug-gnu-emacs@gnu.org; Tue, 16 Feb 2016 02:19:19 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 16 Feb 2016 02:19:19 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 16 Feb 2016 02:19:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Tue, 16 Feb 2016 01:18:51 +0000 Lines: 25 Message-ID: <86oabhqwp0.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> <56BF9F89.5020008@gmail.com> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.91 (windows-nt) Cancel-Lock: sha1:H648PWhlN0e1K81hzSZp+KwcDmo= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sat 13 Feb 2016, Andy Moreton wrote: > On 13/02/2016 15:52, Eli Zaretskii wrote: >> Thanks. Please run Emacs under GDB, and see if you get any of the >> debug printouts in mmap_alloc and mmap_realloc when this problem >> happens (if it happens). > > I now have an emacs built from changeset d97f522d3d3f with your patch. > After a few runs, I now have a gdb session with: > > warning: realloc enlarge: VirtualAlloc error 87 > > Program received signal SIGSEGV, Segmentation fault. > 0x000000040017209c in make_gap_larger (nbytes_added=0x1000) at > ../../src/insdel.c:411 > 411 *(Z_ADDR) = 0; > > I will keep the gdb session running for further debugging. > > AndyM More recent runs, built from changeset d4b93e11a519 no longer seem to reproduce this problem. AndyM From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 22:46:10 2016 Received: (at 22526) by debbugs.gnu.org; 16 Feb 2016 03:46:10 +0000 Received: from localhost ([127.0.0.1]:40646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVWaY-0006Ac-Dr for submit@debbugs.gnu.org; Mon, 15 Feb 2016 22:46:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:34635) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aVWaW-0006AP-V1 for 22526@debbugs.gnu.org; Mon, 15 Feb 2016 22:46:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVWaM-0002SM-Pn for 22526@debbugs.gnu.org; Mon, 15 Feb 2016 22:46:03 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38778) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVWaM-0002SG-MF; Mon, 15 Feb 2016 22:45:58 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2498 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aVWaL-0005dH-V2; Mon, 15 Feb 2016 22:45:58 -0500 Date: Tue, 16 Feb 2016 05:46:06 +0200 Message-Id: <83povxwc5d.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <86oabhqwp0.fsf@gmail.com> (message from Andy Moreton on Tue, 16 Feb 2016 01:18:51 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> <56BF9F89.5020008@gmail.com> <86oabhqwp0.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andy Moreton > Date: Tue, 16 Feb 2016 01:18:51 +0000 > > On Sat 13 Feb 2016, Andy Moreton wrote: > > > On 13/02/2016 15:52, Eli Zaretskii wrote: > >> Thanks. Please run Emacs under GDB, and see if you get any of the > >> debug printouts in mmap_alloc and mmap_realloc when this problem > >> happens (if it happens). > > > > I now have an emacs built from changeset d97f522d3d3f with your patch. > > After a few runs, I now have a gdb session with: > > > > warning: realloc enlarge: VirtualAlloc error 87 > > > > Program received signal SIGSEGV, Segmentation fault. > > 0x000000040017209c in make_gap_larger (nbytes_added=0x1000) at > > ../../src/insdel.c:411 > > 411 *(Z_ADDR) = 0; > > > > I will keep the gdb session running for further debugging. > > > > AndyM > > More recent runs, built from changeset d4b93e11a519 no longer seem to > reproduce this problem. Too bad. Let's wait for a few more days, and if it doesn't return, make the changes for allocation granularity and close the bug. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 20 06:08:53 2016 Received: (at 22526) by debbugs.gnu.org; 20 Feb 2016 11:08:53 +0000 Received: from localhost ([127.0.0.1]:34606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aX5PB-0000pG-6D for submit@debbugs.gnu.org; Sat, 20 Feb 2016 06:08:53 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55005) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aX5PA-0000p4-7C for 22526@debbugs.gnu.org; Sat, 20 Feb 2016 06:08:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aX5P4-0001vV-6a for 22526@debbugs.gnu.org; Sat, 20 Feb 2016 06:08:47 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59216) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aX5Oy-0001rB-Gf; Sat, 20 Feb 2016 06:08:40 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1404 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aX5Ox-0004YC-Nj; Sat, 20 Feb 2016 06:08:40 -0500 Date: Sat, 20 Feb 2016 13:08:25 +0200 Message-Id: <83bn7bprkm.fsf@gnu.org> From: Eli Zaretskii To: andrewjmoreton@gmail.com In-reply-to: <83povxwc5d.fsf@gnu.org> (message from Eli Zaretskii on Tue, 16 Feb 2016 05:46:06 +0200) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> <56BF9F89.5020008@gmail.com> <86oabhqwp0.fsf@gmail.com> <83povxwc5d.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526 Cc: 22526@debbugs.gnu.org, Fabrice Popineau X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Tue, 16 Feb 2016 05:46:06 +0200 > From: Eli Zaretskii > Cc: 22526@debbugs.gnu.org > > > More recent runs, built from changeset d4b93e11a519 no longer seem to > > reproduce this problem. > > Too bad. Let's wait for a few more days, and if it doesn't return, > make the changes for allocation granularity and close the bug. Any news on this? If not, I will install the changes that make the memory reservations 64KB granular, and close the bug. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 20 11:17:42 2016 Received: (at submit) by debbugs.gnu.org; 20 Feb 2016 16:17:42 +0000 Received: from localhost ([127.0.0.1]:35522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXAE2-0001Xe-9z for submit@debbugs.gnu.org; Sat, 20 Feb 2016 11:17:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44899) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXAE0-0001XR-W3 for submit@debbugs.gnu.org; Sat, 20 Feb 2016 11:17:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXADu-0004cx-V9 for submit@debbugs.gnu.org; Sat, 20 Feb 2016 11:17:35 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_20,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:42722) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXADu-0004ct-Rx for submit@debbugs.gnu.org; Sat, 20 Feb 2016 11:17:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXADu-0006xm-10 for bug-gnu-emacs@gnu.org; Sat, 20 Feb 2016 11:17:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXADp-0004cV-1g for bug-gnu-emacs@gnu.org; Sat, 20 Feb 2016 11:17:33 -0500 Received: from plane.gmane.org ([80.91.229.3]:33951) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXADo-0004bq-Qh for bug-gnu-emacs@gnu.org; Sat, 20 Feb 2016 11:17:28 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aXADk-00051K-9a for bug-gnu-emacs@gnu.org; Sat, 20 Feb 2016 17:17:24 +0100 Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 20 Feb 2016 17:17:24 +0100 Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 20 Feb 2016 17:17:24 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#22526: 25.0.90; Crash starting gnus Date: Sat, 20 Feb 2016 16:17:15 +0000 Lines: 18 Message-ID: <86ziuv8igk.fsf@gmail.com> References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> <56BF9F89.5020008@gmail.com> <86oabhqwp0.fsf@gmail.com> <83povxwc5d.fsf@gnu.org> <83bn7bprkm.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.91 (windows-nt) Cancel-Lock: sha1:otjrXarEwBphfiDpBMjZi28g/xo= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Sat 20 Feb 2016, Eli Zaretskii wrote: >> Date: Tue, 16 Feb 2016 05:46:06 +0200 >> From: Eli Zaretskii >> Cc: 22526@debbugs.gnu.org >> >> > More recent runs, built from changeset d4b93e11a519 no longer seem to >> > reproduce this problem. >> >> Too bad. Let's wait for a few more days, and if it doesn't return, >> make the changes for allocation granularity and close the bug. > > Any news on this? If not, I will install the changes that make the > memory reservations 64KB granular, and close the bug. No problems since the previous patch, so I think this can be closed now. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 20 12:02:11 2016 Received: (at 22526-done) by debbugs.gnu.org; 20 Feb 2016 17:02:11 +0000 Received: from localhost ([127.0.0.1]:35547 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXAv5-0002ZL-40 for submit@debbugs.gnu.org; Sat, 20 Feb 2016 12:02:11 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55049) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXAv3-0002Z8-0C for 22526-done@debbugs.gnu.org; Sat, 20 Feb 2016 12:02:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXAuu-0007ev-Ow for 22526-done@debbugs.gnu.org; Sat, 20 Feb 2016 12:02:03 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38031) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXAuu-0007en-Lc; Sat, 20 Feb 2016 12:02:00 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2840 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aXAut-0002KX-Nq; Sat, 20 Feb 2016 12:02:00 -0500 Date: Sat, 20 Feb 2016 19:01:44 +0200 Message-Id: <83mvqvnwnb.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-reply-to: <86ziuv8igk.fsf@gmail.com> (message from Andy Moreton on Sat, 20 Feb 2016 16:17:15 +0000) Subject: Re: bug#22526: 25.0.90; Crash starting gnus References: <56AFD88B.5040904@gmail.com> <87pow9cc0c.fsf@gnus.org> <83h9hkse78.fsf@gnu.org> <864mdk44q6.fsf@gmail.com> <83mvrcqli1.fsf@gnu.org> <86twlg2e69.fsf@gmail.com> <8360xv9ems.fsf@gnu.org> <8637sz7xmh.fsf@gmail.com> <83io1v7xcd.fsf@gnu.org> <83fuwx7vkv.fsf@gnu.org> <86fuwxk1l1.fsf@gmail.com> <837fi96mkq.fsf@gnu.org> <86d1s0hc8f.fsf@gmail.com> <83fuww6205.fsf@gnu.org> <56BF9F89.5020008@gmail.com> <86oabhqwp0.fsf@gmail.com> <83povxwc5d.fsf@gnu.org> <83bn7bprkm.fsf@gnu.org> <86ziuv8igk.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22526-done Cc: 22526-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andy Moreton > Date: Sat, 20 Feb 2016 16:17:15 +0000 > > On Sat 20 Feb 2016, Eli Zaretskii wrote: > > >> Date: Tue, 16 Feb 2016 05:46:06 +0200 > >> From: Eli Zaretskii > >> Cc: 22526@debbugs.gnu.org > >> > >> > More recent runs, built from changeset d4b93e11a519 no longer seem to > >> > reproduce this problem. > >> > >> Too bad. Let's wait for a few more days, and if it doesn't return, > >> make the changes for allocation granularity and close the bug. > > > > Any news on this? If not, I will install the changes that make the > > memory reservations 64KB granular, and close the bug. > > No problems since the previous patch, so I think this can be closed now. Done. Thanks a lot to you and Fabrice for helping to investigate this serious problem. From unknown Tue Jun 17 20:32:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 20 Mar 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator