FireflyMobile icon indicating copy to clipboard operation
FireflyMobile copied to clipboard

App Crashes while creating Deposit Transaction

Open gthbusrr opened this issue 3 years ago • 6 comments

Firefly III Server Version:

  • 5.4.6 (Latest)

Firefly III Mobile Version:

  • 4.5.0 (Latest)

Android Version:

  • 11

Device Information:

  • BRAND: Samsung
  • MODEL: Galaxy Note20 Ultra

Expected Behavior

  • ~Successfully creates transaction.~ Returns a success message

Current Behavior

  • App Crashes.

Steps to Reproduce

  • Create Deposit Transaction
  • App Crashes
REPORT_ID=31c69bc6-0155-4330-8ad4-c5847c56e95c
APP_VERSION_NAME=4.5.0
PHONE_MODEL=SM-N9860
BRAND=samsung
PRODUCT=c2qzhx
ANDROID_VERSION=11
BUILD_CONFIG=
STACK_TRACE=android.database.sqlite.SQLiteException: cannot start a transaction within a transaction (code 1 SQLITE_ERROR[1])
	at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method)
	at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:957)
	at android.database.sqlite.SQLiteSession.beginTransactionUnchecked(SQLiteSession.java:325)
	at android.database.sqlite.SQLiteSession.beginTransaction(SQLiteSession.java:300)
	at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:772)
	at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:682)
	at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.beginTransaction(FrameworkSQLiteDatabase.java:1)
	at androidx.room.RoomDatabase.beginTransaction(RoomDatabase.java:4)
	at xyz.hisname.fireflyiii.data.local.dao.TransactionDataDao_AppDatabase_Impl$8.call(TransactionDataDao_AppDatabase_Impl.java:1)
	at androidx.room.CoroutinesRoom$Companion$execute$2.invokeSuspend(CoroutinesRoom.kt:2)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:3)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:15)
	at androidx.room.TransactionExecutor$1.run(TransactionExecutor.java:1)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:1)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:11)

LOGCAT=03-15 17:01:04.695 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.695 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.700 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.701 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.703 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.705 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.705 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.705 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.706 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.706 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.706 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.706 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.706 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.707 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:04.707 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:05.365 D/NativeCustomFrequencyManager(17427): [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
03-15 17:01:05.368 D/InputTransport(17427): Input channel constructed: 'b2d495f', fd=118
03-15 17:01:05.370 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): setView = android.widget.PopupWindow$PopupDecorView@1a8f4d7 TM=true
03-15 17:01:05.376 I/SurfaceControl(17427): assignNativeObject: nativeObject = 0 Surface(name=null)/@0x4d3f1c4 / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1787 android.view.ViewRootImpl.relayoutWindow:8953 android.view.ViewRootImpl.performTraversals:3312 android.view.ViewRootImpl.doTraversal:2575 android.view.ViewRootImpl$TraversalRunnable.run:9910 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
03-15 17:01:05.377 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): Relayout returned: old=(0,67,1080,2316) new=(54,394,1026,1582) req=(972,1188)0 dur=5 res=0x7 s={true -5476376642520400800} ch=true fn=-1
03-15 17:01:05.382 D/AbsListView(17427):  in onLayout changed 
03-15 17:01:05.386 D/OpenGLRenderer(17427): GPIS:: SetUp Pid : 17427    Tid : 17502
03-15 17:01:05.393 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): MSG_RESIZED_REPORT: frame=(54,394,1026,1582) ci=(0,0,0,0) vi=(0,0,0,0) or=1
03-15 17:01:05.404 I/SurfaceControl(17427): release : mNativeObject = -5476376646815462288 - Surface(name=PopupWindow:60713fb$_17427)/@0xd59b0de / android.view.SurfaceControl.assignNativeObject:567 android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1777 android.view.ViewRootImpl.relayoutWindow:8953 
03-15 17:01:05.404 I/SurfaceControl(17427): nativeRelease nativeObject s[-5476376646815462288]
03-15 17:01:05.404 I/SurfaceControl(17427): nativeRelease nativeObject e[-5476376646815462288]
03-15 17:01:05.405 I/SurfaceControl(17427): assignNativeObject: nativeObject = 0 Surface(name=null)/@0x4d3f1c4 / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1787 android.view.ViewRootImpl.relayoutWindow:8953 android.view.ViewRootImpl.performTraversals:3312 android.view.ViewRootImpl.doTraversal:2575 android.view.ViewRootImpl$TraversalRunnable.run:9910 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
03-15 17:01:05.405 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): Relayout returned: old=(54,394,1026,1582) new=(54,394,1026,1582) req=(972,1188)0 dur=4 res=0x1 s={true -5476376642520400800} ch=false fn=4
03-15 17:01:05.475 I/SurfaceControl(17427): release : mNativeObject = -5476376646815279600 - Surface(name=PopupWindow:60713fb$_17427)/@0xd59b0de / android.view.SurfaceControl.assignNativeObject:567 android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1777 android.view.ViewRootImpl.relayoutWindow:8953 
03-15 17:01:05.475 I/SurfaceControl(17427): nativeRelease nativeObject s[-5476376646815279600]
03-15 17:01:05.475 I/SurfaceControl(17427): nativeRelease nativeObject e[-5476376646815279600]
03-15 17:01:05.475 I/SurfaceControl(17427): assignNativeObject: nativeObject = 0 Surface(name=null)/@0x4d3f1c4 / android.view.SurfaceControl.readFromParcel:1115 android.view.IWindowSession$Stub$Proxy.relayout:1787 android.view.ViewRootImpl.relayoutWindow:8953 android.view.ViewRootImpl.performTraversals:3312 android.view.ViewRootImpl.doTraversal:2575 android.view.ViewRootImpl$TraversalRunnable.run:9910 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
03-15 17:01:05.476 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): Relayout returned: old=(54,394,1026,1582) new=(54,394,1026,770) req=(972,376)0 dur=4 res=0x21 s={true -5476376642520400800} ch=false fn=5
03-15 17:01:05.479 D/AbsListView(17427):  in onLayout changed 
03-15 17:01:06.090 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): ViewPostIme pointer 0
03-15 17:01:06.155 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): ViewPostIme pointer 1
03-15 17:01:06.155 D/AbsListView(17427): onTouchUp() mTouchMode : 0
03-15 17:01:06.226 D/InputMethodManager(17427): prepareNavigationBarInfo() DecorView@32e440d[AddTransactionActivity]
03-15 17:01:06.226 D/InputMethodManager(17427): getNavigationBarColor() -12808772
03-15 17:01:06.226 V/InputMethodManager(17427): Starting input: tba=xyz.hisname.fireflyiii ic=com.android.internal.widget.EditableInputConnection@8018da8 mNaviBarColor -12808772 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
03-15 17:01:06.226 D/InputMethodManager(17427): startInputInner - Id : 0
03-15 17:01:06.230 I/InputMethodManager(17427): startInputInner - mService.startInputOrWindowGainedFocus
03-15 17:01:06.232 D/InputTransport(17427): Input channel constructed: 'ClientS', fd=101
03-15 17:01:06.232 D/InputTransport(17427): Input channel destroyed: 'ClientS', fd=100
03-15 17:01:06.238 D/OpenGLRenderer(17427): endAllActiveAnimators on 0xb4000074fe66a120 (DropDownListView) with handle 0xb40000740e53dff0
03-15 17:01:06.238 I/ViewRootImpl@e409c56[PopupWindow:60713fb](17427): dispatchDetachedFromWindow
03-15 17:01:06.238 I/SurfaceControl(17427): release : mNativeObject = -5476376646815165024 - Surface(name=PopupWindow:60713fb$_17427)/@0xd59b0de / android.view.ViewRootImpl.destroySurface:2441 android.view.ViewRootImpl.dispatchDetachedFromWindow:5658 android.view.ViewRootImpl.doDie:9282 android.view.ViewRootImpl.die:9259 
03-15 17:01:06.238 I/SurfaceControl(17427): nativeRelease nativeObject s[-5476376646815165024]
03-15 17:01:06.238 I/SurfaceControl(17427): nativeRelease nativeObject e[-5476376646815165024]
03-15 17:01:06.242 D/InputTransport(17427): Input channel destroyed: 'b2d495f', fd=118
03-15 17:01:06.244 W/IInputConnectionWrapper(17427): getTextBeforeCursor on inactive InputConnection
03-15 17:01:06.250 W/IInputConnectionWrapper(17427): getTextAfterCursor on inactive InputConnection
03-15 17:01:06.258 W/IInputConnectionWrapper(17427): getSelectedText on inactive InputConnection
03-15 17:01:06.333 E/SQLiteLog(17427): (1) statement aborts at 3: [BEGIN EXCLUSIVE;] cannot start a transaction within a transaction
03-15 17:01:06.540 I/ViewRootImpl@9b95e82[AddTransactionActivity](17427): ViewPostIme pointer 0
03-15 17:01:06.596 I/ViewRootImpl@9b95e82[AddTransactionActivity](17427): ViewPostIme pointer 1
03-15 17:01:06.754 E/SQLiteLog(17427): (1) statement aborts at 3: [BEGIN EXCLUSIVE;] cannot start a transaction within a transaction
03-15 17:01:07.597 I/ViewRootImpl@9b95e82[AddTransactionActivity](17427): ViewPostIme pointer 0
03-15 17:01:07.644 I/ViewRootImpl@9b95e82[AddTransactionActivity](17427): ViewPostIme pointer 1
03-15 17:01:07.649 D/InsetsSourceConsumer(17427): setRequestedVisible: visible=false, type=13, host=xyz.hisname.fireflyiii/xyz.hisname.fireflyiii.ui.transaction.addtransaction.AddTransactionActivity, from=android.view.InsetsSourceConsumer.hide:236 android.view.ImeInsetsSourceConsumer.hide:101 android.view.InsetsController.hideDirectly:1430 android.view.InsetsController.controlAnimationUnchecked:1112 android.view.InsetsController.applyAnimation:1417 android.view.InsetsController.hide:984 android.view.InsetsController.hide:967 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:1 androidx.core.view.WindowInsetsControllerCompat.hide:1 xyz.hisname.fireflyiii.util.extension.DebounceExtensionKt.hideKeyboard:13 
03-15 17:01:07.755 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.755 D/SurfaceControl(17427): hide : mNativeObject = -5476376646815035488 - sc.mNativeObject = -5476376646815165024 - Surface(name=Surface(name=12b9942 InputMethod)/@0x49dfb89 - animation-leash)/@0xf8edc52
03-15 17:01:07.755 D/SurfaceControl(17427): nativeSetFlags Done : Surface(name=Surface(name=12b9942 InputMethod)/@0x49dfb89 - animation-leash)/@0xf8edc52
03-15 17:01:07.755 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.756 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.756 D/SurfaceControl(17427): hide : mNativeObject = -5476376646815035488 - sc.mNativeObject = -5476376646815165024 - Surface(name=Surface(name=12b9942 InputMethod)/@0x49dfb89 - animation-leash)/@0xf8edc52
03-15 17:01:07.756 D/SurfaceControl(17427): nativeSetFlags Done : Surface(name=Surface(name=12b9942 InputMethod)/@0x49dfb89 - animation-leash)/@0xf8edc52
03-15 17:01:07.756 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.756 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.756 I/SurfaceControl(17427): release : mNativeObject = -5476376646815165024 - Surface(name=Surface(name=12b9942 InputMethod)/@0x49dfb89 - animation-leash)/@0xf8edc52 / android.view.-$$Lambda$Rl1VZmNJ0VZDLK0BAbaVGis0rrA.accept:2 android.view.InsetsSourceControl.release:170 android.view.InsetsAnimationThreadControlRunner.releaseControls:119 android.view.InsetsAnimationThreadControlRunner.access$200:40 
03-15 17:01:07.756 I/SurfaceControl(17427): nativeRelease nativeObject s[-5476376646815165024]
03-15 17:01:07.756 I/SurfaceControl(17427): nativeRelease nativeObject e[-5476376646815165024]
03-15 17:01:07.756 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.757 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.757 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.757 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:07.757 W/View    (17427): couldn't find view with id 2131362736
03-15 17:01:10.928 E/SQLiteLog(17427): (1) statement aborts at 3: [BEGIN EXCLUSIVE;] cannot start a transaction within a transaction
03-15 17:01:10.929 D/CompatibilityChangeReporter(17427): Compat change id reported: 147798919; UID 10464; state: ENABLED
03-15 17:01:10.939 D/Toast   (17427): show: caller = xyz.hisname.fireflyiii.util.extension.DebounceExtensionKt.toastSuccess$default:4 
03-15 17:01:10.939 I/Toast   (17427): show: focusDisplayId = 0, isFocusInDesktop = false mCustomDisplayId=-1 isDexDualMode=false
03-15 17:01:10.939 I/Toast   (17427): show: isActivityContext = true
03-15 17:01:10.962 E/ACRA    (17427): ACRA caught a SQLiteException for xyz.hisname.fireflyiii
03-15 17:01:10.962 E/ACRA    (17427): android.database.sqlite.SQLiteException: cannot start a transaction within a transaction (code 1 SQLITE_ERROR[1])
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method)
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:957)
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteSession.beginTransactionUnchecked(SQLiteSession.java:325)
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteSession.beginTransaction(SQLiteSession.java:300)
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:772)
03-15 17:01:10.962 E/ACRA    (17427): 	at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:682)
03-15 17:01:10.962 E/ACRA    (17427): 	at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.beginTransaction(FrameworkSQLiteDatabase.java:1)
03-15 17:01:10.962 E/ACRA    (17427): 	at androidx.room.RoomDatabase.beginTransaction(RoomDatabase.java:4)
03-15 17:01:10.962 E/ACRA    (17427): 	at xyz.hisname.fireflyiii.data.local.dao.TransactionDataDao_AppDatabase_Impl$8.call(TransactionDataDao_AppDatabase_Impl.java:1)
03-15 17:01:10.962 E/ACRA    (17427): 	at androidx.room.CoroutinesRoom$Companion$execute$2.invokeSuspend(CoroutinesRoom.kt:2)
03-15 17:01:10.962 E/ACRA    (17427): 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:3)
03-15 17:01:10.962 E/ACRA    (17427): 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:15)
03-15 17:01:10.962 E/ACRA    (17427): 	at androidx.room.TransactionExecutor$1.run(TransactionExecutor.java:1)
03-15 17:01:10.962 E/ACRA    (17427): 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:1)
03-15 17:01:10.962 E/ACRA    (17427): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
03-15 17:01:10.962 E/ACRA    (17427): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:11)
IS_SILENT=false
USER_CRASH_DATE=2021-03-15T17:01:10.974+08:00

gthbusrr avatar Mar 15 '21 09:03 gthbusrr

Turns out, it did successfully created a transaction on server... Just that the app crashed and didn't show any success return

gthbusrr avatar Mar 15 '21 09:03 gthbusrr

I have only seen this bug in debug builds. It's really hard to replicate it

emansih avatar Mar 15 '21 10:03 emansih

It happens probably 1 in 20 times?

emansih avatar Mar 15 '21 10:03 emansih

It happens probably 1 in 20 times?

For that specific transaction, it happens every single time😂

I don't know if giving you the specific of the transaction helps though..

gthbusrr avatar Mar 15 '21 11:03 gthbusrr

Creating any transaction generates the same error. As it's something to do with database (?) I tried re-installing the app. I've successfully logged in. However, I can retrieve nothing other than the four boxes on dashboard (Net worth, etc.) After several attempts, including clearing cache, rebooting my phone, clearing data, re-installing, generating new PATs, etc... I finally came up with a solution... Downgrading to v4.3.0...

Hope this information helps. Thanks.

gthbusrr avatar Mar 15 '21 14:03 gthbusrr

Please let me know if I should create a new issue:-

  • Showing several days of transactions only works on v4.3.0

gthbusrr avatar Mar 15 '21 14:03 gthbusrr