Open Burtan opened 6 months ago
Hi @Burtan It looks like it is crashing when doing a write. If it always crashes, it is something you can reproduce in a sample project you can share with us, or otherwise show the exact code that makes it crash.
Thanks for the fast response, I tried to get some further information, but it seems hard :O. I'm experiencing realm crashes on both my developer devices (laptop and desktop), however it only crashes when running the application. All tests work fine. I now configured my CI with docker runners to run the application by using a headless x mode. And the application does not crash on Ubuntu 22.04, Debian trixie and Debian unstable. Windows works on my machines as well.
This is a log when it crashes just on opening realm.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f770ebcc098, pid=48645, tid=48698
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.9+9 (17.0.9+9) (build 17.0.9+9)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (17.0.9+9, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# C [libc.so.6+0x165098]
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: -Dcompose.application.configure.swing.globals=true -Dcompose.application.resources.dir=/home/frederik/IdeaProjects/livesets-manager/desktop/build/compose/tmp/prepareAppResources -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=de -Duser.variant app.livesets.manager.desktop.MainKt
Host: AMD Ryzen 7 7840HS with Radeon 780M Graphics, 16 cores, 27G, Debian GNU/Linux trixie/sid
Time: Fri Jan 5 20:02:47 2024 CET elapsed time: 0.612100 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x00007f7708d43cc0): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=48698, stack(0x00007f75efb00000,0x00007f75efc00000)]
Stack: [0x00007f75efb00000,0x00007f75efc00000], sp=0x00007f75efbfa598, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libc.so.6+0x165098]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j io.realm.kotlin.internal.interop.realmcJNI.realm_open(J)J+0
j io.realm.kotlin.internal.interop.realmc.realm_open(J)J+1
j io.realm.kotlin.internal.interop.RealmInterop.realm_open(Lio/realm/kotlin/internal/interop/NativePointer;Lio/realm/kotlin/internal/interop/NativePointer;)Lkotlin/Pair;+59
j io.realm.kotlin.internal.ConfigurationImpl$openRealm$2.invoke(Lio/realm/kotlin/internal/interop/NativePointer;)Lkotlin/Pair;+14
j io.realm.kotlin.internal.ConfigurationImpl$openRealm$2.invoke(Ljava/lang/Object;)Ljava/lang/Object;+5
j io.realm.kotlin.internal.interop.NativePointerKt.use(Lio/realm/kotlin/internal/interop/NativePointer;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;+15
j io.realm.kotlin.internal.ConfigurationImpl.openRealm$suspendImpl(Lio/realm/kotlin/internal/ConfigurationImpl;Lio/realm/kotlin/internal/RealmImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;+28
j io.realm.kotlin.internal.ConfigurationImpl.openRealm(Lio/realm/kotlin/internal/RealmImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;+3
j io.realm.kotlin.internal.RealmImpl$1.invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;+234
j kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Ljava/lang/Object;)V+44
j kotlinx.coroutines.DispatchedTask.run()V+317
j kotlinx.coroutines.EventLoopImplBase.processNextEvent()J+198
j kotlinx.coroutines.BlockingCoroutine.joinBlocking()Ljava/lang/Object;+75
j kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;+158
j kotlinx.coroutines.BuildersKt.runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;+2
j io.realm.kotlin.internal.platform.CoroutineUtilsSharedJvmKt.runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;+14
j io.realm.kotlin.internal.platform.CoroutineUtilsSharedJvmKt.runBlocking$default(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;+15
j io.realm.kotlin.internal.RealmImpl.<init>(Lio/realm/kotlin/internal/InternalConfiguration;)V+189
j io.realm.kotlin.internal.RealmImpl.<init>(Lio/realm/kotlin/internal/InternalConfiguration;Lkotlin/jvm/internal/DefaultConstructorMarker;)V+2
j io.realm.kotlin.internal.RealmImpl$Companion.create$io_realm_kotlin_library(Lio/realm/kotlin/internal/InternalConfiguration;)Lio/realm/kotlin/internal/RealmImpl;+12
j io.realm.kotlin.Realm$Companion.open(Lio/realm/kotlin/Configuration;)Lio/realm/kotlin/Realm;+13
j app.livesets.manager.database.DaoRealm.<init>(Ljava/lang/String;)V+45
j app.livesets.manager.database.DaoRealm.<init>(Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V+11
j app.livesets.manager.common.di.ContainerKt$getMainDi$1$5.invoke(Lorg/kodein/di/DirectDI;)Lapp/livesets/manager/database/DaoRealm;+13
j app.livesets.manager.common.di.ContainerKt$getMainDi$1$5.invoke(Ljava/lang/Object;)Ljava/lang/Object;+5
j org.kodein.di.bindings.Singleton$getFactory$1$1$1.invoke()Ljava/lang/Object;+18
j org.kodein.di.bindings.SingletonReference.make(Lkotlin/jvm/functions/Function0;)Lorg/kodein/di/bindings/Reference;+7
j org.kodein.di.bindings.Singleton$getFactory$1$1.invoke()Lorg/kodein/di/bindings/Reference;+25
j org.kodein.di.bindings.Singleton$getFactory$1$1.invoke()Ljava/lang/Object;+1
j org.kodein.di.bindings.StandardScopeRegistry.getOrCreate(Ljava/lang/Object;ZLkotlin/jvm/functions/Function0;)Ljava/lang/Object;+247
j org.kodein.di.bindings.Singleton$getFactory$1.invoke(Lkotlin/Unit;)Ljava/lang/Object;+97
j org.kodein.di.bindings.Singleton$getFactory$1.invoke(Ljava/lang/Object;)Ljava/lang/Object;+5
j org.kodein.di.DIContainer$DefaultImpls$provider$$inlined$toProvider$1.invoke()Ljava/lang/Object;+12
j org.kodein.di.DIAwareKt$Instance$1.invoke(Lorg/kodein/di/DIContext;Ljava/lang/String;)Ljava/lang/Object;+76
j org.kodein.di.DIAwareKt$Instance$1.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+9
j org.kodein.di.DIProperty$provideDelegate$1.invoke()Ljava/lang/Object;+71
j kotlin.SynchronizedLazyImpl.getValue()Ljava/lang/Object;+54
j app.livesets.manager.common.data.AccountManager.getDao()Lapp/livesets/manager/database/DaoFacade;+6
j app.livesets.manager.common.data.AccountManager.<init>(Lorg/kodein/di/DI;)V+145
j app.livesets.manager.common.di.ContainerKt$getMainDi$1$6.invoke(Lorg/kodein/di/DirectDI;)Lapp/livesets/manager/common/data/AccountManager;+16
j app.livesets.manager.common.di.ContainerKt$getMainDi$1$6.invoke(Ljava/lang/Object;)Ljava/lang/Object;+5
j org.kodein.di.bindings.Singleton$getFactory$1$1$1.invoke()Ljava/lang/Object;+18
j org.kodein.di.bindings.SingletonReference.make(Lkotlin/jvm/functions/Function0;)Lorg/kodein/di/bindings/Reference;+7
j org.kodein.di.bindings.Singleton$getFactory$1$1.invoke()Lorg/kodein/di/bindings/Reference;+25
j org.kodein.di.bindings.Singleton$getFactory$1$1.invoke()Ljava/lang/Object;+1
j org.kodein.di.bindings.StandardScopeRegistry.getOrCreate(Ljava/lang/Object;ZLkotlin/jvm/functions/Function0;)Ljava/lang/Object;+247
j org.kodein.di.bindings.Singleton$getFactory$1.invoke(Lkotlin/Unit;)Ljava/lang/Object;+97
j org.kodein.di.bindings.Singleton$getFactory$1.invoke(Ljava/lang/Object;)Ljava/lang/Object;+5
j org.kodein.di.DIContainer$DefaultImpls$provider$$inlined$toProvider$1.invoke()Ljava/lang/Object;+12
j org.kodein.di.DIAwareKt$Instance$1.invoke(Lorg/kodein/di/DIContext;Ljava/lang/String;)Ljava/lang/Object;+76
j org.kodein.di.DIAwareKt$Instance$1.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+9
j org.kodein.di.DIProperty$provideDelegate$1.invoke()Ljava/lang/Object;+71
j kotlin.SynchronizedLazyImpl.getValue()Ljava/lang/Object;+54
j app.livesets.manager.root.RootComponent.getAccountManager()Lapp/livesets/manager/common/data/AccountManager;+6
j app.livesets.manager.root.RootComponent.<init>(Lkotlin/jvm/functions/Function0;Lorg/kodein/di/DI;Lcom/arkivanov/decompose/ComponentContext;)V+245
j app.livesets.manager.desktop.ComposableSingletons$MainKt$lambda-1$1$1.invoke(Landroidx/compose/runtime/Composer;I)V+150
j app.livesets.manager.desktop.ComposableSingletons$MainKt$lambda-1$1$1.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;+70
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider([Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V+65
j cafe.adriel.lyricist.LyricistComposeKt.ProvideStrings(Lcafe/adriel/lyricist/Lyricist;Landroidx/compose/runtime/ProvidableCompositionLocal;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V+103
j app.livesets.manager.desktop.ComposableSingletons$MainKt$lambda-1$1.invoke(Landroidx/compose/ui/window/ApplicationScope;Landroidx/compose/runtime/Composer;I)V+160
j app.livesets.manager.desktop.ComposableSingletons$MainKt$lambda-1$1.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+16
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;+75
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+13
j androidx.compose.ui.window.Application_desktopKt$application$1$1.invoke(Landroidx/compose/ui/window/ApplicationScope;Landroidx/compose/runtime/Composer;I)V+91
j androidx.compose.ui.window.Application_desktopKt$application$1$1.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+16
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;+75
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+13
j androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Landroidx/compose/runtime/Composer;I)V+51
j androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;+70
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider([Landroidx/compose/runtime/ProvidedValue;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V+65
j androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Landroidx/compose/runtime/Composer;I)V+106
j androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Landroidx/compose/runtime/Composer;I)Ljava/lang/Object;+70
j androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(Landroidx/compose/runtime/Composer;Lkotlin/jvm/functions/Function2;)V+27
j androidx.compose.runtime.ComposerImpl.doCompose(Landroidx/compose/runtime/collection/IdentityArrayMap;Lkotlin/jvm/functions/Function2;)V+327
j androidx.compose.runtime.ComposerImpl.composeContent$runtime(Landroidx/compose/runtime/collection/IdentityArrayMap;Lkotlin/jvm/functions/Function2;)V+60
j androidx.compose.runtime.CompositionImpl.composeContent(Lkotlin/jvm/functions/Function2;)V+72
j androidx.compose.runtime.Recomposer.composeInitial$runtime(Landroidx/compose/runtime/ControlledComposition;Lkotlin/jvm/functions/Function2;)V+77
j androidx.compose.runtime.CompositionImpl.setContent(Lkotlin/jvm/functions/Function2;)V+55
j androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;+89
j kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Ljava/lang/Object;)V+44
j kotlinx.coroutines.DispatchedTask.run()V+317
j java.awt.event.InvocationEvent.dispatch()V+47 java.desktop@17.0.9
j java.awt.EventQueue.dispatchEventImpl(Ljava/awt/AWTEvent;Ljava/lang/Object;)V+21 java.desktop@17.0.9
j java.awt.EventQueue$4.run()Ljava/lang/Void;+32 java.desktop@17.0.9
j java.awt.EventQueue$4.run()Ljava/lang/Object;+1 java.desktop@17.0.9
J 1156 c1 java.security.AccessController.executePrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/lang/Class;)Ljava/lang/Object; java.base@17.0.9 (65 bytes) @ 0x00007f76f15f8a3c [0x00007f76f15f88e0+0x000000000000015c]
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+13 java.base@17.0.9
j java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;)Ljava/lang/Object;+18 java.base@17.0.9
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46 java.desktop@17.0.9
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)V+78 java.desktop@17.0.9
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35 java.desktop@17.0.9
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 java.desktop@17.0.9
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 java.desktop@17.0.9
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 java.desktop@17.0.9
j java.awt.EventDispatchThread.run()V+9 java.desktop@17.0.9
v ~StubRoutines::call_stub
siginfo: si_signo: 11 (SIGSEGV), si_code: 128 (SI_KERNEL), si_addr: 0x0000000000000000
Registers:
RAX=0x0000000000000564, RBX=0x00007f75eec536f0, RCX=0x00007f75efbfa738, RDX=0x0000000000000000
RSP=0x00007f75efbfa598, RBP=0x656a6f7250616564, RSI=0x00007f75efbfa6e8, RDI=0x656a6f7250616564
R8 =0x0000000000000020, R9 =0x00000000000003e0, R10=0x00007f75eea14540, R11=0x00007f75eeb39090
R12=0x00000000000003e0, R13=0x00007f75eec536f0, R14=0x00007f75efbfa5c0, R15=0x00007f75eec537c0
RIP=0x00007f770ebcc098, EFLAGS=0x0000000000010287, CSGSFS=0x002b000000000033, ERR=0x0000000000000000
TRAPNO=0x000000000000000d
Register to memory mapping:
RAX=0x0000000000000564 is an unknown value
RBX=0x00007f75eec536f0: <offset 0x00000000002536f0> in /lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f75eea00000
RCX=0x00007f75efbfa738 is pointing into the stack for thread: 0x00007f7708d43cc0
RDX=0x0 is NULL
RSP=0x00007f75efbfa598 is pointing into the stack for thread: 0x00007f7708d43cc0
RBP=0x656a6f7250616564 is an unknown value
RSI=0x00007f75efbfa6e8 is pointing into the stack for thread: 0x00007f7708d43cc0
RDI=0x656a6f7250616564 is an unknown value
R8 =0x0000000000000020 is an unknown value
R9 =0x00000000000003e0 is an unknown value
R10=0x00007f75eea14540: <offset 0x0000000000014540> in /lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f75eea00000
R11=0x00007f75eeb39090: _ZNSo9_M_insertImEERSoT_+0x0000000000000000 in /lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f75eea00000
R12=0x00000000000003e0 is an unknown value
R13=0x00007f75eec536f0: <offset 0x00000000002536f0> in /lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f75eea00000
R14=0x00007f75efbfa5c0 is pointing into the stack for thread: 0x00007f7708d43cc0
R15=0x00007f75eec537c0: <offset 0x00000000002537c0> in /lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f75eea00000
I'm trying to cut down my application to get some shareable example.
➤ cmelchior commented:
Hmm, that is indeed weird. Have you tried to run the application using a different JDK like the official Oracle one: https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html or Azul: https://www.azul.com/downloads/?version=java-17-lts&package=jdk#zulu ... just to rule out any problems with the JDK
I managed to make a minimal example for reproduction, which also includes one crash log. I hope this helps! Trying different jdks (versions and vendors) didn't change anything for me.
Using gradle clean
and gradle desktop:run
crashes for me under linux debian testing
Do you need anything more?
How frequently does the bug occur?
Always
Description
Hey, I upgraded from realm 1.10.0 to 1.13.0 and now I'm getting the following error: It is thrown when a dbQuery is transformed asFlow.
Stacktrace & log output
Can you reproduce the bug?
Always
Version
1.11.0 - 1.13.0
Are you using encryption?
No
Platform OS and version(s)
Debian testing (trixie)
Build environment
Android Studio version: Hedgehog/IntelliJ IDEA 2023.3.2 Android Build Tools version: 34.0.0 Gradle version: 8.5