2017-10-11 129 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

相關問題