dain / leveldb

Port of LevelDB to Java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BUG java.lang.RuntimeException: Could not open table 4049

zicat opened this issue · comments

I've found a bug while query leveldb to get data

java.lang.RuntimeException: Could not open table 4049
at org.iq80.leveldb.impl.TableCache.getTable(TableCache.java:98)
at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:79)
at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:74)
at org.iq80.leveldb.impl.Level.get(Level.java:130)
at org.iq80.leveldb.impl.Version.get(Version.java:171)
at org.iq80.leveldb.impl.VersionSet.get(VersionSet.java:222)
at org.iq80.leveldb.impl.DbImpl.get(DbImpl.java:613)
at org.iq80.leveldb.impl.DbImpl.get(DbImpl.java:574)
Caused by: java.io.FileNotFoundException: ../LevelDBData/approvedKeyword/004049.sst (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:146)
at org.iq80.leveldb.impl.TableCache$TableAndFile.(TableCache.java:124)
at org.iq80.leveldb.impl.TableCache$TableAndFile.(TableCache.java:114)
at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:67)
at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:62)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at org.iq80.leveldb.impl.TableCache.getTable(TableCache.java:91)

This is likely caused by the lack of file descriptor sync, which has been fixed in trunk.