3 Stimmen

maven - seltsames nfs-Problem beim Bauen

Ich habe ein Maven-Projekt, das lokal (Windows) OK gebaut wird. Wenn ich versuche, es auf unserem svn-Server (Linux) zu bauen, bleibt es beim Ausführen von Tests hängen.

Ich sehe eine tmp-Datei, die erstellt wird:

nfs0000000001e9c8a900000017

im folgenden Verzeichnis aus meinem Testmodul:

/project_name-test/target/surefire-reports

Die Konfiguration in der pom ist:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <dependencies/>
            <configuration>
                <systemProperties>
                    <property>
                        <name>java.io.tmpdir</name>
                        <value>${basedir}/target/tmp</value>
                    </property>
                </systemProperties>
                <skip>true</skip>
                <suiteXmlFiles>
                    <suiteXmlFile>
                        src/test/conf/testng.xml
                    </suiteXmlFile>
                </suiteXmlFiles>
                <childDelegation>true</childDelegation>
                <argLine>-Dsun.lang.ClassLoader.allowArraySyntax=true</argLine>
            </configuration>
            <executions>
                <execution>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Bitte beachten Sie, dass ein vollständiges Auschecken und Erstellen im /tmp-Ordner funktioniert hervorragend sondern auf

/var/build/build/project_name/up-docstore/project_name/trunk/project_name-test/target/surefire-reports

scheitert.

Ich habe das Gefühl, dass die .nfs tmp-Datei Probleme verursachen kann... aber ich sehe keine Abhilfe.

Können Sie mir einen Tipp geben?

Danke.

UPDATE : was wirklich seltsam zu sein scheint, ist, dass, wenn ich CTRL+Z drücke, um den Prozess im Hintergrund zu senden und "fg" einzugeben, um ihn fortzusetzen, das Problem gelöst ist... (der Build wird von diesem hängenden Zustand aus fortgesetzt)

3voto

janneb Punkte 33959

Die .nfsXXXX-Dateien sind auf das so genannte "dumme Umbenennen" zurückzuführen, das der NFS-Klient vornimmt, um die POSIX-Semantik "Löschen beim letzten Schließen" auf dem zustandslosen NFSv3-Protokoll zu emulieren.

Mit anderen Worten: Sie erscheinen, wenn eine Datei gelöscht wurde, aber ein Prozess die Datei noch geöffnet hält. Wenn dieser Prozess beendet wird, wird die .nfsXXXX-Datei endgültig gelöscht.

2voto

JoseK Punkte 30825

Versuchen Sie fuser {filename}

Verwenden Sie fuser, um den Prozess zu finden, der die Datei sperrt. Die nfs-Datei sollte von selbst verschwinden, wenn der Prozess beendet ist.

Vielleicht müssen Sie den Prozess beenden, aber ich vermute, dass es Ihr Maven-Build selbst ist.

1voto

Cristian Boariu Punkte 9461

"Ich habe das Problem behoben, indem ich das Build-Verzeichnis auf eine lokale Festplatte gemountet habe und nur das Maven-Repository auf einen NFS-Mount gelegt habe (weil es den meisten Platz beanspruchte).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X