Closed lucafrosini closed 3 years ago
I have created a project which contains a class to reproduce the issue.
You can find the find the the project at https://github.com/lucafrosini/orientdb-bug-reports
Please note thant in the class ReproduceBug7354 you have to change
private static final String HOST = "remote:node01.acme.org;node02.acme.org;node03.acme.org";
and
private static final String ROOT_PASSWORD = "ROOT_PWD";
with the correct values for your test environment.
In resources folder you can find the file Bug7354_StackTrace.txt with the exception stacktrace.
Please note that I changed the names of the nodes to obfuscate my server names
- node03: TX[1]{1}
Received:
- node01: TX[1]{2}
- node02: TX[1]{2}
- node03: TX[1]{1}
Hope this helps
I upgraded to version 2.2.19 and seem that this version is not affected by this behaviour, or at least the test I provided does not reveal it.
Cool, closing the issue then.
Unfortunately I'm still obtaining such an issue in my real scenario. I'll made more test and I'll inform you about this.
When I run the test I provided the first time, the servers where just started and there where no load on them. Now I have ran the tests with the server under load (working in another database) and the behaviour appears again.
So the test is still valid but you need to have the servers under stress.
Please note that I spent 3 week to isolate the problem and realizing that I always obtain such a behaviour with embeddelist. As counterpart prove I run my real case scenario commenting the code generating embeddedlist and even under stress I never get the issue.
Looking with studio the vertex I created with a property as embeddedlist I get the type of the property as Embedded. Then trying to change the proprty type as embeddelist, If I reload the page I get embeddedset as type.
I don't know if this is related and can helps.
Did you made any tests?
I also made some tests with two nodes only and I obtain the same behaviour
To avoid mistake can you please remove "Cannot Replicate" tag. I provided the tests and the conditions to reproduce it.
@lucafrosini we fixed many issues on HA in 2.2.21. Could you please retry with the latest one and in case the issue is still there the team will be assigned to that tomorrow? Thanks.
Sorry @lvca, I lost your message. I'm going to test it. Thanks a lot
The simple tests I provided (upgraded to 2.2.21) at https://github.com/lucafrosini/orientdb-bug-reports now does not fails. Unfortunately I still have the error in my real environment (upgraded to 2.2.21 both client and server).
The bug happens every time in a transaction involving the updates of different vertex and edges on the element having an EMBEDDELIST or EMBEDDEDSET.
I'm attaching the exception I get on my orientdb client client_exception.txt
and the WARNING I have on orientdb.log
I hope this helps.
In the next days I'll try to update the simple test at https://github.com/lucafrosini/orientdb-bug-reports
OrientDB Version: 2.2.17 - 2.2.18 - 2.2.19 - 2.2.21
Java Version: 1.8.0_121-b13 both on client and server
OS: Ubuntu 17.04 on client and Ubuntu 14.04.5 LTS on server
Expected behavior
I'm running a distributed server composed by 3 nodes with the following configuration:
Please note that I use partitioned graph so that V extends ORestricted.
I have unexpected behaviour while updating elements containing an EMBEDDEDLIST or EMBEDDESET property, both with schema defined property (with a class registered) or with a instance property not defined in vertex schema.
The first error is The code I use to set/update the property is:
The code works fine on a single node.
Actual behaviour
The exception I obtain is always something like this
Please note that cluster #90 (#90:2468 instance contains an embedded set).
Please note that I have just one client writing on DB.
Please also note that I have the same exception even I don't modify the property but I grant rights to another role.