You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/07/05 12:13:46 UTC
[1/4] ignite git commit: IGNITE-5663: ODBC: Closing cursor do not
reset prepared statement anymore
Repository: ignite
Updated Branches:
refs/heads/ignite-gg-12306-1 [created] 032f2d3ef
IGNITE-5663: ODBC: Closing cursor do not reset prepared statement anymore
(cherry picked from commit 64c156e)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/301f310b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/301f310b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/301f310b
Branch: refs/heads/ignite-gg-12306-1
Commit: 301f310b6348b3f6fbe54b16d065569755e71bce
Parents: aa21a9b
Author: Igor Sapego <is...@gridgain.com>
Authored: Tue Jul 4 19:42:33 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Wed Jul 5 14:21:40 2017 +0300
----------------------------------------------------------------------
.../cpp/odbc-test/src/queries_test.cpp | 61 ++++++++++++++++++++
modules/platforms/cpp/odbc/src/odbc.cpp | 2 +-
modules/platforms/cpp/odbc/src/statement.cpp | 3 -
3 files changed, 62 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/301f310b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc-test/src/queries_test.cpp b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
index 41bc1fc..263993c 100644
--- a/modules/platforms/cpp/odbc-test/src/queries_test.cpp
+++ b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
@@ -1934,5 +1934,66 @@ BOOST_AUTO_TEST_CASE(TestParamsNum)
CheckParamsNum("INSERT INTO TestType(_key, strField) VALUES(?, ?)", 2);
}
+BOOST_AUTO_TEST_CASE(TestExecuteAfterCursorClose)
+{
+ TestType in(1, 2, 3, 4, "5", 6.0f, 7.0, true, Guid(8, 9), MakeDateGmt(1987, 6, 5),
+ MakeTimeGmt(12, 48, 12), MakeTimestampGmt(1998, 12, 27, 1, 2, 3, 456));
+
+ cache1.Put(1, in);
+
+ Connect("DRIVER={Apache Ignite};ADDRESS=127.0.0.1:11110;SCHEMA=cache");
+
+ int64_t key = 0;
+ char strField[1024] = { 0 };
+ SQLLEN strFieldLen = 0;
+
+ // Binding columns.
+ SQLRETURN ret = SQLBindCol(stmt, 1, SQL_C_SLONG, &key, 0, 0);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ // Binding columns.
+ ret = SQLBindCol(stmt, 2, SQL_C_CHAR, &strField, sizeof(strField), &strFieldLen);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ // Just selecting everything to make sure everything is OK
+ SQLCHAR selectReq[] = "SELECT _key, strField FROM TestType";
+
+ ret = SQLPrepare(stmt, selectReq, sizeof(selectReq));
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ ret = SQLExecute(stmt);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ ret = SQLFreeStmt(stmt, SQL_CLOSE);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ ret = SQLExecute(stmt);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ ret = SQLFetch(stmt);
+
+ if (!SQL_SUCCEEDED(ret))
+ BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
+
+ BOOST_CHECK_EQUAL(key, 1);
+
+ BOOST_CHECK_EQUAL(std::string(strField, strFieldLen), "5");
+
+ ret = SQLFetch(stmt);
+
+ BOOST_CHECK_EQUAL(ret, SQL_NO_DATA);
+}
BOOST_AUTO_TEST_SUITE_END()
http://git-wip-us.apache.org/repos/asf/ignite/blob/301f310b/modules/platforms/cpp/odbc/src/odbc.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/odbc.cpp b/modules/platforms/cpp/odbc/src/odbc.cpp
index a738598..b450903 100644
--- a/modules/platforms/cpp/odbc/src/odbc.cpp
+++ b/modules/platforms/cpp/odbc/src/odbc.cpp
@@ -212,7 +212,7 @@ namespace ignite
{
using odbc::Statement;
- LOG_MSG("SQLFreeStmt called");
+ LOG_MSG("SQLFreeStmt called [option=" << option << ']');
Statement *statement = reinterpret_cast<Statement*>(stmt);
http://git-wip-us.apache.org/repos/asf/ignite/blob/301f310b/modules/platforms/cpp/odbc/src/statement.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/statement.cpp b/modules/platforms/cpp/odbc/src/statement.cpp
index 697f5b4..adc7d6b 100644
--- a/modules/platforms/cpp/odbc/src/statement.cpp
+++ b/modules/platforms/cpp/odbc/src/statement.cpp
@@ -745,9 +745,6 @@ namespace ignite
SqlResult::Type result = currentQuery->Close();
- if (result == SqlResult::AI_SUCCESS)
- currentQuery.reset();
-
return result;
}
[4/4] ignite git commit: 12306
Posted by sb...@apache.org.
12306
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/032f2d3e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/032f2d3e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/032f2d3e
Branch: refs/heads/ignite-gg-12306-1
Commit: 032f2d3eff6e33ee28fe5c0108a6b6a6a461747c
Parents: 0f9a895
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 15:13:26 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 15:13:26 2017 +0300
----------------------------------------------------------------------
.../cache/GridCachePartitionExchangeManager.java | 2 +-
.../processors/cache/transactions/IgniteTxAdapter.java | 4 ++--
.../cache/transactions/IgniteTxLocalAdapter.java | 11 +++++++++--
3 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/032f2d3e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 22345d2..d7f451b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -1550,7 +1550,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
* @param timeout Operation timeout.
* @return {@code True} if found long running operations.
*/
- private boolean dumpLongRunningOperations0(long timeout) {
+ public boolean dumpLongRunningOperations0(long timeout) {
long curTime = U.currentTimeMillis();
boolean found = false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/032f2d3e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index ee8afb0..284bf1a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -418,10 +418,10 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter implement
try {
for (IgniteTxEntry e : writeMap().values()) {
try {
- GridCacheEntryEx Entry = e.cached();
+ GridCacheEntryEx entry = e.cached();
if (e.op() != NOOP)
- Entry.invalidate(null, xidVer);
+ entry.invalidate(null, xidVer);
}
catch (Throwable t) {
U.error(log, "Failed to invalidate transaction entries while reverting a commit.", t);
http://git-wip-us.apache.org/repos/asf/ignite/blob/032f2d3e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index e4b850d..3848f7d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -32,6 +32,7 @@ import javax.cache.processor.EntryProcessor;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.NodeStoppingException;
import org.apache.ignite.internal.pagemem.wal.StorageException;
import org.apache.ignite.internal.pagemem.wal.WALPointer;
import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
@@ -828,11 +829,16 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter implements Ig
throw ex;
}
else {
+ boolean nodeStopping = X.hasCause(ex, NodeStoppingException.class);
+
IgniteCheckedException err = new IgniteTxHeuristicCheckedException("Failed to locally write to cache " +
"(all transaction entries will be invalidated, however there was a window when " +
"entries for this transaction were visible to others): " + this, ex);
- U.error(log, "Heuristic transaction failure.", err);
+ if (nodeStopping)
+ U.warn(log, "Failed to commit transaction, node is stopping [tx=" + this + ", err=" + ex + ']');
+ else
+ U.error(log, "Heuristic transaction failure.", err);
COMMIT_ERR_UPD.compareAndSet(this, null, err);
@@ -840,7 +846,8 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter implements Ig
try {
// Courtesy to minimize damage.
- uncommit();
+ if (!nodeStopping)
+ uncommit();
}
catch (Throwable ex1) {
U.error(log, "Failed to uncommit transaction: " + this, ex1);
[2/4] ignite git commit: Diagnostic info for GridDhtTxFinishFuture.
Posted by sb...@apache.org.
Diagnostic info for GridDhtTxFinishFuture.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/58a937e5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/58a937e5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/58a937e5
Branch: refs/heads/ignite-gg-12306-1
Commit: 58a937e5310c62ccb557d8da959bc4ffa8bcca62
Parents: aa21a9b
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 14:24:51 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 14:24:51 2017 +0300
----------------------------------------------------------------------
.../internal/IgniteDiagnosticMessage.java | 4 ++-
.../distributed/dht/GridDhtTxFinishFuture.java | 33 +++++++++++++++++++-
2 files changed, 35 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/58a937e5/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
index 075b0fe..6e6bac0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticMessage.java
@@ -413,7 +413,9 @@ public class IgniteDiagnosticMessage implements Message {
for (IgniteInternalTx tx : ctx.cache().context().tm().activeTransactions()) {
if (dhtVer.equals(tx.xidVersion()) || nearVer.equals(tx.nearXidVersion())) {
sb.append(U.nl())
- .append(" [ver=").append(tx.xidVersion())
+ .append(" ")
+ .append(tx.getClass().getSimpleName())
+ .append(" [ver=").append(tx.xidVersion())
.append(", nearVer=").append(tx.nearXidVersion())
.append(", topVer=").append(tx.topologyVersion())
.append(", state=").append(tx.state())
http://git-wip-us.apache.org/repos/asf/ignite/blob/58a937e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 8a31bac..d8180b4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -26,6 +26,8 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.IgniteDiagnosticAware;
+import org.apache.ignite.internal.IgniteDiagnosticPrepareContext;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.NodeStoppingException;
import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
@@ -35,6 +37,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxMapping;
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
+import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
@@ -53,7 +56,7 @@ import static org.apache.ignite.transactions.TransactionState.COMMITTING;
*
*/
public final class GridDhtTxFinishFuture<K, V> extends GridCacheCompoundIdentityFuture<IgniteInternalTx>
- implements GridCacheFuture<IgniteInternalTx> {
+ implements GridCacheFuture<IgniteInternalTx>, IgniteDiagnosticAware {
/** */
private static final long serialVersionUID = 0L;
@@ -554,6 +557,34 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCacheCompoundIdentity
}
/** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ @Override public void addDiagnosticRequest(IgniteDiagnosticPrepareContext ctx) {
+ if (!isDone()) {
+ for (IgniteInternalFuture fut : futures()) {
+ if (!fut.isDone()) {
+ MiniFuture f = (MiniFuture)fut;
+
+ if (!f.node().isLocal()) {
+ GridCacheVersion dhtVer = tx.xidVersion();
+ GridCacheVersion nearVer = tx.nearXidVersion();
+
+ ctx.remoteTxInfo(f.node().id(), dhtVer, nearVer, "GridDhtTxFinishFuture " +
+ "waiting for response [node=" + f.node().id() +
+ ", topVer=" + tx.topologyVersion() +
+ ", dhtVer=" + dhtVer +
+ ", nearVer=" + nearVer +
+ ", futId=" + futId +
+ ", miniId=" + f.futId +
+ ", tx=" + tx + ']');
+
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
@SuppressWarnings("unchecked")
[3/4] ignite git commit: Merge remote-tracking branch
'community/ignite-2.1.2' into ignite-2.1.2
Posted by sb...@apache.org.
Merge remote-tracking branch 'community/ignite-2.1.2' into ignite-2.1.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0f9a895a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0f9a895a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0f9a895a
Branch: refs/heads/ignite-gg-12306-1
Commit: 0f9a895a04cd4a4f6be8e006fc2afd6f720b2215
Parents: 58a937e 301f310
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 14:25:16 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 14:25:16 2017 +0300
----------------------------------------------------------------------
.../cpp/odbc-test/src/queries_test.cpp | 61 ++++++++++++++++++++
modules/platforms/cpp/odbc/src/odbc.cpp | 2 +-
modules/platforms/cpp/odbc/src/statement.cpp | 3 -
3 files changed, 62 insertions(+), 4 deletions(-)
----------------------------------------------------------------------