[infinispan-issues] [JBoss JIRA] (HRJS-3) Iterator doesn't work properly on cluster
Galder Zamarreño (JIRA)
issues at jboss.org
Thu Apr 21 09:43:01 EDT 2016
Galder Zamarreño created HRJS-3:
-----------------------------------
Summary: Iterator doesn't work properly on cluster
Key: HRJS-3
URL: https://issues.jboss.org/browse/HRJS-3
Project: Infinispan Javascript client
Issue Type: Bug
Affects Versions: 0.2.0
Reporter: Galder Zamarreño
While porting the tests for local mode also to cluster mode, I have faced the following issue:
When calling iterator on client connected to one of the nodes of 3 node cluster, the result of iteration is not correct.
You can find the test [here|https://github.com/andyuk1986/js-client/blob/ISPN-6381/spec/infinispan_cluster_spec.js#L394].
The test run returns the following result:
{code}
1) Infinispan cluster client can iterate over entries using different clients
Message:
Expected { done : true, key : 'it2', value : 'v2' } to equal <jasmine.objectContaining({ key : 'it1', value : 'v1', done : false })>.
Stacktrace:
Error: Expected { done : true, key : 'it2', value : 'v2' } to equal <jasmine.objectContaining({ key : 'it1', value : 'v1', done : false })>.
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:208:43
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:413:39
at Function._.map._.collect (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/underscore/underscore.js:172:24)
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:409:7
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:362:43
at tryCallOne (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:37:12)
at /home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:123:15
at flush (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/node_modules/asap/raw.js:50:29)
2) Infinispan cluster client can iterate over entries using different clients
Message:
Expected { done : true } to equal <jasmine.objectContaining({ key : 'it2', value : 'v2', done : false })>.
Stacktrace:
Error: Expected { done : true } to equal <jasmine.objectContaining({ key : 'it2', value : 'v2', done : false })>.
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:208:43
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:413:39
at Function._.map._.collect (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/underscore/underscore.js:172:24)
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:409:7
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:362:43
at tryCallOne (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:37:12)
at /home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:123:15
at flush (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/node_modules/asap/raw.js:50:29)
3) Infinispan cluster client can iterate over entries using different clients
Message:
Expected { done : true } to equal <jasmine.objectContaining({ key : 'it3', value : 'v3', done : false })>.
Stacktrace:
Error: Expected { done : true } to equal <jasmine.objectContaining({ key : 'it3', value : 'v3', done : false })>.
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:208:43
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:413:39
at Function._.map._.collect (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/underscore/underscore.js:172:24)
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:409:7
at /home/amanukya/Documents/Red Hat Workspace/js-client/spec/utils/testing.js:362:43
at tryCallOne (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:37:12)
at /home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/lib/core.js:123:15
at flush (/home/amanukya/Documents/Red Hat Workspace/js-client/node_modules/promise/node_modules/asap/raw.js:50:29)
{code}
In other words, the result of the iteration is:
[{"done":true,"key":"it2","value":"v2"}, {"done":true}, {"done":true}]
Another example is, when I am trying out the example for iterations given in the [README.md file|https://github.com/infinispan/js-client/blob/master/README.md#working-with-multiple-entries], with only difference that the server to which the client connects is a node from the cluster, the iteration returns no result. The following log is printed out for it:
{code}
[2016-04-07 16:34:05.186] [DEBUG] client - Invoke iterator(msgId=4,batchSize=1,opts=undefined)
[2016-04-07 16:34:05.186] [TRACE] encoder - Encode operation with topology id 4
[2016-04-07 16:34:05.187] [TRACE] transport - Write buffer(msgId=4) to 127.0.0.1:11422
[2016-04-07 16:34:05.190] [TRACE] decoder - Read header(msgId=4): opCode=50, status=0, hasNewTopology=0
[2016-04-07 16:34:05.190] [TRACE] decoder - Call decode for request(msgId=4)
[2016-04-07 16:34:05.190] [TRACE] connection - After decoding request(msgId=4), buffer size is 42, and offset 42
[2016-04-07 16:34:05.190] [TRACE] connection - Complete success for request(msgId=4) with df2ccfcc-1aad-492e-bfad-95e45854d9d4
[2016-04-07 16:34:05.190] [TRACE] client - Invoke iterator.next(msgId=5,iteratorId=df2ccfcc-1aad-492e-bfad-95e45854d9d4)
[2016-04-07 16:34:05.191] [TRACE] encoder - Encode operation with topology id 4
[2016-04-07 16:34:05.191] [TRACE] transport - Write buffer(msgId=5) to 127.0.0.1:11322
[2016-04-07 16:34:05.191] [TRACE] decoder - Read header(msgId=5): opCode=52, status=5, hasNewTopology=0
[2016-04-07 16:34:05.192] [TRACE] decoder - Call decode for request(msgId=5)
[2016-04-07 16:34:05.192] [TRACE] iterator - Iterator next contains 0 entries
[2016-04-07 16:34:05.192] [TRACE] connection - After decoding request(msgId=5), buffer size is 7, and offset 7
[2016-04-07 16:34:05.192] [TRACE] connection - Complete success for request(msgId=5) with []
iterator.next()={"done":true}
{code}
If I am doing something wrong, please let me know. I couldn't find any solution for it.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the infinispan-issues
mailing list