You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To activate the tree implementation of ridbags (setting -DridBag.embeddedToSbtreeBonsaiThreshold = -1) and use the database without problems, as the documentation says: "By default newly created RidBags are embedded and they are automatically converted to tree-based after reaching a threshold." This works fine in 3.0.x version.
Actual behavior
When the mentioned option is set, all vertices are unusable. The following exception is thrown:
Error deserializing record with id #10:0 send this data for debugging: ARwIbmFtZQYHCG91dF8IFgRWMQECLAA= [ORecordSerializerBinary]$ANSI{green {db=test2}} Error while binary response serialization
com.orientechnologies.orient.core.exception.OSerializationException: Error on unmarshalling record #10:0 (java.lang.ClassCastException: class com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag cannot be cast to class com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag (com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag and com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag are in unnamed module of loader 'app'))
DB name="test2"
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeRecord(OMessageHelper.java:76)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeIdentifiable(OMessageHelper.java:57)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeDocument(OMessageHelper.java:458)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeVertex(OMessageHelper.java:439)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeResult(OMessageHelper.java:467)
at com.orientechnologies.orient.client.remote.message.OQueryResponse.write(OQueryResponse.java:68)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.sessionRequest(ONetworkProtocolBinary.java:391)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.execute(ONetworkProtocolBinary.java:239)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:67)
Caused by: java.lang.ClassCastException: class com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag cannot be cast to class com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag (com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag and com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag are in unnamed module of loader 'app')
at com.orientechnologies.orient.core.serialization.serializer.record.binary.HelperClasses.readRidbag(HelperClasses.java:468)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.readRidbag(ORecordSerializerBinaryV1.java:736)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserializeValue(ORecordSerializerBinaryV1.java:876)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserializeValue(ORecordSerializerBinaryV1.java:746)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserialize(ORecordSerializerBinaryV1.java:292)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:103)
at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:2422)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.getRecordBytes(OMessageHelper.java:89)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeRecord(OMessageHelper.java:69)
... 8 more
java.lang.ClassCastException: class com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag cannot be cast to class com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag (com.orientechnologies.orient.core.storage.ridbag.sbtree.OSBTreeRidBag and com.orientechnologies.orient.core.db.record.ridbag.embedded.OEmbeddedRidBag are in unnamed module of loader 'app')
at com.orientechnologies.orient.core.serialization.serializer.record.binary.HelperClasses.readRidbag(HelperClasses.java:468)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.readRidbag(ORecordSerializerBinaryV1.java:736)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserializeValue(ORecordSerializerBinaryV1.java:876)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserializeValue(ORecordSerializerBinaryV1.java:746)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV1.deserialize(ORecordSerializerBinaryV1.java:292)
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:103)
at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:2422)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.getRecordBytes(OMessageHelper.java:89)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeRecord(OMessageHelper.java:69)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeIdentifiable(OMessageHelper.java:57)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeDocument(OMessageHelper.java:458)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeVertex(OMessageHelper.java:439)
at com.orientechnologies.orient.client.remote.message.OMessageHelper.writeResult(OMessageHelper.java:467)
at com.orientechnologies.orient.client.remote.message.OQueryResponse.write(OQueryResponse.java:68)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.sessionRequest(ONetworkProtocolBinary.java:391)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.execute(ONetworkProtocolBinary.java:239)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:67)
Steps to reproduce
Open the server with default options.
In console:
$ orientdb> create database remote:localhost/test2 root pass;
Creating database [remote:localhost/test2] using the storage type [PLOCAL]...
Database created successfully.
Current database is: remote:localhost/test2
$ orientdb {db=test2}> script sql
[Started multi-line command. Type just 'end' to finish and execute]
orientdb {db=test2}> let $v1 = create vertex V set name = 'V1';
orientdb {db=test2}> let $v2 = create vertex V set name = 'V2';
orientdb {db=test2}> create edge from $v1 to $v2;
orientdb {db=test2}> end
Now open server with -DridBag.embeddedToSbtreeBonsaiThreshold = -1.
In console:
$ orientdb> connect remote:localhost/test2 admin admin;
IMPORTANT! Using default password is unsafe, please change password for user 'admin' on database 'test2'
Connecting to database [remote:localhost/test2] with user 'admin'...OK
orientdb {db=test2}> select from v;
Error: com.orientechnologies.common.io.OIOException
Error: java.io.EOFException
The text was updated successfully, but these errors were encountered:
I figured out why this happen, sometimes the server may have a setting that do not ever embedded ridbag, but the client still create that and send them to the server, but the server following the server setting fail in the cast, the specific cast was actually not needed I changed it to a more generic, this should be fixed in the next hotfix 3.2.23
OrientDB Version: 3.1.6
Java Version: openjdk version "11.0.9.1"
OS: Ubuntu 20.10
Expected behavior
To activate the tree implementation of ridbags (setting
-DridBag.embeddedToSbtreeBonsaiThreshold = -1
) and use the database without problems, as the documentation says: "By default newly created RidBags are embedded and they are automatically converted to tree-based after reaching a threshold." This works fine in 3.0.x version.Actual behavior
When the mentioned option is set, all vertices are unusable. The following exception is thrown:
Steps to reproduce
-DridBag.embeddedToSbtreeBonsaiThreshold = -1
.The text was updated successfully, but these errors were encountered: