-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
<!---
Questions: If you have questions about HOW TO use Realm, please ask on
StackOverflow: http://stackoverflow.com/questions/ask?tags=realm
We monitor the realm tag.
Feature Request: Just fill in the first two sections below.
Bugs: To help you as fast as possible with an issue please describe your issue
and the steps you have taken to reproduce it in as much detail as possible.
-->
Goals
<!--- What are you trying to achieve? -->
Listen to a collection.
Expected Results
<!--- What did you expect to happen? -->
Collection listener to succeed
Actual Results
<!--- What happened instead? -->
<!--- e.g. the stack trace of a crash -->
Error while trying to listen to a collection: Cannot create asynchronous query while in a write transaction
Steps to Reproduce
<!--- What are steps we can follow to reproduce this issue? -->
Code Sample
The log happens as follows. I'm adding the helper functions for clarity as well.
export function asyncQuery(realm, cb) {
return new Promise((resolve, reject) => {
try {
if (!realm.isInTransaction) {
resolve(cb(realm));
} else {
//console.warn("Realm (query) was already in a transaction, delaying call one more loop.");
setTimeout(() => {
try {
resolve(cb(realm));
} catch (err) {
reject(err);
}
});
}
} catch (err) {
reject(err);
}
});
}
export async function getQueueCollection() {
return await asyncQuery(global.realm, (realm) => {
return realm.objects('QueueItem');
});
}
try {
// CRASH HERE:
this.queueListener = await getQueueCollection();
this.queueListener.addListener(this.handleRealmUpdate);
} catch (err) {
console.error(
'CRITICAL Queue: Failed to listen to queue collection: ',
err.message || err,
);
Alert.alert(
'Error',
'There was an unexpected error and the app needs to be restarted.',
);
throw err;
}
Issue started happening somewhere between 10.5.x and 10.6.1 (did not happen in 10.4.x).
<!---
Please provide a code sample or test case that highlights the issue.
If relevant, include your model definitions.
For larger code samples, links to external gists/repositories are preferred.
Full projects that we can compile and run ourselves are ideal!
-->
Version of Realm and Tooling
- Realm JS SDK Version: 10.6.1
- Node or React Native: React Native 0.62.2
- Client OS & Version: Android 11 / Pixel 5
- Which debugger for React Native: None / Production