-
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
NullPointerException at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.findBucket (OSBTree.java:1754) #7053
Comments
@jamieb22 it means that either tree is broken because a bug in tree algorithm or database was crashed and then restored correctly. Could you provide feedback whether the database was shutdown incorrectly? And in opposite case could you send me database indexes so I will analyze them ? |
It is possible that it wasn't shutdown correctly though this instance is running on one of our cloud servers. We have a policy of not using kill -9 unless there is no other choice. Due to the fact that the instance is running in the cloud, nor does the machine ever experience a sudden loss of power. I'll try to get the db. Andrey, I think you know this already, but it needs to be stated. A general problem with Orient DB continues to be that the database is brittle, and over time information is lost. We see this behavior on pretty much all installations. |
@jamieb22 do you mean the information is lost in case of incorrect shutdown? We never stated that it will not be lost on 100%, the last operations will always be lost in case of an incorrect shutdown. We try to achieve integrity of data but not 100% save of data in case of hard kill, there is no database wich will assure that information will not be lost. Did you log when and why hard kill is caused? |
Andrey I never said that it was a hard kill. I said it was a possibility, but unlikely. Is the Orient DB index affected? is there a way to get Orient to reindex? Can I simply delete certain index files? |
FYI: Our product is using MVStore heavily for queuing purposes and it never gets corrupted. Yet, we see Orient DB corruption on a regular basis. Both databases are attached to the same shutdown routines. |
Andrey, on a more constructive note. There are a huge number of WAL Closer Task. Does Orient DB have a certain number of WAL Closer Task per database? the scenario where there are a large number of databases, this would result in a large number of threads. If you are not doing it already, wouldn't it be more appropriate to use a common thread pool across multiple Orient databases? #1669 daemon prio=5 os_prio=0 tid=0x00007fc2d98c9800 nid=0x4a94 waiting on condition [0x00007fbf713be000] |
@jamieb22 >here are a huge number of WAL Closer Task |
I dont see 2.2.15. The latest version is 2.2.14 http://orientdb.com/download/ |
Yes I mean upcoming 2.2.15 version has only one such task. |
Thank you. Is there a way to fix this Null Pointer on the Index? Can I delete index files? |
FYI: I believe we have a similar problem with the Write Cache Flush Task. On systems with many databases, there are a huge number of Write Cache Flush threads. This is not so scalable. OrientDB Write Cache Flush Task" #5445 daemon prio=10 os_prio=0 tid=0x00007fb05868f800 |
That is WAL Flush Task, not Write Cache, it is also fixed in 2.2.15 version. |
About NPE @taburet will look on it . You can execute index deleter and rebuild and sure it will fix npe itself. |
Hi @jamieb22! It's hard to tell what is wrong with the database at this point, I'm considering following scenarios:
Please provide the sample of a corrupted database, if that is possible. I will try to analyse it to recover more information about the issue. |
@jamieb22 we found two issues which are with high probability may be root causes of your problem all of them will be fixed in next 2.2.15 which I ask to release ASAP. |
@jamieb22 fixed will be in 2.2.15 which is scheduled for next week. You use Lucene which uses MMapDirectory which means Lucene data files consume whole OS page buffer. As a result was a risk in previous versions that pages are written only partially now this bug is fixed. I do suggest you make export-import of a database once you update your DB version to new one. |
|
@jamieb22 could you make what I wrote to you, this fix prevents a problem, but if data is already broken it obviously not help. also explained in the previous message why it happened. |
OrientDB Version, operating system, or hardware.
v2.2.14
Operating System
Expected behavior and actual behavior
We do not expect to receive null ptr exceptions.
017-01-03 13:04:38 c.s.a.te [ERROR] null
java.lang.NullPointerException: null
at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.findBucket(OSBTree.java:1754)
at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.get(OSBTree.java:200)
at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine.get(OSBTreeIndexEngine.java:128)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:1777)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:1766)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:56)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:40)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:58)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:262)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:40)
at com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.getVertices(OrientBaseGraph.java:813)
..
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Steps to reproduce the problem
The text was updated successfully, but these errors were encountered: