2017-05-24 2 views
1

Dies ist ein Follow-up von JPA/Hibernate hangs on production during EntityManagerFactory creationJPA/Hibernate hängt an nativen Dateisystem-Operationen während des Bootens

ich es geschafft haben, während „hängende“ Zustand einen Thread-Dump zu bekommen, und ich habe festgestellt, dass das Problem zusammenhängt System Listing Betrieb Datei .

Im Allgemeinen kann dieser Prozess während des Bootstrap-Vorgangs für einige (~ 30) Minuten in diesem Zustand hängen. Irgendwelche Walkawrounds oder Fixes dafür ??

"main" #1 prio=5 os_prio=0 tid=0x00000000010c9000 nid=0x2c73 runnable [0x00007f4c928f5000] 
    java.lang.Thread.State: RUNNABLE 
    at java.io.UnixFileSystem.list(Native Method) 
    at java.io.File.list(File.java:1122) 
    at java.io.File.listFiles(File.java:1207) 
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:105) 
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.processDirectory(ExplodedArchiveDescriptor.java:118) 
    at org.hibernate.boot.archive.internal.ExplodedArchiveDescriptor.visitArchive(ExplodedArchiveDescriptor.java:54) 
    at org.hibernate.boot.archive.scan.spi.AbstractScannerImpl.scan(AbstractScannerImpl.java:47) 
    at org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:75) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:227) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:169) 
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:36) 
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181) 
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129) 
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71) 
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) 
+0

Es kann Ihnen helfen, wenn Sie weitere Informationen hinzufügen. Geschieht dies auf einer Workstation/einem VM/Docker? Gibt es spezielle mit dem Dateisystem (z. B. NFS)? Irgendwelche SE Linux Erweiterungen? Gibt es noch etwas, das Ihnen "seltsam" sein könnte? Java-Version/Linux-Distribution? Ich mache tägliche Entwicklung unter Linux (mit Java, Hibernate) und dies kommt nicht vor, aber andere seltsame Dinge sind in seltenen Fällen passiert! –

+0

Ich habe ein ähnliches Problem mit einem ähnlichen Stack-Trace, aber ich sehe den Stack-Trace zusammen mit einem OutOfMemoryError. Die gleiche App wird in JAR-Dateien anstelle von .Class-Dateien im Dateisystem implementiert, kein Problem. Aber auf meinem Dev-Server, auf dem ich .class-Dateien direkt deploye, sehe ich das OOME. @Antoniossss Hast du in der Zwischenzeit weitergekommen? – marc82ch

+0

@ marc82ch unglücklicherweise kann ich mich jetzt nicht erinnern, und ich habe zu einem anderen Projekt bewegt; ( – Antoniossss

Antwort

0

Das Problem für mich als auch für marc82ch wurde mit enomerous Anzahl der Dateien (extern) auf der Anwendung Classpath. Zum Beispiel hatte ich in meinem Fall Protokolldateien Verzeichnis im Klassenpfad mit Tonnen von Dateien enthalten.

Verwandte Themen