![]() |
Mein Prozess hat auf einmal hundertausende Handles
Liste der Anhänge anzeigen (Anzahl: 2)
Die schrecklichen Dinge passieren immer wenn man eigentlich ins Wochenende wollte.
Ein einziges System beim Kunden hat merkwürdige Probleme. Hier der Ablauf:
Ich hatte diesmal das Glück per TeamViewer fast live dabei sein zu können. Was sehe ich im Task-Manager? Nichts besonderes. Schaue ich später noch einmal: Plötzlich über 650.000 Handles für meinen Prozess. Schwer zu glauben, aber es ist so. Anhang 47750 Ich kann den Fehler bei mir lokal nicht nachstellen. Schaue ich mit dem Process Explorer mir einmal genauer hin, sind die Handles alle zu
Delphi-Quellcode:
:
Device\Afd
Anhang 47751 Ich suche im Internet zu "device afd handle leak" und ähnlichem, werde da aber auf die Schnelle nicht schlau. Meist scheinen es fehlerhafte Treiber zu sein, auch ich habe hier einen vom Kunden eingebundenen Netzwerkdrucker im Verdacht. Hat jemand hier noch schlaue Ideen? Ich bin so frustriert dass ich noch nicht einmal eine Ursache finden kann. Fast 24 Stunden lief alles ohne das geringste Murren, dann fällt plötzlich alles in sich zusammen. Ich werde in der eigenen Anwendung in Zukunft versuchen Dinge wie Speicherfragmentierung und Anzahl der Handles zu protokollieren, aber das hilft einem ja auch nur beim Raten, sollte es bei einem anderen Kunden irgendwann auch einmal auftreten. |
AW: Mein Prozess hat auf einmal hundertausende Handles
Gib' uns bitte mal ein paar mehr Infos zum Programm:
Was macht es grundsätzlich? Was im Besonderen? z. B.: viele Dateizugriffe lokal, im Netz? Drucken, lokal, im Netz? Benutzung von Schnittstellen? WMI? Datenbank? ... Was sonst auch immer, was irgendwelche Handles benötigen könnte? Besonderheiten beim betroffenen Rechner? Betriebssystem, Hardware ... |
AW: Mein Prozess hat auf einmal hundertausende Handles
Das Programm ist monolithische 32 Bit VCL-Anwendung mit ein paar DLLs, die meisten davon auch mit Delphi erstellt. Kompiliert in 10 Seattle.
Es kommuniziert kontinuierlich mit etlichen Geräte über serielle Ports, Ethernet (IPv4, TCP und UDP) und loggt periodisch auf die Festplatte. Es agiert auch als TCP-Server auf mehreren Ports über mehrere Netzwerkkarten. Es ist rund um die Welt im Einsatz und hat keine Probleme damit mehrere Wochen am Stück zu laufen und zu arbeiten. OS ist Windows 7 Pro x64, das System hat 4GB Arbeitsspeicher. Handles? Natürlich überall. Dinge die wir nicht wirklich im Griff haben was da abgeht sind einmal
Gerade letzteres (Anzeigen einer PDF über den TWebBrowser) treibt den HandleCount der Anwendung in die Höhe, möglich dass da etwas nicht ganz sauber ist. Die absolut wahnsinnige Zahl von 650.000 Handles erklärt es trotzdem nicht allein, da hätte jemand mehrere tausend male etliche Seiten PDF wälzen müssen. Und wie gesagt, es ist nur dieses eine System, andere Fälle sind mir nicht bekannt. |
AW: Mein Prozess hat auf einmal hundertausende Handles
Einziges System bei diesem Kunden?
System überprüfen, ob Hard- und Software ordnungsgemäß installiert sind und reibungslos funktionieren. Gibt es irgendwelche Auffälligkeiten im Ereignisprotokoll, ggfls. auch zu anderen Themen? Irgendwelche Auffälligkeiten bei Benutzung anderer Software auf dem Rechner bekannt? Wenn die Software weltweit reibunglos funktioniert, dann sicherlich auch auf unterschiedlicher Hardware in den vielfältigsten Hard- und Softwarekombinationen. Das scheint ja kein Problem zu sein. Von daher würd' ich bei der Fehlersuche den Schwerpunkt auf den konkreten Rechner und seine Analyse legen und nicht auf eure Software. Oder anders formuliert: Ich vermute da eher eine difuse Fehlerquelle in dem speziellen System und der dort vorhanden Soft- und Hardware. Irgendwelche besondere Anforderungen an die Hardware vorhanden? Ansonsten Maschine gegen anderes System austauschen und schauen, ob das Problem bestehen bleibt. Wenn ja, dann liegt der Fehler irgendwo außerhalb des System, d. h.: Irgendeine "externe" Stelle, mit der kommuniziert, wird arbeitet nicht ordentlich, so dass euer System (oder auch das Betriebssystem) damit nicht zurechtkommt und von daher (von welchen Operationen auch immer) irgendwelcher Reste übrigbleiben, die das System (früher oder später) in die Knie zwingt. Da könnte z. B. ausgehend von Deiner Beschreibung eine nicht sauber arbeitende Netzwerkverbindung mit ursächlich sein. Da hilft ggfls. mal Kabel tauschen. Nicht nur am Rechner selbst, sondern auch die, die sonstwo weiter in die nähere oder weitere Netzwerkwelt reichen. Hast Du 'nen Netzwerkmonitor zur Verfügung, mit dem Du regelmäßig alle vom Rechner aus zwingend erreichbaren "Gerätschaften" anpingen kannst, um über die Ergebnisse feststellen zu können, ob da irgendwo was klemmt? |
AW: Mein Prozess hat auf einmal hundertausende Handles
Kann der Kunde testweise das Programm auf einem anderen Rechner installieren und nutzen?
|
AW: Mein Prozess hat auf einmal hundertausende Handles
Vielen Dank für die Antworten.
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Es war ja heute so dass ca. 24 Stunden keine Auffälligkeit war, alles sauber, plötzlich fällt alles in sich zusammen weil Windows wohl die Handles ausgehen. Ich habe halt noch die Hoffnung dass ich mit dem "Device\Afd" irgendwie weiterkomme... |
AW: Mein Prozess hat auf einmal hundertausende Handles
Zitat:
Was ich bisher weiß / erahne: Es hängt mit der adf.sys zusammen. WinSocket ist irgendwie betroffen. (Kann auch im Zusammenhang mit dem Printspooler stehen. Druckvorgänge können hier also betroffen sein. Werden bei dem Kunden irgendwelche exotische Druckertreiber genutzt, die sonst kein anderer Kunde nutzt?) Die Handles bleiben übrig, wenn Sockets nicht geschlossen werden. Nach alldem, was ich so überflogen habe, würd' ich hier ein Problem in der "Netzwerkumgebung" und/oder im "Druckerumfeld" vermuten. Es scheint so, als würden nicht alle Verbindungen ordentlich arbeiten und/oder beendet werden. Keine Ahnung ob hiervon was irgendwie helfen könnte: ![]() ![]() ![]() ![]() |
AW: Mein Prozess hat auf einmal hundertausende Handles
LOL mir gingen die Handles verloren und du hast mehr als genug davon.
gruss |
AW: Mein Prozess hat auf einmal hundertausende Handles
Es gibt mit dem AFD zwar weniger Probleme als mit der AfD :cyclops: aber wenn, dann richtig. Zum Beispiel gab es mal einen Bug, aufgrund dessen bei der Wiederverwendung von Sockets Handle Leaks auftraten:
![]() Windows 7 war davon aber offenbar nicht betroffen, ich selbst hatte das Problem mit Vista. Die wichtigste Frage ist aber deshalb erst einmal: Sind dort alle verfügbaren Windows-Updates eingespielt? Die andere Frage: Konntest du einmal stichprobenartig die Handleanzahl beobachten? Steigt diese im normalen Betrieb an oder bleibt diese da konstant? Wie ist es bei euch auf einer Testmaschine? Sprich ist das Verhalten dort schon vor dieser großen Anzahl an Handles anders als bei euch im Test? Packt ihr fertig vorkonfigurierte Images drauf, auf die ggf. nur noch die Software kommt oder wird danach noch alles eingerichtet? |
AW: Mein Prozess hat auf einmal hundertausende Handles
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz