Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Mein Prozess hat auf einmal hundertausende Handles (https://www.delphipraxis.net/193599-mein-prozess-hat-auf-einmal-hundertausende-handles.html)

Der schöne Günther 18. Aug 2017 15:34

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:
  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
    Delphi-Quellcode:
    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.
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.

nahpets 18. Aug 2017 16:45

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 ...

Der schöne Günther 18. Aug 2017 17:06

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
  • 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.

nahpets 18. Aug 2017 17:46

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?

Luckie 18. Aug 2017 19:10

AW: Mein Prozess hat auf einmal hundertausende Handles
 
Kann der Kunde testweise das Programm auf einem anderen Rechner installieren und nutzen?

Der schöne Günther 18. Aug 2017 20:24

AW: Mein Prozess hat auf einmal hundertausende Handles
 
Vielen Dank für die Antworten.

Zitat:

Zitat von nahpets (Beitrag 1379025)
Einziges System bei diesem Kunden? [...] Ansonsten Maschine gegen anderes System austauschen

Zitat:

Zitat von Luckie (Beitrag 1379031)
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.

Zitat:

Zitat von nahpets (Beitrag 1379025)
Auffälligkeiten bei Benutzung anderer Software

Der PC kommt von uns vorinstalliert, da läuft 24/7 nur unsere Software drauf.

Zitat:

Zitat von nahpets (Beitrag 1379025)
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.

Zitat:

Zitat von nahpets (Beitrag 1379025)
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...

nahpets 18. Aug 2017 22:28

AW: Mein Prozess hat auf einmal hundertausende Handles
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1379041)
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/

EWeiss 19. Aug 2017 08:09

AW: Mein Prozess hat auf einmal hundertausende Handles
 
LOL mir gingen die Handles verloren und du hast mehr als genug davon.

gruss

jaenicke 19. Aug 2017 12:26

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:
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?

Der schöne Günther 20. Aug 2017 07:38

AW: Mein Prozess hat auf einmal hundertausende Handles
 
Zitat:

Zitat von nahpets (Beitrag 1379054)
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.


Zitat:

Zitat von jaenicke (Beitrag 1379057)
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.

Zitat:

Zitat von jaenicke (Beitrag 1379057)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz