From unknown Sat Jun 21 03:26:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14850: 24.3; GDI Handles leak(Windows) Resent-From: Akihiro KAYAMA Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 12 Jul 2013 15:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 14850 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 14850@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.137364214816368 (code B ref -1); Fri, 12 Jul 2013 15:16:02 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jul 2013 15:15:48 +0000 Received: from localhost ([127.0.0.1]:50577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uxf4U-0004Fr-NR for submit@debbugs.gnu.org; Fri, 12 Jul 2013 11:15:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36965) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uxa5c-00089J-6J for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uxa5S-0006qX-OF for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:30 -0400 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,HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47401) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uxa5S-0006qQ-Kf for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38658) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uxa5P-00067B-EJ for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:56:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UxZz5-0003fk-Gf for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:50:04 -0400 Received: from ussava.pair.com ([209.68.5.169]:44283) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UxZz5-0003fL-7q for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:49:51 -0400 Received: from mail-pa0-f41.google.com (mail-pa0-f41.google.com [209.85.220.41]) by ussava.pair.com (Postfix) with ESMTPSA id 4141C102C73 for ; Fri, 12 Jul 2013 05:49:49 -0400 (EDT) Received: by mail-pa0-f41.google.com with SMTP id bj3so8868111pad.14 for ; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=IG5pSJ5/QsUyFjWkVNd/I+Um0BpK+k9e8ta0BnOueIk=; b=Yr1dJjzmuohJaQxw3PO6cefFmSpdDWY5/OiGW8l5W+l66W1G/xZ7Mv7O+apqEBt2Le +BSQtH2Ok8Pgq8Go/YZxNfXL9KC4DFhj6hg3ibDOMntx0sIjb2vvrmrhMgkFS1fk4/m8 tglLzjkOJQmmxy9UV4FuXm4CY/Oxk6Fc8N8m3JYUeWzlgBnQlfXWs6hmY9TmX5Pb6sW4 h2saKtDwt0oEB7MWuFb0LXRGzgEvuFLBd1C8VmsrvjNZJFsgnQ6zjJTGQQ2QNe/wrYiM N3wkaJWH3ekW7JiPKCGyceXVy802jZe9sOOuSy29tyXhz+r9I5Fg9xuG7gppDrZqABt9 e2Zg== MIME-Version: 1.0 X-Received: by 10.66.138.15 with SMTP id qm15mr41820236pab.128.1373622588347; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) Received: by 10.66.26.202 with HTTP; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) Date: Fri, 12 Jul 2013 18:49:48 +0900 Message-ID: From: Akihiro KAYAMA Content-Type: multipart/alternative; boundary=047d7b15a7356f3db604e14d6ed7 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Mailman-Approved-At: Fri, 12 Jul 2013 11:15:44 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.0 (-----) --047d7b15a7356f3db604e14d6ed7 Content-Type: text/plain; charset=ISO-8859-1 This bug report will be sent to the Bug-GNU-Emacs mailing list and the GNU bug tracker at debbugs.gnu.org. Please check that the From: line contains a valid email address. After a delay of up to one day, you should receive an acknowledgment at that address. Please write in English if possible, as the Emacs maintainers usually do not have translators for other languages. Please describe exactly what actions triggered the bug, and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': -- When using multiple emacs frames and shell buffer in Windows, Emacs process's GDI Handles increase constantly. How to reproduce: - emacs.exe -Q - M-x make-frame-command - M-x shell - ping 127.0.0.1 -t (continuous shell output) - M-x find-file (open some mini buffer) - inspect Emacs process's GDI Handles by Process Explorer( www.sysinternals.com) As the increasing ratio is in proportion to number of frames, with a dozen frames Emacs process can easily reach Windows OS limit(=10000 handles) in a few minutes. -- If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. For information about debugging Emacs, please read the file c:/Program Files (x86)/emacs-24.3/etc/DEBUG. In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601) of 2013-03-18 on MARVIN Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --with-gcc (4.7) --cflags -ID:/devel/emacs/libs/libXpm-3.5.8/include -ID:/devel/emacs/libs/libXpm-3.5.8/src -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include -ID:/devel/emacs/libs/giflib-4.1.4-1/include -ID:/devel/emacs/libs/jpeg-6b-4/include -ID:/devel/emacs/libs/tiff-3.8.2-1/include -ID:/devel/emacs/libs/gnutls-3.0.9/include -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2' Important settings: value of $LANG: JPN locale-coding-system: cp932 default enable-multibyte-characters: t Major mode: Shell Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: ESC x m a k e - f r - c o RET ESC x s h e l l RET p i n g SPC 1 2 7 . 0 . 0 . 1 SPC - t RET ESC x f i n d - f i l e RET C-g ESC x C-g C-g C-n C-n ESC x r e p o r t - e m RET Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Making completion list... You can run the command `make-frame-command' with C-x 5 2 Quit completing-read-default: Command attempted to use minibuffer while in minibuffer Quit [2 times] Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils shell pcomplete comint ansi-color ring help-mode easymenu time-date japan-util tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32 multi-tty emacs) --047d7b15a7356f3db604e14d6ed7 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
This bug report will be sent to the Bug-GNU-Emacs mailing = list
and the GNU bug tracker at debbu= gs.gnu.org.=A0 Please check that
the From: line contains a valid ema= il address.=A0 After a delay of up
to one day, you should receive an acknowledgment at that address.

Pl= ease write in English if possible, as the Emacs maintainers
usually do n= ot have translators for other languages.

Please describe exactly wha= t actions triggered the bug, and
the precise symptoms of the bug.=A0 If you can, give a recipe
starting f= rom `emacs -Q':

--
When using multiple emacs frames and shell= buffer in Windows,
Emacs process's GDI Handles increase constantly= .

How to reproduce:

=A0- emacs.exe -Q
=A0- M-x make-frame-comma= nd
=A0- M-x shell
=A0- ping 127.0.0.1 -t (continuous shell output)=A0- M-x find-file (open some mini buffer)
=A0- inspect Emacs process&#= 39;s GDI Handles by Process Explorer(www.sysinternals.com)

As the increasing ratio is in proportion to number of frames, with adozen frames Emacs process can easily reach Windows OS limit(=3D10000 hand= les)
in a few minutes.
--


If Emacs crashed, and you have t= he Emacs process in the gdb debugger,
please include the output from the following gdb commands:
=A0=A0=A0 `bt= full' and `xbacktrace'.
For information about debugging Emacs, = please read the file
c:/Program Files (x86)/emacs-24.3/etc/DEBUG.

In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601)
=A0of 2013-03-18 on MARVINWindowing system distributor `Microsoft Corp.', version 6.1.7601
C= onfigured using:
=A0`configure --with-gcc (4.7) --cflags
=A0-ID:/deve= l/emacs/libs/libXpm-3.5.8/include
=A0-ID:/devel/emacs/libs/libXpm-3.5.8/src
=A0-ID:/devel/emacs/libs/libpn= g-dev_1.4.3-1/include
=A0-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include<= br>=A0-ID:/devel/emacs/libs/giflib-4.1.4-1/include
=A0-ID:/devel/emacs/l= ibs/jpeg-6b-4/include
=A0-ID:/devel/emacs/libs/tiff-3.8.2-1/include
=A0-ID:/devel/emacs/libs/g= nutls-3.0.9/include
=A0-ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/inclu= de
=A0-ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'

Im= portant settings:
=A0 value of $LANG: JPN
=A0 locale-coding-system: cp932
=A0 default e= nable-multibyte-characters: t

Major mode: Shell

Minor modes i= n effect:
=A0 shell-dirtrack-mode: t
=A0 tooltip-mode: t
=A0 mouse= -wheel-mode: t
=A0 tool-bar-mode: t
=A0 menu-bar-mode: t
=A0 file-name-shadow-mode: = t
=A0 global-font-lock-mode: t
=A0 font-lock-mode: t
=A0 blink-cur= sor-mode: t
=A0 auto-composition-mode: t
=A0 auto-encryption-mode: t<= br>=A0 auto-compression-mode: t
=A0 line-number-mode: t
=A0 transient-mark-mode: t

Recent input:<= br>ESC x m a k e - f r <tab> - <tab> c o <tab> RET <sw= itch-frame>
ESC x s h e l l RET p i n g SPC 1 2 7 . 0 . 0 . 1 SPC - t RET ESC x f i n d - f i l e RET <down-mouse-1>
<mouse-move= ment> <mouse-1> C-g ESC x C-g C-g C-n C-n
ESC x r e p o r t - = e m <tab> RET

Recent messages:
For information about GNU Em= acs and the GNU system, type C-h C-a.
Making completion list...
You can run the command `make-frame-command= 9; with C-x 5 2
Quit
completing-read-default: Command attempted to us= e minibuffer while in minibuffer
Quit [2 times]

Load-path shadows= :
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug m= essage format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail= -parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 = ietf-drums mm-util
mail-prsvr mail-utils shell pcomplete comint ansi-color ring help-mode
e= asymenu time-date japan-util tooltip ediff-hook vc-hooks
lisp-float-type= mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win
w32-vars tool-= bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scr= oll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
ge= orgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean = japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
ab= brev minibuffer loaddefs button faces cus-face macroexp files
text-prope= rties overlay sha1 md5 base64 format env code-pages mule
custom widget h= ashtable-print-readable backquote make-network-process
w32 multi-tty emacs)

--047d7b15a7356f3db604e14d6ed7-- From unknown Sat Jun 21 03:26:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14850: 24.3; GDI Handles leak(Windows) Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Jul 2013 12:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14850 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Akihiro KAYAMA Cc: 14850@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 14850-submit@debbugs.gnu.org id=B14850.137372017510844 (code B ref 14850); Sat, 13 Jul 2013 12:57:02 +0000 Received: (at 14850) by debbugs.gnu.org; 13 Jul 2013 12:56:15 +0000 Received: from localhost ([127.0.0.1]:52231 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UxzMy-0002oo-St for submit@debbugs.gnu.org; Sat, 13 Jul 2013 08:56:14 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:45211) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UxzMl-0002o4-Nk for 14850@debbugs.gnu.org; Sat, 13 Jul 2013 08:56:01 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MPV00B00KTFR000@a-mtaout23.012.net.il> for 14850@debbugs.gnu.org; Sat, 13 Jul 2013 15:55:38 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MPV00BG9L8PR720@a-mtaout23.012.net.il>; Sat, 13 Jul 2013 15:55:37 +0300 (IDT) Date: Sat, 13 Jul 2013 15:55:35 +0300 From: Eli Zaretskii In-reply-to: X-012-Sender: halo1@inter.net.il Message-id: <83r4f24o1k.fsf@gnu.org> References: X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 1.0 (+) > Date: Fri, 12 Jul 2013 18:49:48 +0900 > From: Akihiro KAYAMA > > When using multiple emacs frames and shell buffer in Windows, > Emacs process's GDI Handles increase constantly. > > How to reproduce: > > - emacs.exe -Q > - M-x make-frame-command > - M-x shell > - ping 127.0.0.1 -t (continuous shell output) > - M-x find-file (open some mini buffer) > - inspect Emacs process's GDI Handles by Process Explorer( > www.sysinternals.com) > > As the increasing ratio is in proportion to number of frames, with a > dozen frames Emacs process can easily reach Windows OS limit(=10000 handles) > in a few minutes. I don't think the number of frames is such an important factor here. E.g., try evaluating this in "emacs -Q": (dotimes (i 30) (make-frame)) and compare the number of GDI objects before and after. On my machine, the difference is much smaller than 30, it's more like 10. Anyway, I looked through the sources for the Windows API calls that are documented to produce GDI objects. All of them seem to have the appropriate calls to DeleteObject or similar APIs that release these resources. So it doesn't seem like we are too sloppy about this, at least not enough for me to find that. Not that I know too much about this issue. Patches are welcome to make our usage of GDI objects smaller. Pointers to places where we fail to release GDI objects are also welcome. From unknown Sat Jun 21 03:26:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14850: 24.3; GDI Handles leak(Windows) Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Jul 2013 14:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14850 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: kayama@tiresia.org Cc: 14850@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 14850-submit@debbugs.gnu.org id=B14850.137372537123564 (code B ref 14850); Sat, 13 Jul 2013 14:23:01 +0000 Received: (at 14850) by debbugs.gnu.org; 13 Jul 2013 14:22:51 +0000 Received: from localhost ([127.0.0.1]:52771 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uy0io-00067w-JV for submit@debbugs.gnu.org; Sat, 13 Jul 2013 10:22:50 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:63520) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uy0ik-00067U-QU for 14850@debbugs.gnu.org; Sat, 13 Jul 2013 10:22:48 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MPV00000P5YJ500@a-mtaout22.012.net.il> for 14850@debbugs.gnu.org; Sat, 13 Jul 2013 17:22:40 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MPV000JVP9R8490@a-mtaout22.012.net.il>; Sat, 13 Jul 2013 17:22:40 +0300 (IDT) Date: Sat, 13 Jul 2013 17:22:37 +0300 From: Eli Zaretskii In-reply-to: <83r4f24o1k.fsf@gnu.org> X-012-Sender: halo1@inter.net.il Message-id: <83ppum4k0i.fsf@gnu.org> References: <83r4f24o1k.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 1.0 (+) > Date: Sat, 13 Jul 2013 15:55:35 +0300 > From: Eli Zaretskii > Cc: 14850@debbugs.gnu.org > > Patches are welcome to make our usage of GDI objects smaller. > Pointers to places where we fail to release GDI objects are also > welcome. Found and plugged one place, although I'm not sure how frequently we lose a handle due to that. From unknown Sat Jun 21 03:26:42 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Akihiro KAYAMA Subject: bug#14850: closed (Re: bug#14850: 24.3; GDI Handles leak(Windows)) Message-ID: References: <83ip0d3z3c.fsf@gnu.org> X-Gnu-PR-Message: they-closed 14850 X-Gnu-PR-Package: emacs Reply-To: 14850@debbugs.gnu.org Date: Sun, 14 Jul 2013 16:07:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1373818023-26238-1" This is a multi-part message in MIME format... ------------=_1373818023-26238-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #14850: 24.3; GDI Handles leak(Windows) which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 14850@debbugs.gnu.org. --=20 14850: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D14850 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1373818023-26238-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 14850-done) by debbugs.gnu.org; 14 Jul 2013 16:06:59 +0000 Received: from localhost ([127.0.0.1]:54077 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UyOp7-0006ov-Pj for submit@debbugs.gnu.org; Sun, 14 Jul 2013 12:06:58 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:65067) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UyOp4-0006oW-EG for 14850-done@debbugs.gnu.org; Sun, 14 Jul 2013 12:06:55 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MPX00500OPVH900@a-mtaout20.012.net.il> for 14850-done@debbugs.gnu.org; Sun, 14 Jul 2013 19:06:47 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MPX005CHORB7NA0@a-mtaout20.012.net.il>; Sun, 14 Jul 2013 19:06:47 +0300 (IDT) Date: Sun, 14 Jul 2013 19:06:47 +0300 From: Eli Zaretskii Subject: Re: bug#14850: 24.3; GDI Handles leak(Windows) In-reply-to: X-012-Sender: halo1@inter.net.il To: Akihiro KAYAMA Message-id: <83ip0d3z3c.fsf@gnu.org> References: <83r4f24o1k.fsf@gnu.org> <83ppum4k0i.fsf@gnu.org> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 14850-done Cc: 14850-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii 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: 1.0 (+) > Date: Sun, 14 Jul 2013 18:55:24 +0900 > From: Akihiro KAYAMA > Cc: 14850@debbugs.gnu.org > > I understand you can't reproduce GDI Handles leak. Just to make sure, > I mention again three requiremetns fot it. > > - multiple frames > - continuous shell buffer output(maybe mode line updates) > - mini buffer Actually, I think I did succeed to reproduce this. Here's a much easier method, for the record: emacs -Q M-x make-frame-command RET M-: (require 'time) RET M-: (setq display-time-interval 1) RET M-: (setq display-time-format "%H:%M:%S") RET M-x display-time RET C-x C-f As long as Emacs sits at the minibuffer prompt, you'll have a GDI handle leaked once every second, according to display-time-interval. Type C-g to get out of the minibuffer, and the leak stops. IOW, the conditions for this are: . more than 1 frame . active minibuffer prompt, and . continuous redisplay According to my measurements, the change I made in revision 113415 completely stops GDI handle leak in this scenario, and also in your original one. So I will close this bug; feel free to reopen if you can still come up with a scenario where GDI objects are leaked. The changes I committed are below, for your convenience. === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-13 10:29:15 +0000 +++ src/ChangeLog 2013-07-13 14:21:01 +0000 @@ -1,5 +1,8 @@ 2013-07-13 Eli Zaretskii + * w32term.c (x_draw_hollow_cursor): Delete the brush object when + returning early. (Bug#14850) + * coding.c (syms_of_coding): Set up inhibit-null-byte-detection and inhibit-iso-escape-detection attributes of 'undecided'. (Bug#14822) === modified file 'src/w32term.c' --- src/w32term.c 2013-07-06 02:40:50 +0000 +++ src/w32term.c 2013-07-13 14:21:01 +0000 @@ -5174,7 +5174,10 @@ x_draw_hollow_cursor (struct window *w, the current matrix is invalid or such, give up. */ cursor_glyph = get_phys_cursor_glyph (w); if (cursor_glyph == NULL) - return; + { + DeleteObject (hb); + return; + } /* Compute frame-relative coordinates for phys cursor. */ get_phys_cursor_geometry (w, row, cursor_glyph, &left, &top, &h); ------------=_1373818023-26238-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 12 Jul 2013 15:15:48 +0000 Received: from localhost ([127.0.0.1]:50577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uxf4U-0004Fr-NR for submit@debbugs.gnu.org; Fri, 12 Jul 2013 11:15:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36965) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uxa5c-00089J-6J for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uxa5S-0006qX-OF for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:30 -0400 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,HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47401) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uxa5S-0006qQ-Kf for submit@debbugs.gnu.org; Fri, 12 Jul 2013 05:56:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38658) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uxa5P-00067B-EJ for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:56:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UxZz5-0003fk-Gf for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:50:04 -0400 Received: from ussava.pair.com ([209.68.5.169]:44283) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UxZz5-0003fL-7q for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2013 05:49:51 -0400 Received: from mail-pa0-f41.google.com (mail-pa0-f41.google.com [209.85.220.41]) by ussava.pair.com (Postfix) with ESMTPSA id 4141C102C73 for ; Fri, 12 Jul 2013 05:49:49 -0400 (EDT) Received: by mail-pa0-f41.google.com with SMTP id bj3so8868111pad.14 for ; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=IG5pSJ5/QsUyFjWkVNd/I+Um0BpK+k9e8ta0BnOueIk=; b=Yr1dJjzmuohJaQxw3PO6cefFmSpdDWY5/OiGW8l5W+l66W1G/xZ7Mv7O+apqEBt2Le +BSQtH2Ok8Pgq8Go/YZxNfXL9KC4DFhj6hg3ibDOMntx0sIjb2vvrmrhMgkFS1fk4/m8 tglLzjkOJQmmxy9UV4FuXm4CY/Oxk6Fc8N8m3JYUeWzlgBnQlfXWs6hmY9TmX5Pb6sW4 h2saKtDwt0oEB7MWuFb0LXRGzgEvuFLBd1C8VmsrvjNZJFsgnQ6zjJTGQQ2QNe/wrYiM N3wkaJWH3ekW7JiPKCGyceXVy802jZe9sOOuSy29tyXhz+r9I5Fg9xuG7gppDrZqABt9 e2Zg== MIME-Version: 1.0 X-Received: by 10.66.138.15 with SMTP id qm15mr41820236pab.128.1373622588347; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) Received: by 10.66.26.202 with HTTP; Fri, 12 Jul 2013 02:49:48 -0700 (PDT) Date: Fri, 12 Jul 2013 18:49:48 +0900 Message-ID: Subject: 24.3; GDI Handles leak(Windows) From: Akihiro KAYAMA To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary=047d7b15a7356f3db604e14d6ed7 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 12 Jul 2013 11:15:44 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.0 (-----) --047d7b15a7356f3db604e14d6ed7 Content-Type: text/plain; charset=ISO-8859-1 This bug report will be sent to the Bug-GNU-Emacs mailing list and the GNU bug tracker at debbugs.gnu.org. Please check that the From: line contains a valid email address. After a delay of up to one day, you should receive an acknowledgment at that address. Please write in English if possible, as the Emacs maintainers usually do not have translators for other languages. Please describe exactly what actions triggered the bug, and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': -- When using multiple emacs frames and shell buffer in Windows, Emacs process's GDI Handles increase constantly. How to reproduce: - emacs.exe -Q - M-x make-frame-command - M-x shell - ping 127.0.0.1 -t (continuous shell output) - M-x find-file (open some mini buffer) - inspect Emacs process's GDI Handles by Process Explorer( www.sysinternals.com) As the increasing ratio is in proportion to number of frames, with a dozen frames Emacs process can easily reach Windows OS limit(=10000 handles) in a few minutes. -- If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. For information about debugging Emacs, please read the file c:/Program Files (x86)/emacs-24.3/etc/DEBUG. In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601) of 2013-03-18 on MARVIN Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --with-gcc (4.7) --cflags -ID:/devel/emacs/libs/libXpm-3.5.8/include -ID:/devel/emacs/libs/libXpm-3.5.8/src -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include -ID:/devel/emacs/libs/giflib-4.1.4-1/include -ID:/devel/emacs/libs/jpeg-6b-4/include -ID:/devel/emacs/libs/tiff-3.8.2-1/include -ID:/devel/emacs/libs/gnutls-3.0.9/include -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2' Important settings: value of $LANG: JPN locale-coding-system: cp932 default enable-multibyte-characters: t Major mode: Shell Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: ESC x m a k e - f r - c o RET ESC x s h e l l RET p i n g SPC 1 2 7 . 0 . 0 . 1 SPC - t RET ESC x f i n d - f i l e RET C-g ESC x C-g C-g C-n C-n ESC x r e p o r t - e m RET Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Making completion list... You can run the command `make-frame-command' with C-x 5 2 Quit completing-read-default: Command attempted to use minibuffer while in minibuffer Quit [2 times] Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils shell pcomplete comint ansi-color ring help-mode easymenu time-date japan-util tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32 multi-tty emacs) --047d7b15a7356f3db604e14d6ed7 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
This bug report will be sent to the Bug-GNU-Emacs mailing = list
and the GNU bug tracker at debbu= gs.gnu.org.=A0 Please check that
the From: line contains a valid ema= il address.=A0 After a delay of up
to one day, you should receive an acknowledgment at that address.

Pl= ease write in English if possible, as the Emacs maintainers
usually do n= ot have translators for other languages.

Please describe exactly wha= t actions triggered the bug, and
the precise symptoms of the bug.=A0 If you can, give a recipe
starting f= rom `emacs -Q':

--
When using multiple emacs frames and shell= buffer in Windows,
Emacs process's GDI Handles increase constantly= .

How to reproduce:

=A0- emacs.exe -Q
=A0- M-x make-frame-comma= nd
=A0- M-x shell
=A0- ping 127.0.0.1 -t (continuous shell output)=A0- M-x find-file (open some mini buffer)
=A0- inspect Emacs process&#= 39;s GDI Handles by Process Explorer(www.sysinternals.com)

As the increasing ratio is in proportion to number of frames, with adozen frames Emacs process can easily reach Windows OS limit(=3D10000 hand= les)
in a few minutes.
--


If Emacs crashed, and you have t= he Emacs process in the gdb debugger,
please include the output from the following gdb commands:
=A0=A0=A0 `bt= full' and `xbacktrace'.
For information about debugging Emacs, = please read the file
c:/Program Files (x86)/emacs-24.3/etc/DEBUG.

In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601)
=A0of 2013-03-18 on MARVINWindowing system distributor `Microsoft Corp.', version 6.1.7601
C= onfigured using:
=A0`configure --with-gcc (4.7) --cflags
=A0-ID:/deve= l/emacs/libs/libXpm-3.5.8/include
=A0-ID:/devel/emacs/libs/libXpm-3.5.8/src
=A0-ID:/devel/emacs/libs/libpn= g-dev_1.4.3-1/include
=A0-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include<= br>=A0-ID:/devel/emacs/libs/giflib-4.1.4-1/include
=A0-ID:/devel/emacs/l= ibs/jpeg-6b-4/include
=A0-ID:/devel/emacs/libs/tiff-3.8.2-1/include
=A0-ID:/devel/emacs/libs/g= nutls-3.0.9/include
=A0-ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/inclu= de
=A0-ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'

Im= portant settings:
=A0 value of $LANG: JPN
=A0 locale-coding-system: cp932
=A0 default e= nable-multibyte-characters: t

Major mode: Shell

Minor modes i= n effect:
=A0 shell-dirtrack-mode: t
=A0 tooltip-mode: t
=A0 mouse= -wheel-mode: t
=A0 tool-bar-mode: t
=A0 menu-bar-mode: t
=A0 file-name-shadow-mode: = t
=A0 global-font-lock-mode: t
=A0 font-lock-mode: t
=A0 blink-cur= sor-mode: t
=A0 auto-composition-mode: t
=A0 auto-encryption-mode: t<= br>=A0 auto-compression-mode: t
=A0 line-number-mode: t
=A0 transient-mark-mode: t

Recent input:<= br>ESC x m a k e - f r <tab> - <tab> c o <tab> RET <sw= itch-frame>
ESC x s h e l l RET p i n g SPC 1 2 7 . 0 . 0 . 1 SPC - t RET ESC x f i n d - f i l e RET <down-mouse-1>
<mouse-move= ment> <mouse-1> C-g ESC x C-g C-g C-n C-n
ESC x r e p o r t - = e m <tab> RET

Recent messages:
For information about GNU Em= acs and the GNU system, type C-h C-a.
Making completion list...
You can run the command `make-frame-command= 9; with C-x 5 2
Quit
completing-read-default: Command attempted to us= e minibuffer while in minibuffer
Quit [2 times]

Load-path shadows= :
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug m= essage format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail= -parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 = ietf-drums mm-util
mail-prsvr mail-utils shell pcomplete comint ansi-color ring help-mode
e= asymenu time-date japan-util tooltip ediff-hook vc-hooks
lisp-float-type= mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win
w32-vars tool-= bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scr= oll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
ge= orgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean = japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
ab= brev minibuffer loaddefs button faces cus-face macroexp files
text-prope= rties overlay sha1 md5 base64 format env code-pages mule
custom widget h= ashtable-print-readable backquote make-network-process
w32 multi-tty emacs)

--047d7b15a7356f3db604e14d6ed7-- ------------=_1373818023-26238-1-- From unknown Sat Jun 21 03:26:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14850: 24.3; GDI Handles leak(Windows) Resent-From: Akihiro KAYAMA Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 14 Jul 2013 18:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14850 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 14850@debbugs.gnu.org Received: via spool by 14850-submit@debbugs.gnu.org id=B14850.137382499310645 (code B ref 14850); Sun, 14 Jul 2013 18:04:02 +0000 Received: (at 14850) by debbugs.gnu.org; 14 Jul 2013 18:03:13 +0000 Received: from localhost ([127.0.0.1]:54124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UyQdc-0002la-0k for submit@debbugs.gnu.org; Sun, 14 Jul 2013 14:03:13 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:40414) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UyJ1e-0004vr-EY for 14850@debbugs.gnu.org; Sun, 14 Jul 2013 05:55:31 -0400 Received: by mail-pa0-f41.google.com with SMTP id bj3so10353635pad.14 for <14850@debbugs.gnu.org>; Sun, 14 Jul 2013 02:55:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=V7CESSoG7Lxnd6wXSbP+2hC9ElRkyf5O51WUjXh81K4=; b=cjIbtYvo+0Z6P6IMeYRj/ISGzw5a2p4Fx5GqoSQ9ExHpWuG1YZxHfNFhG7kjfQ6jP9 zza2z7heMtrJBaNG44RJnyrJ+vHVxSwzUwUzbcaIPJQS3332sGM4+aGTrVdbYOeJXwKW PxX+TIUdz1PxJhZJvIDNDDOqbw1u1csAI49dhrEoHvmSf15+P7GLEzA+wlB2kG8TPv0V tgdwMWGzRv5ASYKdDkR626QitqvL51I0LY+fkXwmbS2oGftwHR31pnkPZBpbbsVe9cnZ Sb2JTM5KxBa+Y76F/S6ZK9v4BjuD1Vxa1hk69Ugvs2jH9sd+aAWSKt8Dpne2+D034QME tKEA== MIME-Version: 1.0 X-Received: by 10.67.8.98 with SMTP id dj2mr50254217pad.47.1373795724155; Sun, 14 Jul 2013 02:55:24 -0700 (PDT) Received: by 10.66.26.202 with HTTP; Sun, 14 Jul 2013 02:55:24 -0700 (PDT) In-Reply-To: <83ppum4k0i.fsf@gnu.org> References: <83r4f24o1k.fsf@gnu.org> <83ppum4k0i.fsf@gnu.org> Date: Sun, 14 Jul 2013 18:55:24 +0900 Message-ID: From: Akihiro KAYAMA Content-Type: multipart/alternative; boundary=089e0158bbc621e12404e175bed6 X-Spam-Score: -0.7 (/) X-Mailman-Approved-At: Sun, 14 Jul 2013 14:03:10 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --089e0158bbc621e12404e175bed6 Content-Type: text/plain; charset=ISO-8859-1 Thank you very much for your quick response. I understand you can't reproduce GDI Handles leak. Just to make sure, I mention again three requiremetns fot it. - multiple frames - continuous shell buffer output(maybe mode line updates) - mini buffer And also, I have tested only on Japanese version Windows XP and Windows 7. System fonts or locale or OS Input Method differencies may affect this. -- kayama 2013/7/13 Eli Zaretskii > > Date: Sat, 13 Jul 2013 15:55:35 +0300 > > From: Eli Zaretskii > > Cc: 14850@debbugs.gnu.org > > > > Patches are welcome to make our usage of GDI objects smaller. > > Pointers to places where we fail to release GDI objects are also > > welcome. > > Found and plugged one place, although I'm not sure how frequently we > lose a handle due to that. > --089e0158bbc621e12404e175bed6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Thank you very much for your quick response.

I unde= rstand you can't reproduce GDI Handles leak. Just to make sure,
I me= ntion again three requiremetns fot it.

=A0- multiple frames
=A0- = continuous shell buffer output(maybe mode line updates)
=A0- mini buffer

And also, I have tested only on Japanese version Wi= ndows XP and Windows 7.
System fonts or locale or OS Input Method differ= encies may affect this.

-- kayama



2013/7/13 Eli Zaretskii <eliz@gnu.org>= ;
> Date: Sat, 13 Jul 2013 15:55:35 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc:
14850@debbugs.gnu.org=
>
> Patches are welcome to make our usage of GDI objects smaller.
> Pointers to places where we fail to release GDI objects are also
> welcome.

Found and plugged one place, although I'm not sure how frequently= we
lose a handle due to that.

--089e0158bbc621e12404e175bed6--