2017-10-11 233 views
1

如何去除rocksDBrocksdb.errors.RocksIOError:IO错误:锁定文件:sample.db/LOCK:资源暂时不可用

的LOCK我尝试运行下面的代码,但得到以下错误

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
* Restarting with stat 
Traceback (most recent call last): 
File "hello flask.py", line 18, in <module> 
rdb = rocksdb.DB("sample.db", rocksdb.Options(create_if_missing=True)) 
File "rocksdb/_rocksdb.pyx", line 1437, in 
rocksdb._rocksdb.DB.__cinit__ (rocksdb/_rocksdb.cpp:23176) 
File "rocksdb/_rocksdb.pyx", line 84, in rocksdb._rocksdb.check_status 
(rocksdb/_rocksdb.cpp:3453) 
rocksdb.errors.RocksIOError: IO error: While lock file: sample.db/LOCK: 
Resource temporarily unavailable 

代码:

from flask import Flask 
import rocksdb 

app = Flask(__name__) 

@app.route('/hello/<name>') 
def hello_name(name): 
    value = name.encode(encoding='UTF-8',errors='strict') 
    rdb.put(b'name', value) 
    return 'Hello %s!' % rdb.get(b'name') 

@app.route('/') 
def hello(): 
    return 'Welcome' 

if __name__ == '__main__': 
    rdb = rocksdb.DB("sample.db", rocksdb.Options(create_if_missing=True)) 
    app.run(debug = True) 

回答

0

我遇到了类似的问题,运行write_stress测试(工具/ write_stress_runner.py),而。 我建议你

  1. 检查RocksDB过程中有太多打开的文件(它看起来并不像 是从应用程序代码的情况下)。
  2. 检查您的应用的另一个实例是否正在运行。
  3. 删除LOCK文件并运行您的应用程序(sample.db/LOCK)。

    os.system('rm sample.db/LOCK') 
    
    rdb = rocksdb.DB("sample.db", rocksdb.Options(create_if_missing=True)) 
    
+0

照顾适当压痕,线路中断和代码块当您发布答案 – Satendra

相关问题