-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
RocksDBException thrown for .ldb file not found when calling ingestExternalFile() #10258
Comments
This also appears to be affecting background compactions:
|
I guess the file Do you have an example ingestion record in your LOG file where the ingested file later cannot be found? An ingestion record looks something like this:
|
@ajkr thanks for the reply. Yes that's correct I found a stack overflow article that mentioned Unfortunately we don't have those logs available. Oddly when we looked at the local directory all we saw were the We use Is there a callback for this event we might be able to use so we can make sure this gets logged? Also - any idea why the log files would have been missing? |
Hi I also met similar issues when I tried to open DB after ingestion:
I generated multiple SST files (
After ingestion, the dir has many After checking the log, it shows:
I'm using version 7.2.2 sha256 |
Here is the state after ingestion (before open DB crashes):
|
If you don't close the db after ingestion, can you access the data in the ingested files? |
Yes I could read values right before I call
It turns out I have another DB pointer with the same path, after removing it everything works well. Thanks! |
We started seeing this issue again today. So far our only way to resolve this is to restart the containers running our application, which clears the ephemeral storage we use for RocksDB. When new containers replace the old ones, we effectively start with a clean database. Before we ingest SST files, we pause background work. Once the files have been ingested we continue background work. Could this be where the database is getting corrupted? Here's the Java code we use to ingest. Note that only one thread can ingest files to a database at a time.
Does anyone have any suggestions for what we might be doing wrong here? Is there anything we could do try to recover and repair the database when we see this issue? |
It also happens for us - |
Expected behavior
ingestExternalFile()
should be able to successfully ingest SST files.Actual behavior
RocksDBException is thrown indicating that a
.ldb
file could not be found.The error message is:
Steps to reproduce the behavior
Unknown what exact conditions are causing this behavior. The database contains about 28 million keys. Storage utilization is not an issue.
We periodically (about every 30 minutes) refresh data and publish the availability of new SST files to be ingested. At that time we attempt to ingest the new SST file(s).
We are using version
7.2.2
.The text was updated successfully, but these errors were encountered: