Skip to content

Unrecoverable error. Permission denied in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp #3972

Closed
@sabergeek

Description

@sabergeek

Goal

Sharing a crash log (as reported by Crashlytics) on specific devices.

Expected Results

To verify if my current API usage is correct and hopefully find a resolution.

Actual Results

Fatal Exception: io.realm.exceptions.RealmError: Unrecoverable error. Permission denied in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp line 92
at io.realm.internal.SharedRealm.nativeGetSharedRealm(SharedRealm.java)
at io.realm.internal.SharedRealm.getInstance(SharedRealm.java:205)
at io.realm.internal.SharedRealm.getInstance(SharedRealm.java:182)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:124)
at io.realm.Realm.getInstance(Realm.java:227)
at com.project.base.BaseRealm.(BaseRealm.java)
at com.project.helpers.RepoImpl.(RepoImpl.java)
at com.project.MainActivity.initialiseHelpers(MainActivity.java:272)
at com.project.MainActivity.onCreate(MainActivity.java:162)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2937)
at android.app.ActivityThread.access$1900(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1403)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5752)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(NativeStart.java)

Code:

public class BaseRealm {
    private RealmConfiguration config = new RealmConfiguration.Builder().build();
    protected Realm mRealm = Realm.getInstance(config);
}
public class RepoImpl extends BaseRealm implements RepoInterface {
    @Override
    public void add(String item) {
        MyPOJO data = new MyPOJO();
        data.setItem(item);
        data.setTimestamp(System.currentTimeMillis());
        mRealm.beginTransaction();
        mRealm.copyToRealmOrUpdate(data);
        mRealm.commitTransaction();
    }
    @Override
    public int getResultCount() {
        return mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).size();
    }
    @Override
    public MyPOJO getItemObjectByIndex(int index) {
        try {
            return mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).get(index);
        } catch (Exception e) {
            return null;
        }
    }
    @Override
    public void remove(int position) {
        mRealm.beginTransaction();
        mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).deleteFromRealm(position);
        mRealm.commitTransaction();
    }
    @Override
    public void closeRealm() {
        mRealm.close();
    }
    @Override
    public Realm getRealm() {
        return mRealm;
    }
    @Override
    public void clearRealm() {
        getRealm().beginTransaction();
        getRealm().deleteAll();
        getRealm().commitTransaction();
    }

The RepoImpl instance is being created from two separate classes and the realm instance is being closed only when onDestroy() is triggered in each of the classes. clearRealm() is currently never called.

Realm version(s): 2.2.1

Android Studio version: 2.2.3

Which Android version and device: Samsung SM-A500F (Android 6.0) and Lenovo S1a40 (Android 4.4.4)

It's seemingly working well on other devices.

Activity

Zhuinden

Zhuinden commented on Jan 1, 2017

@Zhuinden
Contributor

SNAPSHOT 2.2.2 fixes #3629 which might fix this?

sabergeek

sabergeek commented on Jan 2, 2017

@sabergeek
Author

@Zhuinden I hope so! :) When is the release version of 2.2.2 expected to be out?

Zhuinden

Zhuinden commented on Jan 2, 2017

@Zhuinden
Contributor

Personally, I'm surprised that it still isn't.

kneth

kneth commented on Jan 3, 2017

@kneth
Contributor

@sabergeek Can you verify that SNAPSHOT 2.2.2 works for you?

sabergeek

sabergeek commented on Jan 3, 2017

@sabergeek
Author

@kneth I certainly would, but I don't have access to those specific devices, nor emulators.

kneth

kneth commented on Jan 4, 2017

@kneth
Contributor

@sabergeek We will release a new version soon. I hope that you will have the time to upgrade your app and monitor Crashlytics to see if the crash still occurs.

sabergeek

sabergeek commented on Jan 4, 2017

@sabergeek
Author

@kneth I will push an update with Snapshot 2.2.2 and report back. Is there anything else I should be aware of/ expect with this snapshot (known bugs)?

Zhuinden

Zhuinden commented on Jan 4, 2017

@Zhuinden
Contributor

@sabergeek it has less bugs than 2.2.1, and I do not know of any new bugs that were introduced.

kneth

kneth commented on Jan 4, 2017

@kneth
Contributor

You can either use the snapshot or wait a day (or two) to use a proper release.

127 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @kuno@bmeike@cmelchior@beeender@thorbenprimke

        Issue actions

          Unrecoverable error. Permission denied in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp · Issue #3972 · realm/realm-java