InfiniTimeOrg / InfiniTime

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS
GNU General Public License v3.0
2.8k stars 948 forks source link

Stability issues on 1.15.0 #2178

Open AgentConDier opened 6 days ago

AgentConDier commented 6 days ago

Verification

What happened?

Frequent crashes/freezes after upgrading to the 1.15.0 release

What should happen instead?

No response

Reproduction steps

The stability issues are intermittent; there is no single way to cause a reboot 100% of the time. Here is a walkthrough of two crashes, starting from a fresh boot with default settings:

  1. Enable raise/lower wrist wakeup
  2. Connect to the watch using Gadgetbridge
  3. Switch to PineTimeStyle watchface (Tested turning the display on and off using the button as well as motion detection multiple times between steps)
  4. Send a notification to the watch, dismiss it and turn of the display
  5. Attept to turn the display back on. No reaction, Watchdog triggers a reboot

--

  1. Connect to the watch using Gadgetbridge
  2. Turn the display off
  3. Send a notification to the watch
  4. No reaction from the watch. A few seconds later, the Watchdog triggers

More details?

Notifications are not the only way to cause a crash. I have also observed reboots in the following situations after upgrading to 1.15:

I feel like enabling/using more features reduces the stability, especially bluetooth and wakeup motions.

Weather information provided to Gadgetbridge by de.kaffeemitkoffein.tinyweatherforecastgermany (FDroid) Update installed using pinetime-mcuboot-app-dfu-1.15.0.zip from the GitHub release.

Version

v1.15.0

Companion app

Gadgetbridge Nightly 0.82.0-5a0f1e46d

NeroBurner commented 5 days ago

Unfortunately can't reproduce.

Using:

Tested PineTimeStyle watch face + with raise/lower wrist wakeup + Gadgedbridge debug notification + sendig weather data. No freeze/bug found

I have no resources installed.

I don't think it is Gadgedbridge nightly (as it is also happening with itd on your watch). But just to be sure, could you upgrade to the same latest stable version v0.82.1 as I have?

And to be extra sure please redownload the InfiniTime firmware zip from GitHub. I've just downloaded the zip and got the following checksums:

zyphlar commented 4 days ago

I'm getting crashes in InfiniSim on 1.15.0 that I wasn't getting before, usually when going to sleep. Unsure how to debug to get a better stack trace.

info:  [systemtask] Going to sleep
info:  [LCD] Low power mode
terminate called after throwing an instance of 'std::runtime_error'
  what():  Mutex released without being held
Aborted (core dumped)
NeroBurner commented 3 days ago

@zyphlar Please open an issue at infinisim repo. Let's debug infinisim there

zyphlar commented 3 days ago

Will do. Interestingly after clearing cmake cache I encounter nearly zero crashes, may have been a build fluke.

AgentConDier commented 2 days ago

Tried again with a fresh copy of the firmware. Same checksum. Still crashes randomly when using it normally.

mint@mint:~/Downloads$ sha256sum *.zip
723a54064302ba85392dd4b0a11670c3203c8c4bc4e2b51568abd0fc5624adad infinitime-resources-1.15.0.zip
c03dc842dd6071b7375fbcf6ba8dc469f99979433b242fa21d88c016b980def2 pinetime-mcuboot-app-dfu-1.15.0.zip
mint@mint:~/Downloads$ itctl fw upg -r infinitime-resources-1.15.0.zip -a pinetime-mcuboot-app-dfu-1.15.0.zip
Uploading navigation1.bin 14983 / 14983 B |------------------------------------------------------------| 100.00% 3m35s
375600 / 375608 B |------------------------------------------------------------------------------------>| 100.00% 7m3s
Transferred 375608 B in 7m2.843585774s. Remember to validate the new firmware in the InfiniTime settings.

I switched back to stable Gadgetbridge 0.82.1, as expected that didn't make a difference.

Even with bluetooth and wakeup disabled it can still crash after a while, usually when turning the screen on or off. Disconnecting the charging cradle can also make the watch lock up and do a watchdog reset. I left it on my desk for an hour and it was fine, but crashed right after I put it on and switched watchtace/enabled motion wakeup.

Starting to wonder if this is a hardware issue, sometimes the watch also bootloops a few times when trying to switch between versions (by holding the button during the boot loader screen) or crashes right after booting v1.15. Then again, 1.14.1 has been mostly stable, only reboots or freezes a few times per month.