Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash after DB upgrade with version 1.7.0 #6449

Closed
3 of 11 tasks
svendickman opened this issue Jan 10, 2024 · 8 comments
Closed
3 of 11 tasks

Crash after DB upgrade with version 1.7.0 #6449

svendickman opened this issue Jan 10, 2024 · 8 comments

Comments

@svendickman
Copy link

Hello,
First of all, I love your program and have been using it for years. Since the arrival of the Android https://github.com/moneymanagerex/android-money-manager-ex/releases version compatible with v1.7 I decided to upgrade.
The upgrade works fine on my android, but I cannot open the database on my Windows PCs (I've tried 2 different Win10) and have the exact same error.
I've tried the 32bit and 64bit portable versions. The upgrade of the DB seems to perform correctly, but when I try to open the upgraded DB it stops with in the XML debug file.
The DB can be opened with Android version. If I export the DB in the android I still have the same results.

Thanks for any help you can provide
Sven

Attached is the debug report

MMEX version:

  • 1.6.4
  • 1.7.0
  • 1.7.1
  • 1.7.2
  • Other (please specify)

Note: bug reporters are expected to have verified the bug still existsMoneyManagerEx_dbgrpt-15448-20240110T110254.zipcode
(master branch).

Operating System:

  • Windows
  • Mac OSX
  • Linux

Description of the bug

Please describe your issue with details.
Add screenshot or other files if needed.

Reproduction

Is the bug reproducible?

  • Always
  • Randomly
  • Happened only once

Reproduction steps:

Expected result:

Actual result:

Additional information

If you have a backtrace for a crash or a warning, paste it here.

@whalley
Copy link
Member

whalley commented Jan 10, 2024

Does this Beta build fix the issue?
https://ci.appveyor.com/project/whalley/moneymanagerex/build/job/23h22hk9chsyjn33/artifacts

Possibly this issue - #6390

@svendickman
Copy link
Author

svendickman commented Jan 11, 2024 via email

@n-stein
Copy link
Contributor

n-stein commented Jan 12, 2024

Which version did you upgrade from? Did you perform the upgrade on Android or Windows?

@svendickman
Copy link
Author

Which version did you upgrade from? Did you perform the upgrade on Android or Windows?

Hello n-stein. I was previously MMEX 1.5.15 on Windows and MMEX Android 2019.02.12.991. (DB version 17 I believe.)

The result is the same if I upgrade the DB on the Windows application or on the Android.

I have also tried deleting all of the recurring transactions in the upgraded DB, the result is still the same.

@renato-mmex
Copy link

Are there any other error messages?

@whalley
Copy link
Member

whalley commented Jan 14, 2024

Easiest way to debug this is if you could send your database to support@moneymagerex.org. I can assure you that the database will only be used to debug this issue and will be deleted once complete. Feel free to anonymise any information in the database so long as it still fails as you described.

@svendickman
Copy link
Author

After some long trials and errors in deleting certain transactions and accounts I have narrowed the error down to something in stocks and shares. After removing some portfolios and then upgrading the DB the app no longer crashes on startup.
If developers are interested in trying to debug the issue I can try and isolate the issue and share a simplified DB.
Thank you for your interest and help
Sven

@whalley
Copy link
Member

whalley commented Jan 16, 2024

Yes it is something that got corrupted in the DB.

Having looked at this it crashes here...

total_shares += share_entry->SHARENUMBER;

But as a result of this code

for (const auto trans : trans_list)
{
Model_Checking::Data* checking_entry = Model_Checking::instance().get(trans.CHECKINGACCOUNTID);
if (checking_entry && checking_entry->DELETEDTIME.IsEmpty()) checking_list.push_back(*checking_entry);
}

which does not filter out a TransLink to a transaction that does not exist - how it got in that state I don't know.

It's actually returning an empty 'checking_entry' with TRANSID = -1 rather than a null pointer.

Perhaps we should develop something to integrity check the database and offer fixes... think it has been discussed before....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants