-
Notifications
You must be signed in to change notification settings - Fork 872
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create edge edges are created as corrupted #9255
Comments
I have manged to reproduce this issue using console, and executing all of those statements. Weird thing is that if I close the session (exit console), reconnect and execute |
Hi @milan-cvejic looks like tracking of intermediate changes in the transaction is broken. I will try to check it ASAP. |
@Laa Thanks. Same issue is reproducible on 2.2.37 |
Hi @milan-cvejic what do you mean by "In a separate tab, navigate to the bin folder of oriented and connect to the database |
Hi @Laa, by "In a separate tab" was meant as a new terminal instance. Issue is reproducible if you execute all statements one after another in orientDB console. |
Hi @Laa The database was running when I ran the |
Hi @DiarmaidEverycs . You can not do that. You should use the same server to access the database. We use file locks to protect from this kind of access but maybe it does not work in case of embedded containers. |
@Laa To clarify, it is the same server. Issue is reproducible from within same session of orientDB console. Executing:
and then running |
@milan-cvejic problem is that I tried to reproduce it but without any success. Just to double-check. Do you connect to the database using |
Yes, it is remote connection. I was able to reproduce it when copy/pasting mentioned statements in same console session. Tested on docker provided version 3.0.31 and version 2.2.37 that is installed on remote server. |
@Laa If you connect using plocal, then the issue does not occur, it is only whey you are connecting to the server through the remote connection.
In docker image:
In console:
which gives (correctly)
Now run:
And the output is:
|
Hi @DiarmaidEverycs . You can not work like that. You can not connect to the plocal and to the remote the same time. If you perform all the actions only using remote connection do you have those problems? |
Hi @Laa Im a little confused? So whenever I am opening the console to repair the database I have to do it from the database server itself? We are running OrientDB on a remote server. We start up that server, and connect via the studio, and run the above commands. I then connect from my local machine, and run the repair database command. Sometimes it deletes the edges, and sometimes it repairs the vertices. It seems to depend on whether the edge was created after I connected via the console (in which case it deletes the edge) or afterwards (in which case it repairs the vertices)
or
|
Hi guys, |
@Laa You can reproduce it by using only console. https://imgur.com/ds00fdb Cheers |
Thank you, reproduced it. Will fix ASAP. |
Fixed. Will be released at the next hotfix. |
Hi, |
OrientDB Version: 3.0.31
Java Version:
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
OS: Windows running orientdb through docker
To reproduce
Create a new database instance by running
docker run -d --name orientdb -p 2424:2424 -p 2480:2480 -e ORIENTDB_ROOT_PASSWORD=root orientdb:latest
Navigate to the studio and run:
create class A extends V
create class B extends V
create class C extends E
create class AR extends V, ORestricted
create class BR extends V, ORestricted
create class CR extends E, ORestricted
insert into A content {"name": "First", "num": 1}
insert into A content {"name": "Second", "num": 10}
insert into B content {"name": "First", "num": 10}
insert into B content {"name": "Second", "num": 1}
insert into AR content {"name": "First", "num": 1}
insert into AR content {"name": "Second", "num": 10}
insert into BR content {"name": "First", "num": 10}
insert into BR content {"name": "Second", "num": 1}
create edge C from (select from A where name = "First") to (select from B where name = "First") content {"cr": 13}
In a seperate tab, navigate to the bin folder of orientdb and connect to the database
Run the repair database --fix-graph command
Expected behavior
That there would be nothing to fix. After running the repair database command, you would have 8 vertices and 1 edge.
Actual behavior
It reports that the edge which is created is corrupted, and deletes it. After you have 8 vertices and 0 edges.
Further Steps to reproduce
Further attempts to create edges are also corrupted. Output of repair database --fix-graph
orientdb {db=rte}> repair database --fix-graph
Repair of graph 'remote:localhost/rte' is started ...
Scanning 9 edges (skipEdges=0)...
Scanning edges completed
Scanning 8 vertices...
Scanning vertices completed
Repair of graph 'remote:localhost/rte' completed in 0 secs
scannedEdges.....: 9
removedEdges.....: 1
scannedVertices..: 8
scannedLinks.....: 0
removedLinks.....: 0
repairedVertices.: 0
fix-bonsai can be run only on plocal connection
The text was updated successfully, but these errors were encountered: