From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18458 invoked by alias); 29 Sep 2017 09:35:00 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 41778 Received: (qmail 1757 invoked by uid 1010); 29 Sep 2017 09:35:00 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-6.9/5.0):. Processed in 1.669668 secs); 29 Sep 2017 09:35:00 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | X-AuditID: cbfec7f1-f793a6d00000326b-b2-59ce13bb0732 Date: Fri, 29 Sep 2017 10:34:47 +0100 From: Peter Stephenson To: Nicolas =?UTF-8?B?RGVzcHLDqHM=?= , zsh-workers@zsh.org Subject: Re: Crash when completion script call itself. Message-id: <20170929103447.2fdbcb0f@pwslap01u.europe.root.pri> In-reply-to: Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsWy7djPc7q7hc9FGnRdN7dYdeEbo8XB5odM DkweO2fdZfdYdfADUwBTFJdNSmpOZllqkb5dAldGz+4LbAVbuCrefnnF3MC4gqOLkZNDQsBE 4kn3cyYIW0ziwr31bF2MXBxCAksZJXpenGaCcD4zShze954NpmN73xVmiMQyRomWf92sEM4/ RonVCyZD9Z9hlFh8YRKUc5ZRYsqV3ewg/SwCqhKTbp4H28gmYCgxddNsRhBbRCBc4trj38wg trCAmUTX+QVgNq+AvcTMiSfAdnMKBEs0vfrCAmLzC+hLXP37CepyoJorZxgh6gUlfky+B1bD LKApsXX3enYIW1viybsLrBD1a9gkrjQFQdguEjs6YOYIS7w6voUdwpaR6Ow4CBXvZwQGky/I MxICMxglTp/ZAQ0Ma4m+2xcZIRbwSUzaNh3oaA6gOK9ER5sQhOkhsa/FFKLaUeLKmRnQMFnC KPH/70u2CYwKs5CcPQvJ2bOQnL2AkXkVo0hqaXFuemqxkV5xYm5xaV66XnJ+7iZGYHo4/e/4 xx2M709YHWIU4GBU4uG9IXc2Uog1say4MvcQowQHs5II7xPOc5FCvCmJlVWpRfnxRaU5qcWH GKU5WJTEeW2j2iKFBNITS1KzU1MLUotgskwcnFINjGsOCz7VPO2w6j7v+7kT1+0pMu/yaSmP fdQ17fcG9+y0XyxPJ8zqtw1j4Ntufk9t+yqNRQW7NVb/q53wiN+9qyc3XXx5mt3XiOsyp27I Fx7ZpqUi6+25x+ypAb/Hcf/Ayu98iqeT9154cGLp76VNl5dxtmeEHpz1OiJO4VTw77xlZpHP giZx/1ViKc5INNRiLipOBABLx9WYCwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFLMWRmVeSWpSXmKPExsVy+t/xK7q7hc9FGuzcL2+x6sI3RouDzQ+Z HJg8ds66y+6x6uAHpgCmKC6blNSczLLUIn27BK6Mnt0X2Aq2cFW8/fKKuYFxBUcXIyeHhICJ xPa+K8wQtpjEhXvr2boYuTiEBJYwSuzs38cK4TQwSey7uoEZwjnHKPF+GUzmLKPEhUl3GUH6 WQRUJSbdPM8EYrMJGEpM3TQbLC4iEC5xfOdPsB3CAmYSXecXgNm8AvYSMyeeYAOxOQWCJfbd ewzWKySwjFHiTJsAiM0voC9x9e8nJoj7gOqvnGGE6BWU+DH5HguIzSygLjFp3iJmCFtb4sm7 C6wQc9QlbtzdzT6BUXgWkpZZSFpmIWlZwMi8ilEktbQ4Nz232FCvODG3uDQvXS85P3cTIzDE tx37uXkH46WNwYcYBTgYlXh4b8idjRRiTSwrrsw9xCjBwawkwvuE81ykEG9KYmVValF+fFFp TmrxIUZpDhYlcd7ePasjhQTSE0tSs1NTC1KLYLJMHJxSDYwSqg0zZfYEb5//fY1AROLBC7Oe nHn4t8/3+gEjyTmPFA+8MKyUfHZyipJ87+HDxmu/b7A6MrnjRPxMvWXLFi+/1nI32Ja7o87F 1emypOLGD1xGM5LSosM3bpmvfPOi/3Z+jnjOC1zCj6bfmSW8NPiCgJ3U21uXbkpfltBi/Ppu 0kNpR8stKy6wKLEUZyQaajEXFScCAKAxs/VtAgAA X-CMS-MailID: 20170929093451eucas1p1c365577ca280cfbc6f4b3bad83e6fcd0 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-CMS-RootMailID: 20170929072715epcas1p4171c28e9b82f94d79796ecca7e564ec3 X-RootMTR: 20170929072715epcas1p4171c28e9b82f94d79796ecca7e564ec3 References: On Fri, 29 Sep 2017 20:25:44 +1300 Nicolas Despr=C3=A8s wrote: > $ cat >~/.zsh/Completion/_crash <=20 > #compdef crash > _crash "$@" > EOF > $ exec zsh > $ crash [TAB] zsh: segmentation fault zsh This is certainly a real problem that people hit, but unfortuately there's not a lot we can do to make a general robust fix. There is already a check in the shell for the function recursion level; the default value is 1000 (it is configurable at build time). Some systems will get this far without crashing, as mine does, and I get _recurse: maximum nested function level reached which is what's supposed to happen. However, it's inevitable that systems vary in the resources they have available so a single hard and fast limit doesn't always work. I suspect that typically the crash happens when the user stack runs out (which we can't detect portably, indeed it's hard enough to detect at all as this is usually hidden from user-level code). It would be possible to store more function frame information in other forms of memory which are much less likely to run out. Unfortunately, while things like this could help they are just moving the problem around a bit and are quite hard to test widely enough to know if they're even making an improvement. pws