AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Mein Prozess hat auf einmal hundertausende Handles

Mein Prozess hat auf einmal hundertausende Handles

Ein Thema von Der schöne Günther · begonnen am 18. Aug 2017 · letzter Beitrag vom 1. Sep 2021
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Der schöne Günther

Registriert seit: 6. Mär 2013
5.743 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 16:34
Die schrecklichen Dinge passieren immer wenn man eigentlich ins Wochenende wollte.

Ein einziges System beim Kunden hat merkwürdige Probleme. Hier der Ablauf:
  1. Optional: Im Event-Viewer tritt ein Ereignis 2004 "Resource exhaustion detection" auf
  2. Die Anwendung ist nicht merklich langsamer zu bedienen, alles sieht noch normal aus
  3. Erste Datei- und Netzwerkzugriffe der Anwendung scheitern: Allgemein ist es der Windows-Fehler 1816 NOT_ENOUGH_QUOTA für Zugriffe auf Netzwerk-Sockets, serielle Ports sowie das Öffnen von lokalen Dateien auf der Festplatte
  4. Wenn man es noch schafft die Anwendung zu beenden während alles in sich zusammenstürzt fährt die Anwendung ordnungsgemäß herunter
  5. Nach einem Neustart der Anwendung ist alles wieder gut

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.
handle-count.png


Ich kann den Fehler bei mir lokal nicht nachstellen. Schaue ich mit dem Process Explorer mir einmal genauer hin, sind die Handles alle zu Device\Afd :
device-afd.png

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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 17:45
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 ...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.743 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 18:06
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
  • Druckvorgänge (alte Schule über Vcl.Printers sowie FastReport)
  • Der TWebBrowser (insbesondere PDF-Anzeige über das Adobe Reader-Plugin)

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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 18:46
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 20:10
Kann der Kunde testweise das Programm auf einem anderen Rechner installieren und nutzen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.743 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 21:24
Vielen Dank für die Antworten.

Einziges System bei diesem Kunden? [...] Ansonsten Maschine gegen anderes System austauschen
testweise das Programm auf einem anderen Rechner installieren und nutzen?
Der PC steckt in einem abgeschlossenen Schaltschrank, das System wurde diese Woche erst in Betrieb genommen und der Techniker von uns ist heute wieder abgeflogen. Die Kernfunktion des Systems ist gegeben, die werden da nichts dran ändern. Verständlich.

Auffälligkeiten bei Benutzung anderer Software
Der PC kommt von uns vorinstalliert, da läuft 24/7 nur unsere Software drauf.

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.
Ich auch. Leider habe ich nur eine TeamViewer-Verbindung und allzu viel auf dem Bildschirm wühlen kann ich auch nicht da mit dem Ding Tag und Nacht Leute arbeiten. Doof.

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?
Die Software, loggt, wenn sie Kommunikationsprobleme mit anderen Teilnehmern hat, das selbst.

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...
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 18. Aug 2017, 23:28
Ich habe halt noch die Hoffnung dass ich mit dem "Device\Afd" irgendwie weiterkomme...
Viel ist zu dem Thema irgendwie nicht zu finden.

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:

https://www.petri.com/forums/forum/s...m-outbound-tcp

https://groups.google.com/forum/?_es...na/IlUATnAM7ek

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

https://www.wilderss<br /> curity.c...ce-afd.221765/
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 19. Aug 2017, 09:09
LOL mir gingen die Handles verloren und du hast mehr als genug davon.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.144 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 19. Aug 2017, 13:26
Es gibt mit dem AFD zwar weniger Probleme als mit der AfD aber wenn, dann richtig. Zum Beispiel gab es mal einen Bug, aufgrund dessen bei der Wiederverwendung von Sockets Handle Leaks auftraten:
https://support.microsoft.com/en-us/...ed-together-wi
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?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (19. Aug 2017 um 13:31 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.743 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Mein Prozess hat auf einmal hundertausende Handles

  Alt 20. Aug 2017, 08:38
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.
Das tue ich auch, kann es aber nicht beweisen. Es gab von Anfang an wohl Probleme mit dem Einrichten eines Netzwerkdruckers vom Kunden, am Freitag habe ich das System auf einen lokalen Drucker zurücksetzen lassen, ich hoffe dass es seitdem keine Probleme mehr gab.


Die wichtigste Frage ist aber deshalb erst einmal:
Sind dort alle verfügbaren Windows-Updates eingespielt? (...) Packt ihr fertig vorkonfigurierte Images drauf, auf die ggf. nur noch die Software kommt oder wird danach noch alles eingerichtet?
Die Rechner kommen mit aktuellem Update-Stan von einem Drittanbieter, unsere Leute werfen dann nur noch ein Setup an und nehmen ggf. ein paar kleinere Anpassungen vor.

Konntest du einmal stichprobenartig die Handleanzahl beobachten? Steigt diese im normalen Betrieb an oder bleibt diese da konstant?
Die Anzahl bleibt, wie Speicherauslastung, absolut konstant.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf