From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Vivek Dasmohapatra Newsgroups: gmane.emacs.bugs Subject: bug#26932: 25.1; Crash triggered a few times a day with network process Date: Mon, 19 Jun 2017 19:03:40 +0100 (BST) Message-ID: References: <83bmqu7rdd.fsf@gnu.org> <83h8zl5mag.fsf@gnu.org> <831sqp5hn3.fsf@gnu.org> <83zidd4196.fsf@gnu.org> <83bmpr4z7s.fsf@gnu.org> <8337b34qnw.fsf@gnu.org> <83zidb2t9o.fsf@gnu.org> <83d1a52tq6.fsf@gnu.org> <837f08xbup.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-62895748-1497895428=:8385" X-Trace: blaine.gmane.org 1497895454 10314 195.159.176.226 (19 Jun 2017 18:04:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 19 Jun 2017 18:04:14 +0000 (UTC) User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) Cc: 26932@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 19 20:04:08 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN120-0002NG-5R for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 20:04:08 +0200 Original-Received: from localhost ([::1]:43789 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dN125-0005Q3-69 for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 14:04:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dN11y-0005Ow-QM for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 14:04:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dN11u-0002AF-FP for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 14:04:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53820) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dN11u-00029K-Cq for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 14:04:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dN11t-0006hD-S3 for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 14:04:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Vivek Dasmohapatra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2017 18:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26932 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 26932-submit@debbugs.gnu.org id=B26932.149789543325724 (code B ref 26932); Mon, 19 Jun 2017 18:04:01 +0000 Original-Received: (at 26932) by debbugs.gnu.org; 19 Jun 2017 18:03:53 +0000 Original-Received: from localhost ([127.0.0.1]:56497 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN11k-0006gq-Lr for submit@debbugs.gnu.org; Mon, 19 Jun 2017 14:03:52 -0400 Original-Received: from ceres.etla.org ([85.119.82.193]:50915) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN11i-0006gh-P5 for 26932@debbugs.gnu.org; Mon, 19 Jun 2017 14:03:51 -0400 Original-Received: from platypus.pepperfish.net ([2a01:4f8:201:620f::2001]) by ceres.etla.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dN11g-0001Xf-CK; Mon, 19 Jun 2017 19:03:48 +0100 X-X-Sender: vivek@platypus.pepperfish.net In-Reply-To: <837f08xbup.fsf@gnu.org> X-Spam_score: -3.0 X-Spam_score_int: -29 X-Spam_bar: --- X-Spam_report: Spam detection software, running on the system "ceres.etla.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: idx 7 is a cons, the car is integer 273081 (probably a buffer size or char position), the cdr is a cons whose car is another instance of DEAD (gdb) p last_marked[7] $285 = 48953395 (gdb) p XTYPE(last_marked[7]) $286 = Lisp_Cons (gdb) p *XTYPE(last_marked[7]) Attempt to take contents of a non-pointer value. (gdb) p *XCONS(last_marked[7]) $287 = {car = 1092326, u = {cdr = 48953379, chain = 0x2eaf823}} (gdb) p XTYPE(1092326) $288 = Lisp_Int1 (gdb) p XTYPE(48953379) $289 = Lisp_Cons (gdb) p XINT(1092326) $290 = 273081 (gdb) p *XCONS(48953379) $291 = {car = 8 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:133764 Archived-At: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-62895748-1497895428=:8385 Content-Type: TEXT/PLAIN; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT idx 7 is a cons, the car is integer 273081 (probably a buffer size or char position), the cdr is a cons whose car is another instance of DEAD (gdb) p last_marked[7] $285 = 48953395 (gdb) p XTYPE(last_marked[7]) $286 = Lisp_Cons (gdb) p *XTYPE(last_marked[7]) Attempt to take contents of a non-pointer value. (gdb) p *XCONS(last_marked[7]) $287 = {car = 1092326, u = {cdr = 48953379, chain = 0x2eaf823}} (gdb) p XTYPE(1092326) $288 = Lisp_Int1 (gdb) p XTYPE(48953379) $289 = Lisp_Cons (gdb) p XINT(1092326) $290 = 273081 (gdb) p *XCONS(48953379) $291 = {car = 8760836, u = {cdr = 48953363, chain = 0x2eaf813}} (gdb) p XTYPE(8760836) $292 = Lisp_String (gdb) p *XSTRING(8760836) $293 = {size = 4, size_byte = -1, intervals = 0x0, data = 0xb374bb "DEAD"} idx 6 seems to be a marker (I guess?) inside a cons: (gdb) p *XCONS(last_marked[6]) $226 = {car = 21742881, u = {cdr = -30, chain = 0xffffffffffffffe2}} (gdb) p XTYPE(21742881) $227 = Lisp_Misc (gdb) p XTYPE(-30) $228 = Lisp_Int0 (gdb) p XINT(-30) $229 = -8 (gdb) p XTYPE(21742881) $230 = Lisp_Misc (gdb) p *XMISC(21742881) $231 = {u_any = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128}, u_free = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, chain = 0x1e1d370}, u_marker = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, need_adjustment = false, insertion_type = false, buffer = 0x1e1d370, next = 0x14bc548, charpos = 275053, bytepos = 275063}, u_overlay = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, next = 0x1e1d370, start = 21742920, end = 275053, plist = 275063}, u_save_value = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 0, save_type = SAVE_TYPE_FUNCPTR_PTR_OBJ, data = {{pointer = 0x1e1d370, funcpointer = 0x1e1d370, integer = 31576944, object = 31576944}, { pointer = 0x14bc548, funcpointer = 0x14bc548, integer = 21742920, object = 21742920}, {pointer = 0x4326d, funcpointer = 0x4326d, integer = 275053, object = 275053}, {pointer = 0x43277, funcpointer = 0x43277, integer = 275063, object = 275063}}}, u_finalizer = {base = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128}, prev = 0x1e1d370, next = 0x14bc548, function = 275053}} >From here on things don't look interesting (to me) but included for completemess: just character positions, cons cells, small chunks of text and the symbol nil. Would recompiling the the GC sanity checking turned on be useful here? How hard would it be to make emacs log the pointer or pseudopointer and context when creating an object to stderr so we could figure out which object got corrupted? I guess we'd be swamped by output, especially as it can take a long time to trigger the bug. ======================================================================================= idx 5 looks like a cons cell whose first element is the cons containing the idx 6 entry: (gdb) p XTYPE(last_marked[5]) $242 = Lisp_Cons (gdb) p *XCONS(last_marked[5]) $243 = {car = 44165379, u = {cdr = 48953395, chain = 0x2eaf833}} (gdb) p XTYPE(44165379) $244 = Lisp_Cons (gdb) p XTYPE(48953395) $245 = Lisp_Cons (gdb) p *XCONS(44165379) $246 = {car = 21742881, u = {cdr = -30, chain = 0xffffffffffffffe2}} (gdb) p XTYPE(21742881) $247 = Lisp_Misc (gdb) p *XMISC(21742881) $248 = {u_any = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128}, u_free = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, chain = 0x1e1d370}, u_marker = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, need_adjustment = false, insertion_type = false, buffer = 0x1e1d370, next = 0x14bc548, charpos = 275053, bytepos = 275063}, u_overlay = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128, next = 0x1e1d370, start = 21742920, end = 275053, plist = 275063}, u_save_value = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 0, save_type = SAVE_TYPE_FUNCPTR_PTR_OBJ, data = {{pointer = 0x1e1d370, funcpointer = 0x1e1d370, integer = 31576944, object = 31576944}, { pointer = 0x14bc548, funcpointer = 0x14bc548, integer = 21742920, object = 21742920}, {pointer = 0x4326d, funcpointer = 0x4326d, integer = 275053, object = 275053}, {pointer = 0x43277, funcpointer = 0x43277, integer = 275063, object = 275063}}}, u_finalizer = {base = {type = Lisp_Misc_Marker, gcmarkbit = true, spacer = 1128}, prev = 0x1e1d370, next = 0x14bc548, function = 275053}} The cdr is a cons whose car is another "DEAD" string. (gdb) p XTYPE(last_marked[5]) $249 = Lisp_Cons (gdb) p *XCONS(last_marked[5]) $250 = {car = 44165379, u = {cdr = 48953395, chain = 0x2eaf833}} (gdb) p XTYPE(48953395) $251 = Lisp_Cons (gdb) p *XCONS(48953395) $252 = {car = 1092326, u = {cdr = 48953379, chain = 0x2eaf823}} (gdb) p XTYPE(1092326) $253 = Lisp_Int1 (gdb) p XINT(1092326) $254 = 273081 (gdb) p XTYPE(48953379) $255 = Lisp_Cons (gdb) p *XCONS(48953379) $256 = {car = 8760836, u = {cdr = 48953363, chain = 0x2eaf813}} (gdb) p XINT(last_marked[4]) $260 = -273073 ← char position? seems close to the number above. (gdb) p *XSTRING(last_marked[3]) $264 = {size = -9223372036854775800, size_byte = 8, intervals = 0x0, data = 0x2ab9f28 "l corpse"} That's an outgoing string sent by the mud client over the newtwork. last_marked[2] contains a cons of( last_marked[3] . last_marked[4] ) last_marked[1] containing structure for the last_marked[2] last_marked[0] (gdb) p XTYPE(last_marked[0]) $310 = Lisp_Symbol (gdb) p *XSYMBOL(last_marked[0]) $311 = {gcmarkbit = true, redirect = SYMBOL_PLAINVAL, constant = 1, interned = 2, declared_special = true, pinned = false, name = 8760940, val = {value = 0, alias = 0x0, blv = 0x0, fwd = 0x0}, function = 0, plist = 33306355, next = 0x0} (gdb) p XTYPE(8760940) $312 = Lisp_String (gdb) p *XSTRING(8760940) $313 = {size = 3, size_byte = -1, intervals = 0x0, data = 0x5f3eec "nil"} last_marked[499] - container of previous last_marked[498] (gdb) p last_marked[498] $326 = 1092298 (gdb) p XTYPE(1092298) $327 = Lisp_Int0 (gdb) p XINT(1092298) $328 = 273074 last_marked[497] - XINT 273073 last_marked[496] (273073 . 273074) last_marked[495] ((273073 . 273074) ...) last_marked[494] 'nil (gdb) p XTYPE(last_marked[494]) $350 = Lisp_Symbol (gdb) p *XSYMBOL(last_marked[494]) $351 = {gcmarkbit = true, redirect = SYMBOL_PLAINVAL, constant = 1, interned = 2, declared_special = true, pinned = false, name = 8760940, val = {value = 0, alias = 0x0, blv = 0x0, fwd = 0x0}, function = 0, plist = 33306355, next = 0x0} (gdb) p XTYPE(8760940) $352 = Lisp_String (gdb) p *XSTRING(8760940) $353 = {size = 3, size_byte = -1, intervals = 0x0, data = 0x5f3eec "nil"} last_marked[493] container last_marked[492] 273074 last_marked[491] ibid last_marked[490] -1 last_marked[489] container last_marked[488] -273073 last_marked[487] "e" last_marked[486] ("e" . -273073) last_marked[485] container --8323329-62895748-1497895428=:8385--