Skip to content

Commit

Permalink
temp fix crash due to race condition
Browse files Browse the repository at this point in the history
we should fix the race condition though

Link: damus-io/nostrdb#35
Signed-off-by: William Casarin <[email protected]>
  • Loading branch information
jb55 committed Aug 3, 2024
1 parent be0efd5 commit 51b4dfd
Showing 1 changed file with 18 additions and 20 deletions.
38 changes: 18 additions & 20 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -379,26 +379,24 @@ fn poll_notes_for_timeline<'a>(
debug!("{} new notes! {:?}", new_note_ids.len(), new_note_ids);
}

let new_refs: Vec<(Note, NoteRef)> = new_note_ids
.iter()
.map(|key| {
let note = damus.ndb.get_note_by_key(txn, *key).expect("no note??");
let cached_note = damus
.note_cache_mut()
.cached_note_or_insert(*key, &note)
.clone();
let _ = get_unknown_note_ids(&damus.ndb, &cached_note, txn, &note, *key, ids);

let created_at = note.created_at();
(
note,
NoteRef {
key: *key,
created_at,
},
)
})
.collect();
let mut new_refs: Vec<(Note, NoteRef)> = Vec::with_capacity(new_note_ids.len());
for key in new_note_ids {
let note = if let Ok(note) = damus.ndb.get_note_by_key(txn, key) {
note
} else {
error!("hit race condition in poll_notes_into_view: https://github.com/damus-io/nostrdb/issues/35 note {:?} was not added to timeline", key);
continue;
};

let cached_note = damus
.note_cache_mut()
.cached_note_or_insert(key, &note)
.clone();
let _ = get_unknown_note_ids(&damus.ndb, &cached_note, txn, &note, key, ids);

let created_at = note.created_at();
new_refs.push((note, NoteRef { key, created_at }));
}

// ViewFilter::NotesAndReplies
{
Expand Down

0 comments on commit 51b4dfd

Please sign in to comment.