BUG, JVM Absturz

dredav

Aktives Mitglied
Hallo,

Ich weiß nicht genau wo hin mit dem Thema, hoffe ich bin richtig hier.
immer wenn ich mein Programm in Eclipse laufen lasse, kommt nach kurzer zeit folgender Fehler:

#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007741f2d5, pid=4904, tid=4364
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0-b16 mixed mode windows-amd64 )
# Problematic frame:
# C [ntdll.dll+0x4f2d5]
#
# An error report file with more information is saved as:
# J:\****\****\hs_err_pid4904.log
#
# If you would like to submit a bug report, please visit:
# HotSpot Virtual Machine Error Reporting Page
#

Ich weiß nicht weiter, google spuckt auch nichts aus....
Ich hoffe ihr könnt mir helfen ;)

Grüße
David
 

Runtime

Top Contributor
Das könnte irgendwas mit dem JNI zu tun haben (nach einem kurzen Blick ins Google). Hast du irgendwelche Plugins installiert?
 

L-ectron-X

Gesperrter Benutzer
Es handelt sich hier um ein Problem mit einer Windows Systemdatei. Möglicherweise ist diese beschädigt, bspw. durch Virenbefall oder Festplattenschaden.

Du kannst versuchen, diese DLL-Datei mit einer "frischen" zu ersetzen. Diese kannst du von deiner Installations-CD extrahieren oder auch hier herunterladen.

Die Datei ist bei gestartetem Betriebssystem aktiv im Speicher und kann nicht überschrieben werden.
Zum Ersetzen der vermeintlich defekten Datei kannst du bspw. ein Linux-Live-System von einer CD auf deinem Rechner booten und die Datei ins Dateisystem kopieren. Vorher sicherheitshalber unbedingt noch die defekte Datei umbenennen (vorerst nicht löschen).
Eine andere Variante wäre, die Platte mit der vermutlich beschädigten Datei in ein anderes System einzubauen und den Kopiervorgang von dort zu starten.
 

Marco13

Top Contributor
Hm. Ob da wirklich besagte DLL kaputt ist? Dieser Fehler kann AFAUK auch von der Anwendungsseite kommen: Verwendet die Anwendung, die du benutzt, irgendwelche anderen DLLs?
 

dredav

Aktives Mitglied
Die Datei ist bei gestartetem Betriebssystem aktiv im Speicher und kann nicht überschrieben werden.
Zum Ersetzen der vermeintlich defekten Datei kannst du bspw. ein Linux-Live-System von einer CD auf deinem Rechner booten und die Datei ins Dateisystem kopieren. Vorher sicherheitshalber unbedingt noch die defekte Datei umbenennen (vorerst nicht löschen).
Eine andere Variante wäre, die Platte mit der vermutlich beschädigten Datei in ein anderes System einzubauen und den Kopiervorgang von dort zu starten.

und wo finde ich die zu ersetzene Datei?

Hm. Ob da wirklich besagte DLL kaputt ist? Dieser Fehler kann AFAUK auch von der Anwendungsseite kommen: Verwendet die Anwendung, die du benutzt, irgendwelche anderen DLLs?
Keine Ahnung, ist ein einfaches Programm mit mehreren Threads

Grüße
David
 

MarderFahrer

Gesperrter Benutzer
Ich hab gerade folgenden anderen Thread gelesen:
http://www.java-forum.org/allgemeine-java-themen/106314-tomcat-jvm-crash-ntdll-dll.html

Da es sich scheinbar um die gleiche dll handelt, könnte es sich auch um den selben Fehler handeln. Du sagtest ja, dass due nur Eclipse EE und nichts anderes geladen hast. In diesem Thread scheinen sie den Fehler beim Tomcat Server eingegrenzt zu haben. Vielleicht hilft ja ein Austausch mit einer Person, die das gleiche Problem hat.
 

FArt

Top Contributor
Ich hab gerade folgenden anderen Thread gelesen:
http://www.java-forum.org/allgemeine-java-themen/106314-tomcat-jvm-crash-ntdll-dll.html

Da es sich scheinbar um die gleiche dll handelt, könnte es sich auch um den selben Fehler handeln. Du sagtest ja, dass due nur Eclipse EE und nichts anderes geladen hast. In diesem Thread scheinen sie den Fehler beim Tomcat Server eingegrenzt zu haben. Vielleicht hilft ja ein Austausch mit einer Person, die das gleiche Problem hat.

Wäre schon möglich. Aber die ntdll ist so eine zentrale Datei unter Windows, dass viele Fehler irgendwie von dort kommen ;-)

Der erste Griff sollte immer sein: aktuelle JRE, alle wichtigen Patches im BS einspielen. Bei den Patches auch die der betroffenen Software beachten, z.B. Datenbanke, Treiber usw.

Sonst, für forgeschrittene: mal den Windows Debugger bemühen und schauen, was an dieser Stelle der lib passiert. Kann ja sein, dass diese einen Bug aufweist. Zugriffsfehler werden gerne durch mangelhafte Synchronisation ausgelöst.
 

Marco13

Top Contributor
Genau weil das so eine Zentrale Datei ist, hätte ich zumindest Bauchschmerzen, die durch die erstbeste Version zu ersetzen, die ich auf irgendeiner Webseite finde... ???:L
 

FArt

Top Contributor
Genau weil das so eine Zentrale Datei ist, hätte ich zumindest Bauchschmerzen, die durch die erstbeste Version zu ersetzen, die ich auf irgendeiner Webseite finde... ???:L

Nö, würde ich auch nicht machen. Ich bin ja nicht der Windows-Crack, aber hat das Betriebsystem nicht mittlerweile einen magischen Mechanismus, der den Austausch von (zentralen?) Libraries verhindert? Werden da nicht regelmäßig die Signaturen überprüft und im Falle eines Unterschiedes die Libraries über die Schattenkopien zurückgetauscht.
Ich glaube mal irgend so was gelesen zu haben. Damit soll verhindert werden, dass ein Virus eine zentrale Library manipuliert bzw. soll mutwilliges kopieren verhindert werden.

Deshalb plädiere ich dafür die offiziellen Patches einzuspielen. Man sollte (auch aus Sicherheitsgründen) immer auf einem neuen Stand mit wichtigen Patches sein.
 

L-ectron-X

Gesperrter Benutzer
und wo finde ich die zu ersetzene Datei?
Die Datei liegt mindestens in c:\windows\system32
Wo die Datei in deinem System noch gespeichert ist (das kommt nicht selten vor) kannst du mit der Dateisuche von Windows ermitteln.

Ein Download der Datei ist eine von mehreren Varianten, das Problem zu beheben. Man kann die Datei natürlich auch von einem gleichen, lauffähigen System kopieren, oder von der Setup-CD extrahieren.

Ich habe dieses Vorgehen schon mehrmals in diesem Forum vorgeschlagen, bisher immer erfolgreich.
Aber eine Erfolgsgarantie wird es dafür nie geben...
 

LoR

Bekanntes Mitglied
Es kann sich hier auch um einen Bug in der 64 Bit Version des JDK handeln. Installier mal die 32 Bit Version und versuchs dann nochmal.
 

Ähnliche Java Themen

Neue Themen


Oben