2017-10-11 2 views
1

Wie die LOCK auf rocksDBrocksdb.errors.RocksIOError: IO-Fehler: Während Sperrdatei: sample.db/LOCK: Ressource vorübergehend nicht verfügbar

Ich versuche, entfernen Sie den folgenden Code ausführen, aber immer den folgenden Fehler

* 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 

Code:

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) 

Antwort

0

ich in ähnliches Problem lief während write_stress Test (Tools/write_stress_runner.py) ausgeführt wird. Ich würde vorschlagen, Sie

  1. Überprüfen Sie, ob RocksDB Prozess zu viele offene Dateien hat (Es sieht nicht so aus der Fall von Anwendungscode zu sein).
  2. Überprüfen Sie, ob eine andere Instanz Ihrer App ausgeführt wird.
  3. Löschen Sie LOCK-Datei und führen Sie Ihre Anwendung (sample.db/LOCK).

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

Kümmern richtigen Einzüge, Zeilenumbruch und Codeblock, wenn Sie Antwort schreiben – Satendra

Verwandte Themen