previously, an RCU critical section was held open for the duration of a snapshot. this should not be necessary, as the snapshot makes local copies of QP trie metadata, and it causes problems when a DB iterator is held open between two loop events. we now call rcu_read_unlock() after setting up the snapshot.