Merged ignite-1.6.7 to ignite-1.7.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fea3eeaa Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fea3eeaa Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fea3eeaa Branch: refs/heads/master Commit: fea3eeaac839381ec3662275a82f4d12af6f12dd Parents: 60afa37 0465874 Author: agura <[email protected]> Authored: Mon Aug 29 18:38:35 2016 +0300 Committer: agura <[email protected]> Committed: Mon Aug 29 18:38:35 2016 +0300 ---------------------------------------------------------------------- .../local/LocalIgfsSecondaryFileSystem.java | 38 +- .../processors/cache/GridCacheMapEntry.java | 19 +- .../GridCachePartitionExchangeManager.java | 7 + .../GridDistributedTxPrepareRequest.java | 4 +- .../distributed/dht/GridDhtLockFuture.java | 53 +- .../distributed/dht/GridDhtTxFinishFuture.java | 4 +- .../cache/distributed/dht/GridDhtTxLocal.java | 26 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 109 +- .../dht/GridDhtTxPrepareRequest.java | 4 +- .../GridNearAtomicAbstractUpdateFuture.java | 69 ++ .../GridNearAtomicSingleUpdateFuture.java | 70 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 68 +- .../colocated/GridDhtColocatedLockFuture.java | 37 +- .../distributed/near/GridNearLockFuture.java | 90 +- ...arOptimisticSerializableTxPrepareFuture.java | 13 +- .../near/GridNearOptimisticTxPrepareFuture.java | 263 +++-- ...ridNearOptimisticTxPrepareFutureAdapter.java | 5 +- .../GridNearPessimisticTxPrepareFuture.java | 8 +- .../near/GridNearTxFinishFuture.java | 5 +- .../cache/distributed/near/GridNearTxLocal.java | 16 +- .../near/GridNearTxPrepareRequest.java | 4 +- .../cache/transactions/IgniteInternalTx.java | 3 +- .../cache/transactions/IgniteTxAdapter.java | 37 +- .../cache/transactions/IgniteTxHandler.java | 9 +- .../transactions/IgniteTxLocalAdapter.java | 19 +- .../cache/transactions/IgniteTxManager.java | 86 +- .../cache/transactions/IgniteTxStateImpl.java | 11 +- .../cache/transactions/TxDeadlockDetection.java | 51 +- .../processors/odbc/OdbcNioListener.java | 2 +- .../processors/odbc/OdbcRequestHandler.java | 36 +- .../odbc/escape/OdbcEscapeParseResult.java | 73 ++ .../processors/odbc/escape/OdbcEscapeToken.java | 61 + .../processors/odbc/escape/OdbcEscapeType.java | 105 ++ .../processors/odbc/escape/OdbcEscapeUtils.java | 361 ++++++ .../service/GridServiceProcessor.java | 18 +- .../ignite/spi/discovery/tcp/ClientImpl.java | 7 +- .../cache/IgniteTxConfigCacheSelfTest.java | 91 +- .../IgniteTxTimeoutAbstractTest.java | 8 +- ...tionedMultiNodeLongTxTimeoutFullApiTest.java | 34 + ...nabledMultiNodeLongTxTimeoutFullApiTest.java | 41 + .../local/GridCacheLocalTxTimeoutSelfTest.java | 5 +- .../transactions/DepthFirstSearchTest.java | 100 +- .../TxDeadlockDetectionNoHangsTest.java | 246 ++++ .../transactions/TxDeadlockDetectionTest.java | 13 +- ...timisticDeadlockDetectionCrossCacheTest.java | 257 +++++ .../TxOptimisticDeadlockDetectionTest.java | 574 ++++++++++ ...simisticDeadlockDetectionCrossCacheTest.java | 165 ++- .../TxPessimisticDeadlockDetectionTest.java | 50 +- .../igfs/IgfsAbstractBaseSelfTest.java | 1067 ++++++++++++++++++ .../processors/igfs/IgfsAbstractSelfTest.java | 1012 +---------------- ...SecondaryFileSystemDualAbstractSelfTest.java | 143 +++ .../odbc/OdbcEscapeSequenceSelfTest.java | 420 +++++++ .../ignite/testsuites/IgniteBasicTestSuite.java | 2 + .../IgniteCacheFullApiSelfTestSuite.java | 4 + .../TxDeadlockDetectionTestSuite.java | 6 + .../cpp/common/src/common/big_integer.cpp | 1 - modules/platforms/cpp/odbc-test/Makefile.am | 9 + .../platforms/cpp/odbc-test/include/Makefile.am | 4 +- .../odbc-test/include/sql_test_suite_fixture.h | 191 ++++ .../cpp/odbc-test/include/test_utils.h | 45 + .../cpp/odbc-test/project/vs/odbc-test.vcxproj | 11 + .../project/vs/odbc-test.vcxproj.filters | 33 + .../cpp/odbc-test/src/queries_test.cpp | 78 +- .../src/sql_aggregate_functions_test.cpp | 249 ++++ .../src/sql_numeric_functions_test.cpp | 309 +++++ .../cpp/odbc-test/src/sql_operators_test.cpp | 214 ++++ .../odbc-test/src/sql_string_functions_test.cpp | 291 +++++ .../odbc-test/src/sql_system_functions_test.cpp | 47 + .../odbc-test/src/sql_test_suite_fixture.cpp | 271 +++++ .../cpp/odbc-test/src/sql_types_test.cpp | 60 + .../src/sql_value_expressions_test.cpp | 94 ++ .../platforms/cpp/odbc-test/src/test_utils.cpp | 36 + .../cpp/odbc/src/config/connection_info.cpp | 57 +- .../platforms/cpp/odbc/src/query/data_query.cpp | 6 +- modules/platforms/cpp/odbc/src/utility.cpp | 14 +- .../commands/cache/VisorCacheStopCommand.scala | 5 +- 76 files changed, 6455 insertions(+), 1599 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java index f0af551,e67e60f..620d9ae --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java @@@ -696,9 -666,10 +695,13 @@@ public class IgniteTxHandler assert nodeId != null; assert req != null; + if (locTx != null) + req.txState(locTx.txState()); + + // 'baseVersion' message field is re-used for version to be added in completed versions. + if (!req.commit() && req.baseVersion() != null) + ctx.tm().addRolledbackTx(null, req.baseVersion()); + // Transaction on local cache only. if (locTx != null && !locTx.nearLocallyMapped() && !locTx.colocatedLocallyMapped()) return new GridFinishedFuture<IgniteInternalTx>(locTx); http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxStateImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java index 8f2d092,ce98720..3805d32 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcRequestHandler.java @@@ -120,10 -123,12 +129,10 @@@ public class OdbcRequestHandler * @param req Handshake request. * @return Response. */ - private OdbcResponse performHandshake(OdbcHandshakeRequest req) { + private OdbcResponse performHandshake(long reqId, OdbcHandshakeRequest req) { - OdbcHandshakeResult res; + OdbcProtocolVersion version = req.version(); - if (req.version() == OdbcMessageParser.PROTO_VER) - res = new OdbcHandshakeResult(true, null, null); - else { + if (version.isUnknown()) { IgniteProductVersion ver = ctx.grid().version(); String verStr = Byte.toString(ver.major()) + '.' + ver.minor() + '.' + ver.maintenance(); http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/platforms/cpp/odbc-test/Makefile.am ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/platforms/cpp/odbc-test/project/vs/odbc-test.vcxproj ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/platforms/cpp/odbc-test/project/vs/odbc-test.vcxproj.filters ---------------------------------------------------------------------- diff --cc modules/platforms/cpp/odbc-test/project/vs/odbc-test.vcxproj.filters index aead2af,84f5a29..0a72640 --- a/modules/platforms/cpp/odbc-test/project/vs/odbc-test.vcxproj.filters +++ b/modules/platforms/cpp/odbc-test/project/vs/odbc-test.vcxproj.filters @@@ -76,9 -76,33 +76,36 @@@ <ClCompile Include="..\..\src\queries_test.cpp"> <Filter>Code</Filter> </ClCompile> + <ClCompile Include="..\..\..\odbc\src\protocol_version.cpp"> + <Filter>Externals</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_string_functions_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\test_utils.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_numeric_functions_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_aggregate_functions_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_system_functions_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_operators_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_types_test.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_test_suite_fixture.cpp"> + <Filter>Code</Filter> + </ClCompile> + <ClCompile Include="..\..\src\sql_value_expressions_test.cpp"> + <Filter>Code</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\include\test_type.h"> http://git-wip-us.apache.org/repos/asf/ignite/blob/fea3eeaa/modules/platforms/cpp/odbc-test/src/queries_test.cpp ---------------------------------------------------------------------- diff --cc modules/platforms/cpp/odbc-test/src/queries_test.cpp index 58b5f64,2d9bd58..ab59952 --- a/modules/platforms/cpp/odbc-test/src/queries_test.cpp +++ b/modules/platforms/cpp/odbc-test/src/queries_test.cpp @@@ -77,12 -53,41 +54,41 @@@ using ignite::impl::binary::BinaryUtils struct QueriesTestSuiteFixture { /** - * Constructor. + * Establish connection to node. + * + * @param connectStr Connection string. */ - QueriesTestSuiteFixture() : testCache(0), env(NULL), dbc(NULL), stmt(NULL) + void Connect(const std::string& connectStr) { + IgniteConfiguration cfg; + + cfg.jvmOpts.push_back("-Xdebug"); + cfg.jvmOpts.push_back("-Xnoagent"); + cfg.jvmOpts.push_back("-Djava.compiler=NONE"); + cfg.jvmOpts.push_back("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); + cfg.jvmOpts.push_back("-XX:+HeapDumpOnOutOfMemoryError"); + + #ifdef IGNITE_TESTS_32 + cfg.jvmInitMem = 256; + cfg.jvmMaxMem = 768; + #else + cfg.jvmInitMem = 1024; + cfg.jvmMaxMem = 4096; + #endif + + char* cfgPath = getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH"); + - BOOST_REQUIRE(cfgPath != 0); - - cfg.springCfgPath.assign(cfgPath).append("/queries-test.xml"); ++ cfg.springCfgPath = std::string(cfgPath).append("/").append("queries-test.xml"); + + IgniteError err; + + grid = Ignition::Start(cfg, &err); + + if (err.GetCode() != IgniteError::IGNITE_SUCCESS) + BOOST_FAIL(err.GetText()); + + testCache = grid.GetCache<int64_t, TestType>("cache"); + // Allocate an environment handle SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); @@@ -133,71 -138,8 +139,79 @@@ // Releasing allocated handles. SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); + } - Ignition::Stop(grid.GetName(), true); + static Ignite StartAdditionalNode(const char* name) + { + IgniteConfiguration cfg; + + cfg.jvmOpts.push_back("-Xdebug"); + cfg.jvmOpts.push_back("-Xnoagent"); + cfg.jvmOpts.push_back("-Djava.compiler=NONE"); + cfg.jvmOpts.push_back("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); + cfg.jvmOpts.push_back("-XX:+HeapDumpOnOutOfMemoryError"); + +#ifdef IGNITE_TESTS_32 + cfg.jvmInitMem = 256; + cfg.jvmMaxMem = 768; +#else + cfg.jvmInitMem = 1024; + cfg.jvmMaxMem = 4096; +#endif + - cfg.springCfgPath.assign(getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH")).append("/queries-test-noodbc.xml"); ++ char* cfgPath = getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH"); ++ ++ BOOST_REQUIRE(cfgPath != 0); ++ ++ cfg.springCfgPath.assign(cfgPath).append("/queries-test.xml"); + + IgniteError err; + + return Ignition::Start(cfg, name); + } + + /** + * Constructor. + */ + QueriesTestSuiteFixture() : testCache(0), env(NULL), dbc(NULL), stmt(NULL) + { + IgniteConfiguration cfg; + + cfg.jvmOpts.push_back("-Xdebug"); + cfg.jvmOpts.push_back("-Xnoagent"); + cfg.jvmOpts.push_back("-Djava.compiler=NONE"); + cfg.jvmOpts.push_back("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); + cfg.jvmOpts.push_back("-XX:+HeapDumpOnOutOfMemoryError"); + +#ifdef IGNITE_TESTS_32 + cfg.jvmInitMem = 256; + cfg.jvmMaxMem = 768; +#else + cfg.jvmInitMem = 1024; + cfg.jvmMaxMem = 4096; +#endif + - cfg.springCfgPath.assign(getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH")).append("/queries-test.xml"); ++ char* cfgPath = getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH"); ++ ++ BOOST_REQUIRE(cfgPath != 0); ++ ++ cfg.springCfgPath.assign(cfgPath).append("/queries-test.xml"); + + IgniteError err; + + grid = Ignition::Start(cfg, "NodeMain"); + + testCache = grid.GetCache<int64_t, TestType>("cache"); + } + + /** + * Destructor. + */ + ~QueriesTestSuiteFixture() + { + Disconnect(); + + Ignition::StopAll(true); } template<typename T>
