【问题标题】:rocksdb.errors.RocksIOError: IO error: While lock file: sample.db/LOCK: Resource temporarily unavailablerockdb.errors.RocksIOError: IO 错误: While lock file: sample.db/LOCK: 资源暂时不可用
【发布时间】:2017-10-11 23:09:42
【问题描述】:

如何移除rocksDB上的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)

【问题讨论】:

    标签: python macos rocksdb


    【解决方案1】:

    我在运行 write_stress 测试 (tools/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))
      

    【讨论】:

    • 在发布答案时注意适当的缩进、换行和代码块
    猜你喜欢
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多