You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ignite TC Bot (Jira)" <ji...@apache.org> on 2020/06/26 07:04:00 UTC
[jira] [Commented] (IGNITE-13187) Jar hell in classpath leads to
failed tests in C++ and .NET suites
[ https://issues.apache.org/jira/browse/IGNITE-13187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17146051#comment-17146051 ]
Ignite TC Bot commented on IGNITE-13187:
----------------------------------------
{panel:title=Branch: [pull/7963/head] Base: [master] : Possible Blockers (1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Platform C++ (Win x64 / Debug){color} [[tests 0 BuildFailureOnMessage |https://ci.ignite.apache.org/viewLog.html?buildId=5417591]]
{panel}
{panel:title=Branch: [pull/7963/head] Base: [master] : New Tests (876)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Platform C++ (Win x64 / Debug){color} [tests 876]
* {color:#013220}IgniteOdbcTest: SqlNumericFunctionTestSuite: TestNumericFunctionFloor - PASSED{color}
* {color:#013220}IgniteOdbcTest: SqlNumericFunctionTestSuite: TestNumericFunctionLog - PASSED{color}
* {color:#013220}IgniteOdbcTest: SqlDateTimeFunctionTestSuite: TestCurrentDate - PASSED{color}
* {color:#013220}IgniteCoreTest: CacheQueryTestSuite: TestFieldsQueryByteArrayInsertSelect - PASSED{color}
* {color:#013220}IgniteCoreTest: ContinuousQueryTestSuite: TestBasic - PASSED{color}
* {color:#013220}IgniteCoreTest: ContinuousQueryTestSuite: TestInitialQueryScan - PASSED{color}
* {color:#013220}IgniteOdbcTest: ApiRobustnessTestSuite: TestSQLGetStmtAttr - PASSED{color}
* {color:#013220}IgniteOdbcTest: ApplicationDataBufferTestSuite: TestPutStringToLong - PASSED{color}
* {color:#013220}IgniteCoreTest: ContinuousQueryTestSuite: TestInitialQuerySql - PASSED{color}
* {color:#013220}IgniteOdbcTest: ApplicationDataBufferTestSuite: TestPutStringToTiny - PASSED{color}
* {color:#013220}IgniteCoreTest: ContinuousQueryTestSuite: TestInitialQueryText - PASSED{color}
... and 865 tests blockers
{panel}
[TeamCity *-> Run :: CPP* Results|https://ci.ignite.apache.org/viewLog.html?buildId=5417598&buildTypeId=IgniteTests24Java8_RunCpp]
> Jar hell in classpath leads to failed tests in C++ and .NET suites
> ------------------------------------------------------------------
>
> Key: IGNITE-13187
> URL: https://issues.apache.org/jira/browse/IGNITE-13187
> Project: Ignite
> Issue Type: Test
> Components: platforms
> Affects Versions: 2.8.1
> Environment: Apache Ignite TC.
> Reporter: Ivan Daschinskiy
> Assignee: Ivan Daschinskiy
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> On some agents tests and examples start failing with this calltrace:
> {code:java}
> [13:53:52]java.lang.NoSuchFieldError: logger
> [13:53:52] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:723)
> [13:53:52] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:881)
> [13:53:52] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
> [13:53:52] at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:381)
> [13:53:52] at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:104)
> [13:53:52] at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:98)
> [13:53:52] at org.apache.ignite.internal.IgnitionEx.loadConfigurations(IgnitionEx.java:709)
> [13:53:52] at org.apache.ignite.internal.IgnitionEx.loadConfiguration(IgnitionEx.java:767)
> [13:53:52] at org.apache.ignite.internal.processors.platform.PlatformIgnition.configuration(PlatformIgnition.java:152)
> [13:53:52] at org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:67)
> {code}
> The main reason of failure is jar-hell. When .NET or C++ tests are started, if IGNITE_NATIVE_TEST_CLASSPATH is set to true, source directory is iterated and files libs, target/classes etc.are added to classpath. But neither readdir(), FindNextFileA() or Directory.EnumerateDirectories() do guarantee any ordering. But in spring-data-2.0 and spring-data-2.2 there are different version of spring. So jar hell occurs and tests fails.
> I created small patch that excluded spring-data from directories, that create classpath and tests start working.
> See links attached.
> {code:java}
> diff --git a/modules/platforms/cpp/jni/os/linux/src/utils.cpp b/modules/platforms/cpp/jni/os/linux/src/utils.cpp
> index 1fcdb317d2..586c37d008 100644
> --- a/modules/platforms/cpp/jni/os/linux/src/utils.cpp
> +++ b/modules/platforms/cpp/jni/os/linux/src/utils.cpp
> @@ -183,7 +183,7 @@ namespace ignite
> {
> std::string res;
>
> - if (FileExists(path))
> + if (FileExists(path) && (path.find("spring-data") == std::string::npos))
> {
> // 1. Append "target\classes".
> std::string classesPath = path + "/target/classes";
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)