You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "YuJue Li (Jira)" <ji...@apache.org> on 2021/02/18 00:37:00 UTC

[jira] [Created] (IGNITE-14204) cpp thin client transaction :Transaction with id 1 not found.

YuJue Li created IGNITE-14204:
---------------------------------

             Summary: cpp thin client transaction :Transaction with id 1 not found.
                 Key: IGNITE-14204
                 URL: https://issues.apache.org/jira/browse/IGNITE-14204
             Project: Ignite
          Issue Type: Bug
          Components: thin client
    Affects Versions: 2.10
            Reporter: YuJue Li
             Fix For: 2.10


Using the 2.10 branch code and the transaction function of cpp thin client, the transaction with id 1 not found error will be throw. the reproduce steps are as follows:

1.start two nodes on two hosts use the following config file:
{color:#808080}<?{color}{color:#569cd6}xml{color}{color:#9cdcfe} version{color}{color:#d4d4d4}={color}{color:#ce9178}"1.0"{color}{color:#9cdcfe} encoding{color}{color:#d4d4d4}={color}{color:#ce9178}"UTF-8"{color}{color:#808080}?>{color}
{color:#808080}<{color}{color:#569cd6}beans{color} {color:#9cdcfe}xmlns{color}{color:#d4d4d4}={color}{color:#ce9178}["http://www.springframework.org/schema/beans"|http://www.springframework.org/schema/beans]{color}
{color:#9cdcfe}xmlns:xsi{color}{color:#d4d4d4}={color}{color:#ce9178}["http://www.w3.org/2001/XMLSchema-instance"|http://www.w3.org/2001/XMLSchema-instance]{color}
{color:#9cdcfe}xsi:schemaLocation{color}{color:#d4d4d4}={color}{color:#ce9178}"{color}
{color:#ce9178} [http://www.springframework.org/schema/beans]{color}
{color:#ce9178} [http://www.springframework.org/schema/beans/spring-beans.xsd]"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}bean{color} {color:#9cdcfe}id{color}{color:#d4d4d4}={color}{color:#ce9178}"grid.cfg"{color} {color:#9cdcfe}class{color}{color:#d4d4d4}={color}{color:#ce9178}"org.apache.ignite.configuration.IgniteConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"clientMode"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"false"{color} {color:#808080}/>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"peerClassLoadingEnabled"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"true"{color}{color:#808080}/>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"binaryConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}bean{color} {color:#9cdcfe}class{color}{color:#d4d4d4}={color}{color:#ce9178}"org.apache.ignite.configuration.BinaryConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"compactFooter"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"false"{color} {color:#808080}/>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"idMapper"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}bean{color} {color:#9cdcfe}class{color}{color:#d4d4d4}={color}{color:#ce9178}"org.apache.ignite.binary.BinaryBasicIdMapper"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"lowerCase"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"true"{color} {color:#808080}/>{color}
{color:#808080}</{color}{color:#569cd6}bean{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}property{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}bean{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}property{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"dataStorageConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}bean{color} {color:#9cdcfe}class{color}{color:#d4d4d4}={color}{color:#ce9178}"org.apache.ignite.configuration.DataStorageConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"defaultDataRegionConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}bean{color} {color:#9cdcfe}class{color}{color:#d4d4d4}={color}{color:#ce9178}"org.apache.ignite.configuration.DataRegionConfiguration"{color}{color:#808080}>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"name"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"default"{color} {color:#808080}/>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"maxSize"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"#\{1L * 1024 * 1024 * 1024}"{color} {color:#808080}/>{color}
{color:#808080}<{color}{color:#569cd6}property{color} {color:#9cdcfe}name{color}{color:#d4d4d4}={color}{color:#ce9178}"persistenceEnabled"{color} {color:#9cdcfe}value{color}{color:#d4d4d4}={color}{color:#ce9178}"false"{color} {color:#808080}/>{color}
{color:#808080}</{color}{color:#569cd6}bean{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}property{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}bean{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}property{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}bean{color}{color:#808080}>{color}
{color:#808080}</{color}{color:#569cd6}beans{color}{color:#808080}>{color}
2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.
{color:#c586c0}#include{color} {color:#ce9178}<stdint.h>{color}
{color:#c586c0}#include{color} {color:#ce9178}<iostream>{color}
{color:#c586c0}#include{color} {color:#ce9178}<ignite/thin/ignite_client.h>{color}
{color:#c586c0}#include{color} {color:#ce9178}<ignite/thin/cache/cache_client.h>{color}
{color:#c586c0}#include{color} {color:#ce9178}"ignite/examples/organization.h"{color}
{color:#c586c0}using{color} {color:#569cd6}namespace{color} {color:#4ec9b0}ignite{color}{color:#d4d4d4};{color}
{color:#c586c0}using{color} {color:#569cd6}namespace{color} {color:#4ec9b0}thin{color}{color:#d4d4d4};{color}
{color:#c586c0}using{color} {color:#569cd6}namespace{color} {color:#4ec9b0}cache{color}{color:#d4d4d4};{color}
{color:#c586c0}using{color} {color:#569cd6}namespace{color} {color:#4ec9b0}examples{color}{color:#d4d4d4};{color}
{color:#569cd6}int{color} {color:#dcdcaa}main{color}{color:#d4d4d4}(){color}
{color:#d4d4d4}{{color}
{color:#d4d4d4} IgniteClientConfiguration cfg;{color}
 
{color:#9cdcfe}cfg{color}{color:#d4d4d4}.{color}{color:#dcdcaa}SetEndPoints{color}{color:#d4d4d4}({color}{color:#ce9178}"X.X.X.X"{color}{color:#d4d4d4});{color}
{color:#c586c0}try{color}
{color:#d4d4d4} { {color}
{color:#d4d4d4} IgniteClient client = {color}{color:#4ec9b0}IgniteClient{color}{color:#d4d4d4}::{color}{color:#dcdcaa}Start{color}{color:#d4d4d4}(cfg); {color}
{color:#d4d4d4} CacheClient<{color}{color:#569cd6}int32_t{color}{color:#d4d4d4}, Organization> cache = {color}{color:#9cdcfe}client{color}{color:#d4d4d4}.{color}{color:#9cdcfe}GetOrCreateCache{color}{color:#d4d4d4}<{color}{color:#569cd6}int32_t{color}{color:#d4d4d4}, Organization>({color}{color:#ce9178}"PutGetExample"{color}{color:#d4d4d4});{color}
{color:#9cdcfe}cache{color}{color:#d4d4d4}.{color}{color:#dcdcaa}Clear{color}{color:#d4d4d4}();{color}
{color:#569cd6}int{color}{color:#d4d4d4} loop = {color}{color:#b5cea8}100{color}{color:#d4d4d4};{color}
{color:#c586c0}for{color}{color:#d4d4d4} ({color}{color:#569cd6}int{color}{color:#d4d4d4} i = {color}{color:#b5cea8}0{color}{color:#d4d4d4}; i < loop; i++){color}
{color:#d4d4d4} {{color}
{color:#4ec9b0}ignite{color}{color:#d4d4d4}::{color}{color:#4ec9b0}thin{color}{color:#d4d4d4}::{color}{color:#4ec9b0}transactions{color}{color:#d4d4d4}::ClientTransaction transaction = {color}{color:#9cdcfe}client{color}{color:#d4d4d4}.{color}{color:#dcdcaa}ClientTransactions{color}{color:#d4d4d4}().{color}{color:#dcdcaa}TxStart{color}{color:#d4d4d4}();{color}
{color:#d4d4d4} Organization {color}{color:#dcdcaa}org{color}{color:#d4d4d4}({color}{color:#ce9178}"Microsoft"{color}{color:#d4d4d4}, {color}{color:#dcdcaa}Address{color}{color:#d4d4d4}({color}{color:#ce9178}"1096 Eddy Street, San Francisco, CA"{color}{color:#d4d4d4}, i));{color}
{color:#9cdcfe}cache{color}{color:#d4d4d4}.{color}{color:#dcdcaa}Put{color}{color:#d4d4d4}({color}{color:#b5cea8}1{color}{color:#d4d4d4}, org); {color}
{color:#9cdcfe}transaction{color}{color:#d4d4d4}.{color}{color:#dcdcaa}Commit{color}{color:#d4d4d4}();{color}
{color:#d4d4d4} }{color}
{color:#d4d4d4} Organization orgFromCache = {color}{color:#9cdcfe}cache{color}{color:#d4d4d4}.{color}{color:#dcdcaa}Get{color}{color:#d4d4d4}({color}{color:#b5cea8}1{color}{color:#d4d4d4});{color}
{color:#d4d4d4} }{color}
{color:#c586c0}catch{color}{color:#d4d4d4} (IgniteError& err){color}
{color:#d4d4d4} {{color}
{color:#4ec9b0}std{color}{color:#d4d4d4}::cout << {color}{color:#ce9178}"An error occurred: "{color}{color:#d4d4d4} << {color}{color:#9cdcfe}err{color}{color:#d4d4d4}.{color}{color:#dcdcaa}GetText{color}{color:#d4d4d4}() << {color}{color:#4ec9b0}std{color}{color:#d4d4d4}::endl;{color}
{color:#c586c0}return{color} {color:#9cdcfe}err{color}{color:#d4d4d4}.{color}{color:#dcdcaa}GetCode{color}{color:#d4d4d4}();{color}
{color:#d4d4d4} }{color}
{color:#c586c0}return{color} {color:#b5cea8}0{color}{color:#d4d4d4};{color}
3.server side's log are as follows:
{color:#d4d4d4}[{color}{color:#6a9955}11:25:35,496{color}{color:#d4d4d4}][SEVERE][client-connector-#{color}{color:#569cd6}117{color}{color:#d4d4d4}][ClientListenerNioListener] Failed to process client request [req={color}{color:#569cd6}o.a.i.i.processors.platform.client.tx.ClientTxEndRequest{color}{color:#d4d4d4}@569bc2e0]{color}
{color:#d4d4d4}class {color}{color:#ce9178}org.apache.ignite.internal.processors.platform.client.IgniteClientException{color}{color:#d4d4d4}: Transaction with id {color}{color:#569cd6}1{color}{color:#d4d4d4} not found.{color}
{color:#ce9178} at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59){color}
{color:#ce9178} at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98){color}
{color:#ce9178} at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195){color}
{color:#ce9178} at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49){color}
{color:#ce9178} at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279){color}
{color:#ce9178} at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109){color}
{color:#ce9178} at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97){color}
{color:#ce9178} at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120){color}
{color:#ce9178} at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70){color}
{color:#ce9178} at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149){color}
{color:#ce9178} at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624){color}
{color:#ce9178} at java.lang.Thread.run(Thread.java:748){color}
If start two nodes on two hosts and create a cluster, you can reproduce this problem. If start multiple server nodes on one host, it seems that there is no problem.
Thin clients only need one.

See the following discussion for details:

http://apache-ignite-users.70518.x6.nabble.com/2-10-branch-cpp-thin-client-transaction-Transaction-with-id-1-not-found-tt35358.html



--
This message was sent by Atlassian Jira
(v8.3.4#803005)