From 031cb42499c4e0e1527cf74eaec5b695b4a594c2 Mon Sep 17 00:00:00 2001 From: Sanjoy Mahajan Date: Fri, 18 Jul 2014 20:11:28 +2000 Subject: [PATCH] emacs UI hang: viewing a thread where msg has .tgz attachment with symlink to .. --- fb/b08f10a89919293585752fbb1b02c49be16dcc | 270 ++++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 fb/b08f10a89919293585752fbb1b02c49be16dcc diff --git a/fb/b08f10a89919293585752fbb1b02c49be16dcc b/fb/b08f10a89919293585752fbb1b02c49be16dcc new file mode 100644 index 000000000..3b95ed00b --- /dev/null +++ b/fb/b08f10a89919293585752fbb1b02c49be16dcc @@ -0,0 +1,270 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 1D5E9431FB6 + for ; Thu, 17 Jul 2014 17:11:40 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id BnJ2hvgQZ1y8 for ; + Thu, 17 Jul 2014 17:11:36 -0700 (PDT) +Received: from dmz-mailsec-scanner-3.mit.edu (dmz-mailsec-scanner-3.mit.edu + [18.9.25.14]) + (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 2DB4A431FAE + for ; Thu, 17 Jul 2014 17:11:36 -0700 (PDT) +X-AuditID: 1209190e-f79946d000007db1-38-53c866379c09 +Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) + (using TLS with cipher AES256-SHA (256/256 bits)) + (Client did not present a certificate) + by dmz-mailsec-scanner-3.mit.edu (Symantec Messaging Gateway) with SMTP + id 71.E9.32177.73668C35; Thu, 17 Jul 2014 20:11:35 -0400 (EDT) +Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) + by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id s6I0BXN8022140 + for ; Thu, 17 Jul 2014 20:11:34 -0400 +Received: from approx.mit.edu (pool-71-126-238-231.bstnma.east.verizon.net + [71.126.238.231]) (authenticated bits=0) + (User authenticated as sanjoy@ATHENA.MIT.EDU) + by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s6I0BVHG024367 + (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) + for ; Thu, 17 Jul 2014 20:11:33 -0400 +Received: from sanjoy by approx.mit.edu with local (Exim 4.82_1-5b7a7c0-XX) + (envelope-from ) id 1X7vlo-0007O5-Vu + for notmuch@notmuchmail.org; Thu, 17 Jul 2014 20:11:29 -0400 +From: Sanjoy Mahajan +To: notmuch@notmuchmail.org +Subject: emacs UI hang: viewing a thread where msg has .tgz attachment with + symlink to .. +User-Agent: Notmuch/0.18.1 (http://notmuchmail.org) Emacs/24.3.1 + (i486-pc-linux-gnu) +Date: Thu, 17 Jul 2014 20:11:28 -0400 +Message-ID: <87fvhzy18v.fsf@approx.mit.edu> +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="=-=-=" +X-Brightmail-Tracker: + H4sIAAAAAAAAA+NgFlrFKsWRmVeSWpSXmKPExsUixCmqrGuediLYYP1xYYvrN2cyOzB6PFt1 + izmAMYrLJiU1J7MstUjfLoErY8GNbewFTzMqGr/MYmtgnJLSxcjJISFgIvFz6VdWCFtM4sK9 + 9WxdjFwcQgKzmSTezljOAuGcZ5R4ffY9O4TzjkniYvNdJgjnMKPE9rYrjF2MHBxsAqoSf/8H + gowSEZCW2Hl3NthYYYFIiaU3TzOD2KICIRI/Z/YwgdgsQOXzvi4As3kFtCWuL/3MAmELSpyc + +QTMZhbQl5g9vZt1AiPfLCSpWUhSELaExMEXL5ghbHGJD4dnM0HYJhKXDjyCshUlpnQ/ZJ8F + dCmzgLzE4nniCxjZVzHKpuRW6eYmZuYUpybrFicn5uWlFuka6+VmluilppRuYgQHsSTfDsav + B5UOMQpwMCrx8D64djxYiDWxrLgy9xCjJAeTkihvZeSJYCG+pPyUyozE4oz4otKc1OJDjCpA + qx5tWH2BUYolLz8vVUmEN/s+UCtvSmJlVWpRPkyZNAeLkjjvW2urYCGB9MSS1OzU1ILUIpis + DAeHkgSvVyrQAsGi1PTUirTMnBKENBMH5yFGCQ4eoOGfkoFqeIsLEnOLM9Mh8qcYXTnmzTrV + xsSxAEwuApNLwOS1v2famITALpMS592YAtQsANKcUZoHNx+WxF4xigO9Lsy7DqSKB5gA4Ta8 + AlrOBLRcuhzks+KSRISUVANj9JlDpdrdp6u4GyZWFXQY+hWfr0gvjnfz/8anelO0Z2N4gDFD + lsVXuXY1Fw0+DU3LwG9Ln7YePLb4Vua1/ifLLyfEzuw3Xy20M0fN78TGvl9VpR9b81t/zWH/ + +3jD3cDPx87w/vxju73t7uc8hfkHP7KH7w01NLofM/VkpN5StgjZ23muTJpKLMUZiYZazEXF + iQBZILXvPQMAAA== +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Fri, 18 Jul 2014 00:11:40 -0000 + +--=-=-= +Content-Type: text/plain + +When I view one particular thread, in which one of the messages has a +.tgz attachment, emacs hangs for at least 2-3 minutes before I stop it +with ctrl-g. An strace on the emacs process shows an endless series of +stats and opens such as: + +open("/tmp/emm.3391uhh/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/course/src/sfm-source/book/figures/fig-421.png", +O_RDONLY|O_LARGEFILE) = 15 + +Those are undoubtedly from the message with the .tgz attachment, which +all untars to src/ and has src/course as a symlink to ..: + +$ tar -tvf 6.SFMx-source.tgz | grep src/course +lrwxrwxrwx sanjoy/sanjoy 0 2014-04-22 14:59 src/course -> .. + +So I wonder whether notmuch-emacs is trying to untar the attachment and +then makes an ever more nested version of it, and never stops. (As a +test, I visited the .tgz file directly in Emacs [with C-x C-f] but that +caused no problem. So I think it is something specific to the notmuch +emacs interface.) + +When I ctrl-g the emacs, I get a view of the thread in notmuch-show +mode, but perhaps not surprisingly it is slightly incorrect (see +attached screenshot). The last message's information and content (from +the "Subject:" line onward) should be indented one space to line up +under the "Sanjoy Mahajan...07:11". + +I'm using notmuch and notmuch-emacs 0.18.1-1 (Debian/i386 pkg) and emacs +24.3. + +If there is further debugging information that would help, or tests that +I should run, let me know. + +-Sanjoy + + +--=-=-= +Content-Type: image/png +Content-Disposition: attachment; filename=screen.png +Content-Transfer-Encoding: base64 +Content-Description: screenshot + +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 +DSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0s +VAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQD +C9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvV +wEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBC +NbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWw +UA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFAN +LFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxU +AwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML +1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XA +QjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1 +sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQ +DSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0s +VAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQD +C9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvV +wEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBC +NbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWw +UA0sVAML1cBCNbBQDSxUAwvVwEI1sFANLFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwEI1sFAN +LFQDC9XAQjWwUA0sVAML1cBCNbBQDSxUAwvVwOKt/BfB5D//+e8XAsm/qQaVqMa4v2lsQ3i9915d +Fs9mzh7j3mS3zyY+tHi+tivjg17oX17brBrLh/IaP7jRl5Obj1Or6d/0SJEdwEvK5XmBmmeTUjtJ +g1rdClcoqmSM7PO6/0trXOLho5g8vnE18072QWo15vl6nppw6terp4t8uZr+Hy1psMb5ci/UpJrk +85Gz8Hq02hQrGnucULNftWmpMdmZJTuyZQKixlg1qiap0hhQY/yyD63m2TwvUNMuyCn2UeOfPQ+o +8e+jUGNSOdn3ps7C0NQN7Xr05ZwUe7VouRr/Vt3htg4kls+zPWldPOAaFmPCo1rmE6e+24SXRq94 +VumMzzSlDklSDqJB1Lw0IpJxNe6Mk9NuhhrzHEvDHd61uHUHns6NZ3lpzGTO+6gxoXR03i44M8GP +WAorfI1Ky0Kzk8rTdxDXNl1aodLZnFWT9WJ35LZ4FrnxSVLTihbH1Rj/aLLE42pEpnmJ5RIyMn6t +LJPEh1fzEt/DeK1JPepLVkSZLvu8aIWezUu2QtIFNWpX10UGs2uN74XG1CyrNa7IJamNkeKyl7xt +1IlfUc14X+PbnrLWmJ3UhKroM4g7MpWaw/Q1coIfWo1v0ESND3MPrca1JFNhQNWglY3c/FqTVbuX +LElLzXPeGM5Ro15mYcCMCG2umpe8wng1h47QbEcwnOX7qnFxfVLTPL7jUxOO0uU3qSZqyBqlfFms +YrFkfaf+ksUH4X/payo1EgZEIdehh1mk5iVdIZC+JgVT41cDQpfvLYUif75+jmFA3jZK4hCM7mNG +Lm+aeGXq+Xrs84bqFp6NKbqKa1n2YlQ1eolRtX96LbH0dQyU231NFn5fp4tj7eBMFVEZX6bCkgjt +Ob4aOQ9VoPwSPq662mCuY/Dc6GtefBzizoHDqHldZn4UfUPwjqjkZNXgQzWw/Puf//m/N8D8x1vs +5bj4X/5sAxH+ogYWqoGFamChGlioBhaqgYVqYKEaWKgGFqqBhWpgoRpYqAYWqoGFamChGlioBhaq +gYVqYHFS/h91vWxSplY7BQAAABx0RVh0Y29tbWVudABlbWFjc0BhcHByb3gubWl0LmVkdbW2m7QA +AAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMDctMTZUMDY6NDc6NDItMDQ6MDAA3zmcAAAAJXRFWHRk +YXRlOm1vZGlmeQAyMDE0LTA3LTE2VDA2OjQ3OjQyLTA0OjAwcYKBIAAAAABJRU5ErkJggg== +--=-=-=-- -- 2.26.2