summaryrefslogtreecommitdiff
path: root/jni
diff options
context:
space:
mode:
author Dipankar Bhardwaj <dipankarb@google.com> 2024-04-23 21:56:28 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2024-04-23 21:56:28 +0000
commita4bee50cd7e27bcb65ee38bed84716a5c7fe5e81 (patch)
treef6d475e8e4808bcfd35835bc71fb43ba538113d6 /jni
parent28b3b771cdebcac1a75bf6c11574d16eae6bced3 (diff)
parent0c3347ef96dc9571b492b45fe2b12e23d51d4489 (diff)
Merge "Fix deadlock on reading file paths" into udc-mainline-prod am: 0c3347ef96
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/MediaProvider/+/26900868 Change-Id: I68a8910dd7ea6149eec8981462669cb3d44e3163 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'jni')
-rw-r--r--jni/FuseDaemon.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/jni/FuseDaemon.cpp b/jni/FuseDaemon.cpp
index 743551c2b..73f92d6f7 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 {
@@ -2690,8 +2690,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 =