diff options
author | 2024-04-23 21:42:31 +0000 | |
---|---|---|
committer | 2024-04-23 21:42:31 +0000 | |
commit | 0c3347ef96dc9571b492b45fe2b12e23d51d4489 (patch) | |
tree | f710f2d3e9e38451a742eb187882b2b88cfc0806 /jni | |
parent | b9e28b6518204ee4c70087fe3eaa374ed4565907 (diff) | |
parent | 7c39d391836c564ba1bde7850f1ff61ec5333361 (diff) |
Merge "Fix deadlock on reading file paths" into udc-mainline-prod
Diffstat (limited to 'jni')
-rw-r--r-- | jni/FuseDaemon.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/jni/FuseDaemon.cpp b/jni/FuseDaemon.cpp index 9bfeec125..e2390e890 100644 --- a/jni/FuseDaemon.cpp +++ b/jni/FuseDaemon.cpp @@ -408,7 +408,7 @@ struct fuse { // LevelDb Connection Map std::map<std::string, leveldb::DB*> level_db_connection_map; - std::mutex level_db_mutex; + std::recursive_mutex level_db_mutex; }; struct OpenInfo { @@ -2680,8 +2680,9 @@ std::vector<std::string> FuseDaemon::ReadFilePathsFromLevelDb(const std::string& std::vector<std::string> file_paths; if (!CheckLevelDbConnection(volume_name)) { - LOG(INFO) << "ReadFilePathsFromLevelDb: Missing leveldb connection, attempting setup."; - SetupLevelDbInstances(); + fuse->level_db_mutex.unlock(); + LOG(ERROR) << "ReadFilePathsFromLevelDb: Missing leveldb connection"; + return file_paths; } leveldb::Iterator* it = |