orientdb: Failed to create a vertex and caught OSBTreeBonsaiLocalException
OrientDB Version: v.2.2.10
Java Version: 1.8.0_112
OS: FreeBSD 11.0-RELEASE-p1
Hi, I ran OrientDB server on FreeBSD 11. I have found a problem about running sql to create vertices via binary protocol. My query is to create a new vertex and update values of its predecessors. When a server is under heavy load, it randomly fails to process some queries.
My query
let file = create vertex files set name=‘file1.txt’, size=10
create edge hardlink from $file to #32:12951 set type='file’
update (select from (traverse out('HardLink','ShareLink') from $file) where @Class='folders') increment size = 10
update (select from (traverse out('HardLink','ShareLink', 'MemberOf') from $file) where @Class='users' OR @Class='domains') increment usage = 10
commit retry 100
Here is error log from orientdb.err.
Error Log
2017-07-24 17:45:09:778 INFO {db=FTO-Structure-2.0} null possible previous close - Flush [OChannelBinaryServer] 2017-07-24 17:45:09:778 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Reading byte (1 byte)… [OChannelBinaryServer] 2017-07-24 17:45:09:921 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Read byte: 41 [OChannelBinaryServer] 2017-07-24 17:45:09:921 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Reading int (4 bytes)… [OChannelBinaryServer] 2017-07-24 17:45:09:921 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Read int: 12 [OChannelBinaryServer] 2017-07-24 17:45:09:921 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Reading byte (1 byte)… [OChannelBinaryServer] 2017-07-24 17:45:10:020 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Read byte: 115 [OChannelBinaryServer] 2017-07-24 17:45:10:020 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Reading chunk of bytes. Reading chunk length as int (4 bytes)… [OChannelBinaryServer] 2017-07-24 17:45:10:020 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Read chunk lenght: 762 [OChannelBinaryServer] 2017-07-24 17:45:10:021 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Reading 762 bytes… [OChannelBinaryServer] 2017-07-24 17:45:10:021 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Read 762 bytes: ���s���SQL���begin let file = create vertex files set name=‘file1.txt’ create edge hardlink from $file to #32:12951 set type='file’, size=10 update (select from (traverse out(‘HardLink’,‘ShareLink’) from $file) where @class=‘folders’) increment size = 10 update (select from (traverse out(‘HardLink’,‘ShareLink’, ‘MemberOf’) from $file) where @class=‘users’ OR @class=‘domains’) increment usage = 10 commit retry 100 return $file�� [OChannelBinaryServer] 2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} null possible previous close - Flush [OChannelBinaryServer] 2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing byte (1 byte): 1 [OChannelBinaryServer] 2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing int (4 bytes): 12 [OChannelBinaryServer]
2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing byte (1 byte): 1 [OChannelBinaryServer] 2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing string (4+71=75 bytes): com.orientechnologies.orient.core.exception.OSBTreeBonsaiLocalException [OChannelBinaryServer] 2017-07-24 17:45:10:024 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing string (4+112=116 bytes): Error creation of sbtree with namecollections_32 DB name=“FTO-Structure-2.0” Component Name=“collections_32” [OChannelBinaryServer] 2017-07-24 17:45:10:025 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing byte (1 byte): 1 [OChannelBinaryServer]
2017-07-24 17:45:10:025 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing string (4+30=34 bytes): java.lang.NullPointerException [OChannelBinaryServer] 2017-07-24 17:45:10:025 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing string (4+0=4 bytes): null [OChannelBinaryServer] 2017-07-24 17:45:10:025 INFO {db=FTO-Structure-2.0} /10.10.9.44:59678 - Writing byte (1 byte): 0 [OChannelBinaryServer]
Could you tell me what is OSBTreeBonsaiLocalException and how to prevent this error? Thank you.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 19 (10 by maintainers)
@mexeniz cool but I strongly recommend to update to at least 2.2.20 version. It will prevent possible problems with memory consumption in your case I think there will be no difference to update to 2.2.20 or to 2.2.25 so probably better to update to 2.2.25 at once.
About your second question, this flag is used to preserve ids of clusters, not rids of records. I mean for example cluster with the name has “cat1” has id = 42, after import, the same cluster will have the same id 42 but rids of records will be changed.
@mexeniz rids never persevered during export import, does not matter whether DB is damaged or not. Is it a problem for you ? Do you use rids as external links? We typically suggest not doing that.
Hi, @mexeniz , could you run this distribution and send me the output of the log? Probably that is not latest build with logs which I send to you, but it will make our target of fixing issue closer https://drive.google.com/file/d/0B2oZq2xVp841SDU2N0JkNWNTSVk/view?usp=sharing .
@mexeniz sorry for the delay, we had an urgent issue. I will create a build for you with additional logging at first half of the day tomorrow. I very appreciate your help, but we had to concentrate on urgent task today so all tasks are delayed a bit.
@mexeniz I suppose we will need to add more logging to identify the root cause of the issue. Right now I can not do it because I am busy with another fix, but tomorrow I will be able to provide you new distribution with more logging which will help us to solve your issue.