maven - странная проблема nfs при сборке - PullRequest
3 голосов
/ 07 июля 2010

У меня есть проект Maven, который строит ОК локально (Windows).Когда я пытаюсь собрать его на нашем svn-сервере (linux), он зависает при запуске тестов.

Я вижу созданный tmp-файл:

nfs0000000001e9c8a900000017

в следующем каталоге из моего тестового модуля:

/ имя_проекта-test / target / surefire-reports

Конфигурация в pom:

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

Обратите внимание, что полная проверка и сборка в папке / tmp прекрасно работает , но на

/ var / build / build / project_name / up-docstore /имя_проекта / trunk / имя_проекта-test / target / surefire-reports

терпит неудачу.

У меня такое ощущение, что файл .nfs tmp может вызвать проблемы ... но я не вижулюбой обходной путь.

Можете ли вы дать мне подсказку?

Спасибо.

ОБНОВЛЕНИЕ: то, что кажется действительно странным, это то, что если я нажимаю CTRL+ Z, чтобы отправить процесс в фоновом режиме, и набрать «fg», чтобы продолжить, проблема решена ... (сборка продолжается из этого состояния зависания)

Ответы [ 3 ]

3 голосов
/ 07 июля 2010

Файлы .nfsXXXX происходят из-за так называемого «глупого переименования», которое делает клиент NFS для эмуляции удаления POSIX при последней закрытой семантике поверх протокола NFSv3 без сохранения состояния.

В другихслова, они появляются, когда файл удален, но какой-то процесс все еще держит файл открытым.Когда этот процесс завершается, файл .nfsXXXX будет удален по-настоящему.

2 голосов
/ 07 июля 2010

Попробуйте fuser {filename}

Используйте fuser, чтобы найти процесс, который блокирует файл. Файл nfs должен исчезнуть сам по себе после остановки процесса.

Возможно, вам придется убить процесс, но я подозреваю, что это ваша сборка Maven?

1 голос
/ 08 июля 2010

«исправил» его, смонтировав каталог сборки на локальный диск, и поместил репозиторий maven только на монтирование NFS (потому что оно занимало большую часть пространства).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...