[2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

classic Classic list List threaded Threaded
14 messages Options
18624049226 18624049226
Reply | Threaded
Open this post in threaded view
|

[2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hi team,

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 a node use the following config file:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false" />
<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
<bean class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="compactFooter" value="false" />
<property name="idMapper">
<bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase" value="true" />
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="default" />
<property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
<property name="persistenceEnabled" value="false" />
</bean>
</property>
</bean>
</property>
</bean>
</beans>

2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.

#include <stdint.h>
#include <iostream>
#include <ignite/thin/ignite_client.h>
#include <ignite/thin/cache/cache_client.h>
#include "ignite/examples/organization.h"
using namespace ignite;
using namespace thin;
using namespace cache;
using namespace examples;
int main()
{
IgniteClientConfiguration cfg;
cfg.SetEndPoints("X.X.X.X");
try
{
IgniteClient client = IgniteClient::Start(cfg);
CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<int32_t, Organization>("PutGetExample");
cache.Clear();
int loop = 100;
for (int i = 0; i < loop; i++)
{
ignite::thin::transactions::ClientTransaction transaction = client.ClientTransactions().TxStart();
Organization org("Microsoft", Address("1096 Eddy Street, San Francisco, CA", i));
cache.Put(1, org);
transaction.Commit();
}
Organization orgFromCache = cache.Get(1);
}
catch (IgniteError& err)
{
std::cout << "An error occurred: " << err.GetText() << std::endl;
return err.GetCode();
}
return 0;
}

3.server side's log are as follows:

[11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
class org.apache.ignite.internal.processors.platform.client.IgniteClientException: Transaction with id 1 not found.
at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


Igor Sapego-1 Igor Sapego-1
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hi, I've tried to reproduce an issue you described and could not reproduce it.

Can you share more details? How many nodes do you run? How many clients
are run? Do you run any other operations in parallel?

Best Regards,
Igor


On Wed, Feb 3, 2021 at 3:00 PM 18624049226 <[hidden email]> wrote:

Hi team,

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 a node use the following config file:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false" />
<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
<bean class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="compactFooter" value="false" />
<property name="idMapper">
<bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase" value="true" />
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="default" />
<property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
<property name="persistenceEnabled" value="false" />
</bean>
</property>
</bean>
</property>
</bean>
</beans>

2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.

#include <stdint.h>
#include <iostream>
#include <ignite/thin/ignite_client.h>
#include <ignite/thin/cache/cache_client.h>
#include "ignite/examples/organization.h"
using namespace ignite;
using namespace thin;
using namespace cache;
using namespace examples;
int main()
{
IgniteClientConfiguration cfg;
cfg.SetEndPoints("X.X.X.X");
try
{
IgniteClient client = IgniteClient::Start(cfg);
CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<int32_t, Organization>("PutGetExample");
cache.Clear();
int loop = 100;
for (int i = 0; i < loop; i++)
{
ignite::thin::transactions::ClientTransaction transaction = client.ClientTransactions().TxStart();
Organization org("Microsoft", Address("1096 Eddy Street, San Francisco, CA", i));
cache.Put(1, org);
transaction.Commit();
}
Organization orgFromCache = cache.Get(1);
}
catch (IgniteError& err)
{
std::cout << "An error occurred: " << err.GetText() << std::endl;
return err.GetCode();
}
return 0;
}

3.server side's log are as follows:

[11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
class org.apache.ignite.internal.processors.platform.client.IgniteClientException: Transaction with id 1 not found.
at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


18624049226 18624049226
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello Igor,

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.

在 2021/2/3 下午10:02, Igor Sapego 写道:
Hi, I've tried to reproduce an issue you described and could not reproduce it.

Can you share more details? How many nodes do you run? How many clients
are run? Do you run any other operations in parallel?

Best Regards,
Igor


On Wed, Feb 3, 2021 at 3:00 PM 18624049226 <[hidden email]> wrote:

Hi team,

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 a node use the following config file:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false" />
<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
<bean class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="compactFooter" value="false" />
<property name="idMapper">
<bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase" value="true" />
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="default" />
<property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
<property name="persistenceEnabled" value="false" />
</bean>
</property>
</bean>
</property>
</bean>
</beans>

2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.

#include <stdint.h>
#include <iostream>
#include <ignite/thin/ignite_client.h>
#include <ignite/thin/cache/cache_client.h>
#include "ignite/examples/organization.h"
using namespace ignite;
using namespace thin;
using namespace cache;
using namespace examples;
int main()
{
IgniteClientConfiguration cfg;
cfg.SetEndPoints("X.X.X.X");
try
{
IgniteClient client = IgniteClient::Start(cfg);
CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<int32_t, Organization>("PutGetExample");
cache.Clear();
int loop = 100;
for (int i = 0; i < loop; i++)
{
ignite::thin::transactions::ClientTransaction transaction = client.ClientTransactions().TxStart();
Organization org("Microsoft", Address("1096 Eddy Street, San Francisco, CA", i));
cache.Put(1, org);
transaction.Commit();
}
Organization orgFromCache = cache.Get(1);
}
catch (IgniteError& err)
{
std::cout << "An error occurred: " << err.GetText() << std::endl;
return err.GetCode();
}
return 0;
}

3.server side's log are as follows:

[11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
class org.apache.ignite.internal.processors.platform.client.IgniteClientException: Transaction with id 1 not found.
at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


Igor Sapego-1 Igor Sapego-1
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Thanks,

I've a few more questions, just to be clear:
1. Are servers behind NAT or some kind of balancer, or do they have distinct static IP addresses?
2. Do you specify all servers addresses in cfg.SetEndPoints("X.X.X.X");, or only one?

Best Regards,
Igor


On Thu, Feb 4, 2021 at 4:47 AM 18624049226 <[hidden email]> wrote:

Hello Igor,

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.

在 2021/2/3 下午10:02, Igor Sapego 写道:
Hi, I've tried to reproduce an issue you described and could not reproduce it.

Can you share more details? How many nodes do you run? How many clients
are run? Do you run any other operations in parallel?

Best Regards,
Igor


On Wed, Feb 3, 2021 at 3:00 PM 18624049226 <[hidden email]> wrote:

Hi team,

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 a node use the following config file:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false" />
<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
<bean class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="compactFooter" value="false" />
<property name="idMapper">
<bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase" value="true" />
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="default" />
<property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
<property name="persistenceEnabled" value="false" />
</bean>
</property>
</bean>
</property>
</bean>
</beans>

2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.

#include <stdint.h>
#include <iostream>
#include <ignite/thin/ignite_client.h>
#include <ignite/thin/cache/cache_client.h>
#include "ignite/examples/organization.h"
using namespace ignite;
using namespace thin;
using namespace cache;
using namespace examples;
int main()
{
IgniteClientConfiguration cfg;
cfg.SetEndPoints("X.X.X.X");
try
{
IgniteClient client = IgniteClient::Start(cfg);
CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<int32_t, Organization>("PutGetExample");
cache.Clear();
int loop = 100;
for (int i = 0; i < loop; i++)
{
ignite::thin::transactions::ClientTransaction transaction = client.ClientTransactions().TxStart();
Organization org("Microsoft", Address("1096 Eddy Street, San Francisco, CA", i));
cache.Put(1, org);
transaction.Commit();
}
Organization orgFromCache = cache.Get(1);
}
catch (IgniteError& err)
{
std::cout << "An error occurred: " << err.GetText() << std::endl;
return err.GetCode();
}
return 0;
}

3.server side's log are as follows:

[11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
class org.apache.ignite.internal.processors.platform.client.IgniteClientException: Transaction with id 1 not found.
at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


18624049226 18624049226
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hi Igor,

1.The actual test environment uses static IP address directly.

2.Three IP addresses are specified as follows:

cfg.SetEndPoints("172.16.100.71,172.16.100.72,172.16.100.73");

在 2021/2/4 下午7:40, Igor Sapego 写道:
Thanks,

I've a few more questions, just to be clear:
1. Are servers behind NAT or some kind of balancer, or do they have distinct static IP addresses?
2. Do you specify all servers addresses in cfg.SetEndPoints("X.X.X.X");, or only one?

Best Regards,
Igor


On Thu, Feb 4, 2021 at 4:47 AM 18624049226 <[hidden email]> wrote:

Hello Igor,

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.

在 2021/2/3 下午10:02, Igor Sapego 写道:
Hi, I've tried to reproduce an issue you described and could not reproduce it.

Can you share more details? How many nodes do you run? How many clients
are run? Do you run any other operations in parallel?

Best Regards,
Igor


On Wed, Feb 3, 2021 at 3:00 PM 18624049226 <[hidden email]> wrote:

Hi team,

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 a node use the following config file:

<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false" />
<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
<bean class="org.apache.ignite.configuration.BinaryConfiguration">
<property name="compactFooter" value="false" />
<property name="idMapper">
<bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
<property name="lowerCase" value="true" />
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="default" />
<property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
<property name="persistenceEnabled" value="false" />
</bean>
</property>
</bean>
</property>
</bean>
</beans>

2.test code are as follows:

Usually only the first few loop operations may throw an exception, and the subsequent operations are normal.

#include <stdint.h>
#include <iostream>
#include <ignite/thin/ignite_client.h>
#include <ignite/thin/cache/cache_client.h>
#include "ignite/examples/organization.h"
using namespace ignite;
using namespace thin;
using namespace cache;
using namespace examples;
int main()
{
IgniteClientConfiguration cfg;
cfg.SetEndPoints("X.X.X.X");
try
{
IgniteClient client = IgniteClient::Start(cfg);
CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<int32_t, Organization>("PutGetExample");
cache.Clear();
int loop = 100;
for (int i = 0; i < loop; i++)
{
ignite::thin::transactions::ClientTransaction transaction = client.ClientTransactions().TxStart();
Organization org("Microsoft", Address("1096 Eddy Street, San Francisco, CA", i));
cache.Put(1, org);
transaction.Commit();
}
Organization orgFromCache = cache.Get(1);
}
catch (IgniteError& err)
{
std::cout << "An error occurred: " << err.GetText() << std::endl;
return err.GetCode();
}
return 0;
}

3.server side's log are as follows:

[11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
class org.apache.ignite.internal.processors.platform.client.IgniteClientException: Transaction with id 1 not found.
at org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


jjimeno jjimeno
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

In reply to this post by Igor Sapego-1
Hello,

I'm facing the same problem.  Just let you know my configuration in case it
helps you:

- Two hosts in a local network, each having a server 2.9.1 node.  Different
static IP addresses
- A single c++ thin client.
    - If I add the two addresses in the SetEndPoints function, I get the
error
    - If only one is set, it works

Regards



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello!

Is it possible that two endpoints do not represent two nodes of the same cluster, but rather form two separate single-node clusters? In that case you may expect such errors, I guess.

Especially if you reliably break down one cluster with your 1GB transaction and then it tries to rollover to the second one which never knew that it was started.

Maybe this is also the case with different nodes, btw. Maybe it's just not safe to roll over with uncommitted tx even to a different node in the cluster. This needs checking.

Regards,
--
Ilya Kasnacheev


пн, 15 февр. 2021 г. в 10:00, jjimeno <[hidden email]>:
Hello,

I'm facing the same problem.  Just let you know my configuration in case it
helps you:

- Two hosts in a local network, each having a server 2.9.1 node.  Different
static IP addresses
- A single c++ thin client.
    - If I add the two addresses in the SetEndPoints function, I get the
error
    - If only one is set, it works

Regards



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
jjimeno jjimeno
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello

No, both belong to the same cluster.

Waiting for the PutAll fix, we want to benchmark multi-node reading
performance. For that we:

- create a single server node cluster
- create a single cache with 1.8M keys and ~1GB in it
- create a single c++ thin node with a single endpoint (the host containing
the server node)
- read all the entries in batches and store timings

To move to a two-nodes cluster, we

- create a new single node in a different host
- add it to the cluster's baseline
- check rebalancing is 100% done (we use gridgain control center for that)
- add the new host to the endpoints in the c++ thin client

... and so on.  We got up to 4 nodes.

We have experienced two things:

- the exception with "transaction with id 1 not found" (this always happens
when we have only 2 nodes)
- no response from the node on a single commit transaction (this happens
when we have 4 nodes)

I hope this helps you.  Let me know if you need further information




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello!

Can you prepare a simple reproducer? I can start two server nodes and launch it specifying their addresses as parameters.

If there needs to be any specific node configuration, please share also.

Regards,
--
Ilya Kasnacheev


пн, 15 февр. 2021 г. в 15:08, jjimeno <[hidden email]>:
Hello

No, both belong to the same cluster.

Waiting for the PutAll fix, we want to benchmark multi-node reading
performance. For that we:

- create a single server node cluster
- create a single cache with 1.8M keys and ~1GB in it
- create a single c++ thin node with a single endpoint (the host containing
the server node)
- read all the entries in batches and store timings

To move to a two-nodes cluster, we

- create a new single node in a different host
- add it to the cluster's baseline
- check rebalancing is 100% done (we use gridgain control center for that)
- add the new host to the endpoints in the c++ thin client

... and so on.  We got up to 4 nodes.

We have experienced two things:

- the exception with "transaction with id 1 not found" (this always happens
when we have only 2 nodes)
- no response from the node on a single commit transaction (this happens
when we have 4 nodes)

I hope this helps you.  Let me know if you need further information




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
jjimeno jjimeno
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello!

In fact, it's very simple:

int main()
   {
   IgniteClientConfiguration cfg;

   cfg.SetEndPoints("10.250.0.10, 10.250.0.4");

   try
      {
      IgniteClient client = IgniteClient::Start(cfg);

      CacheClient<int32_t, int32_t> cache = client.GetOrCreateCache<int32_t,
int32_t>("vds");

      ClientTransactions transactions = client.ClientTransactions();

      ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
READ_COMMITTED);

      cache.Put(1, 1);

      tx.Commit();
      }
   catch (IgniteError & err)
      {
      std::cout << "An error occurred: " << err.GetText() << std::endl;

      return err.GetCode();
      }

   return 0;
   }

Not always, but sometimes, I get an "stack overflow" error, which makes me
think about a concurrence problem in the code.  

Cluster configuration:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/dashboard.png>

Error:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/error.png>

Just in case, the C++ version I'm currently using is:
685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865 Support
DateTime as a key or value in .NET and Java (#8580)

Le me know if you need anything else



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello!

I confirm that I see this issue. Can you please file a ticket against IGNITE JIRA?

Thanks,
--
Ilya Kasnacheev


вт, 16 февр. 2021 г. в 11:58, jjimeno <[hidden email]>:
Hello!

In fact, it's very simple:

int main()
   {
   IgniteClientConfiguration cfg;

   cfg.SetEndPoints("10.250.0.10, 10.250.0.4");

   try
      {
      IgniteClient client = IgniteClient::Start(cfg);

      CacheClient<int32_t, int32_t> cache = client.GetOrCreateCache<int32_t,
int32_t>("vds");

      ClientTransactions transactions = client.ClientTransactions();

      ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
READ_COMMITTED);

      cache.Put(1, 1);

      tx.Commit();
      }
   catch (IgniteError & err)
      {
      std::cout << "An error occurred: " << err.GetText() << std::endl;

      return err.GetCode();
      }

   return 0;
   }

Not always, but sometimes, I get an "stack overflow" error, which makes me
think about a concurrence problem in the code. 

Cluster configuration:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/dashboard.png>

Error:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/error.png>

Just in case, the C++ version I'm currently using is:
685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865 Support
DateTime as a key or value in .NET and Java (#8580)

Le me know if you need anything else



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
18624049226 18624049226
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello Ilya,

https://issues.apache.org/jira/browse/IGNITE-14204

在 2021/2/18 上午12:14, Ilya Kasnacheev 写道:
Hello!

I confirm that I see this issue. Can you please file a ticket against IGNITE JIRA?

Thanks,
--
Ilya Kasnacheev


вт, 16 февр. 2021 г. в 11:58, jjimeno <[hidden email]>:
Hello!

In fact, it's very simple:

int main()
   {
   IgniteClientConfiguration cfg;

   cfg.SetEndPoints("10.250.0.10, 10.250.0.4");

   try
      {
      IgniteClient client = IgniteClient::Start(cfg);

      CacheClient<int32_t, int32_t> cache = client.GetOrCreateCache<int32_t,
int32_t>("vds");

      ClientTransactions transactions = client.ClientTransactions();

      ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
READ_COMMITTED);

      cache.Put(1, 1);

      tx.Commit();
      }
   catch (IgniteError & err)
      {
      std::cout << "An error occurred: " << err.GetText() << std::endl;

      return err.GetCode();
      }

   return 0;
   }

Not always, but sometimes, I get an "stack overflow" error, which makes me
think about a concurrence problem in the code. 

Cluster configuration:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/dashboard.png>

Error:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/error.png>

Just in case, the C++ version I'm currently using is:
685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865 Support
DateTime as a key or value in .NET and Java (#8580)

Le me know if you need anything else



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Igor Sapego-1 Igor Sapego-1
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Guys, I just want to notify you that the issue is fixed and is included in Ignite-2.10

Best Regards,
Igor


On Thu, Feb 18, 2021 at 3:41 AM 18624049226 <[hidden email]> wrote:

Hello Ilya,

https://issues.apache.org/jira/browse/IGNITE-14204

在 2021/2/18 上午12:14, Ilya Kasnacheev 写道:
Hello!

I confirm that I see this issue. Can you please file a ticket against IGNITE JIRA?

Thanks,
--
Ilya Kasnacheev


вт, 16 февр. 2021 г. в 11:58, jjimeno <[hidden email]>:
Hello!

In fact, it's very simple:

int main()
   {
   IgniteClientConfiguration cfg;

   cfg.SetEndPoints("10.250.0.10, 10.250.0.4");

   try
      {
      IgniteClient client = IgniteClient::Start(cfg);

      CacheClient<int32_t, int32_t> cache = client.GetOrCreateCache<int32_t,
int32_t>("vds");

      ClientTransactions transactions = client.ClientTransactions();

      ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
READ_COMMITTED);

      cache.Put(1, 1);

      tx.Commit();
      }
   catch (IgniteError & err)
      {
      std::cout << "An error occurred: " << err.GetText() << std::endl;

      return err.GetCode();
      }

   return 0;
   }

Not always, but sometimes, I get an "stack overflow" error, which makes me
think about a concurrence problem in the code. 

Cluster configuration:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/dashboard.png>

Error:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/error.png>

Just in case, the C++ version I'm currently using is:
685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865 Support
DateTime as a key or value in .NET and Java (#8580)

Le me know if you need anything else



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
38797715 38797715
Reply | Threaded
Open this post in threaded view
|

Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

Hello Igor,

Thank you very much for your hard work!

在 2021/3/5 下午6:50, Igor Sapego 写道:
Guys, I just want to notify you that the issue is fixed and is included in Ignite-2.10

Best Regards,
Igor


On Thu, Feb 18, 2021 at 3:41 AM 18624049226 <[hidden email]> wrote:

Hello Ilya,

https://issues.apache.org/jira/browse/IGNITE-14204

在 2021/2/18 上午12:14, Ilya Kasnacheev 写道:
Hello!

I confirm that I see this issue. Can you please file a ticket against IGNITE JIRA?

Thanks,
--
Ilya Kasnacheev


вт, 16 февр. 2021 г. в 11:58, jjimeno <[hidden email]>:
Hello!

In fact, it's very simple:

int main()
   {
   IgniteClientConfiguration cfg;

   cfg.SetEndPoints("10.250.0.10, 10.250.0.4");

   try
      {
      IgniteClient client = IgniteClient::Start(cfg);

      CacheClient<int32_t, int32_t> cache = client.GetOrCreateCache<int32_t,
int32_t>("vds");

      ClientTransactions transactions = client.ClientTransactions();

      ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
READ_COMMITTED);

      cache.Put(1, 1);

      tx.Commit();
      }
   catch (IgniteError & err)
      {
      std::cout << "An error occurred: " << err.GetText() << std::endl;

      return err.GetCode();
      }

   return 0;
   }

Not always, but sometimes, I get an "stack overflow" error, which makes me
think about a concurrence problem in the code. 

Cluster configuration:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/dashboard.png>

Error:
<http://apache-ignite-users.70518.x6.nabble.com/file/t3059/error.png>

Just in case, the C++ version I'm currently using is:
685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865 Support
DateTime as a key or value in .NET and Java (#8580)

Le me know if you need anything else



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/