Maven故障安全插件意外挂起



使用以下配置运行 maven 故障安全插件时

    <profiles>
        <profile>
            <id>it</id>
            <build>
                <plugins>
                    <plugin>
                         <artifactId>maven-failsafe-plugin</artifactId>
                             <version>2.12</version>
                             <dependencies>
                                  <dependency>
                                   <groupId>org.apache.maven.surefire</groupId>
                                   <artifactId>surefire-junit47</artifactId>
                                   <version>2.12</version>
                                  </dependency>
                             </dependencies>
                             <configuration>
                                <groups>IntegrationTest</groups>
                             </configuration>
                             <executions>
                                  <execution>
                                       <id>default-integration-tests</id>
                                       <goals>
                                            <goal>integration-test</goal>
                                       </goals>
                                       <configuration>
                                            <groups>IntegrationTest</groups>
                                            <includes>
                                                <include>**/*.class</include>
                                            </includes>
                                        </configuration>
                                  </execution>
                             </executions>
                        </plugin>
                    </plugins>
                </build>
        </profile>
    </profiles>

Maven 在下一行挂起了一段时间

Concurrency config is parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false

我不知道如何为 maven 打开更多的调试。

我看到 Log4J 输出的第一行在 1.5 分钟后出现,没有明显的原因。

我想调查为什么会发生这种挂起,有没有人遇到过类似的问题?如何获取有关正在发生的事情的更多调试输出?

任何帮助都非常感谢。

编辑 I:log4j.root类别=信息, 滚动, 控制台 log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.category.net.sf.ehcache=info
log4j.category.net.sf.ehcache.distribution=info
log4j.category.net.sf.ehcache.config=info
log4j.category.<copyanypackage>=debug
log4j.category.org.hibernate=info
#log4j.category.org.hibernate.type.BasicTypeRegistry=debug
log4j.category.org.hibernate.util.DTDEntityResolver=debug
#log4j.category.org.hibernate.cfg=debug
log4j.category.org.hibernate.SQL=info
log4j.category.org.hibernate.jdbc.AbstractBatcher=debug
log4j.category.org.hibernate.type=info, rolling
#  second: Any configuration information needed for that appender.
#    Many appenders require a layout.
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%p %d{HH:mm:ss,SSS} %C] %m%n
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.File=c:/logging/logfile.log
# log4j.appender.rolling.File=c:/temp/logfile.log
log4j.appender.rolling.MaxFileSize=100KB
log4j.appender.rolling.MaxBackupIndex=5
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=%d{ISO8601} %p %t %C - %m%n

更新:

这里是线程转储

"Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@7d316b06" daemon prio=5 tid=0x00007fa676812800 nid=0x7203 waiting for monitor entry [0x000000011d9e5000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1456)
    - waiting to lock <0x00000007af590628> (a java.lang.Object)
    at com.microsoft.sqlserver.jdbc.Util.lookupHostName(Util.java:575)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2684)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    - locked <0x00000007ab34c890> (a java.lang.Object)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)

似乎与

java.net.InetAddress.getLocalHost

激活 IPv4 for Java,就像这样

-Djava.net.preferIPv4Stack=true 

解决了问题。

另请参阅此处

最新更新