Merge pull request #439 from meilisearch/fix-update-deadlock

Fix a blocking channel, appearing like a deadlock
This commit is contained in:
Clément Renault 2019-12-30 15:41:26 +01:00 committed by GitHub
commit 534143e91d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -168,7 +168,7 @@ impl Database {
// open the previously aggregated indexes // open the previously aggregated indexes
let mut indexes = HashMap::new(); let mut indexes = HashMap::new();
for index_uid in must_open { for index_uid in must_open {
let (sender, receiver) = crossbeam_channel::bounded(100); let (sender, receiver) = crossbeam_channel::unbounded();
let index = match store::open(&env, &update_env, &index_uid, sender.clone())? { let index = match store::open(&env, &update_env, &index_uid, sender.clone())? {
Some(index) => index, Some(index) => index,
None => { None => {
@ -233,7 +233,7 @@ impl Database {
match indexes_lock.entry(name.to_owned()) { match indexes_lock.entry(name.to_owned()) {
Entry::Occupied(_) => Err(crate::Error::IndexAlreadyExists), Entry::Occupied(_) => Err(crate::Error::IndexAlreadyExists),
Entry::Vacant(entry) => { Entry::Vacant(entry) => {
let (sender, receiver) = crossbeam_channel::bounded(100); let (sender, receiver) = crossbeam_channel::unbounded();
let index = store::create(&self.env, &self.update_env, name, sender)?; let index = store::create(&self.env, &self.update_env, name, sender)?;
let mut writer = self.env.typed_write_txn::<MainT>()?; let mut writer = self.env.typed_write_txn::<MainT>()?;