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

Mac Updater Issues #439

Merged
merged 1 commit into from
Jan 13, 2025
Merged

Mac Updater Issues #439

merged 1 commit into from
Jan 13, 2025

Conversation

jfaltermeier
Copy link
Contributor

@jfaltermeier jfaltermeier commented Jan 10, 2025

What it does

We are investigating update issues on macOS, which might be related to signing. As part of this effort, we are also testing the new Eclipse signing service.

This version might not be promoted from preview to the stable channel immediately but instead with the next Theia release.

  • test new signing service as standin (gave an error, will investigate later)
  • also sign and notarize zip file itself on mac
  • bump timeout to 5 hours, since Eclipse CI is sometimes just slow

How to test

Mac DMG should still work and updating should not lead to a loop (we will have to merge this to get testers in)

Review checklist

Reminder for reviewers

@jfaltermeier jfaltermeier changed the title Jf/mac update loop Mac Updater Issues Jan 10, 2025
* also sign and notarize zip file itself on mac
* bump timeout to 5 hours, since Eclipse CI is sometimes just slow
@jfaltermeier
Copy link
Contributor Author

I tested the full signing pipeline here: https://ci.eclipse.org/theia/job/Theia%20PRs/view/change-requests/job/PR-439/2/

@jfaltermeier jfaltermeier requested a review from sgraband January 10, 2025 12:50
@jfaltermeier
Copy link
Contributor Author

License error is again an error that wasn't somehow picked up by the license checker during an earlier update, so we may ignore this one, since it wasn't caused by this PR.

@jfaltermeier jfaltermeier marked this pull request as ready for review January 10, 2025 12:51
Copy link
Contributor

@sgraband sgraband left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if it really improves something (we will see in the long run), but it also does not make things worse, so LGTM 👍

@jfaltermeier jfaltermeier merged commit 2555c48 into master Jan 13, 2025
4 of 6 checks passed
@jfaltermeier jfaltermeier deleted the jf/mac-update-loop branch January 13, 2025 08:49
@jfaltermeier
Copy link
Contributor Author

Yes, I'm not sure as well, but the mac updater uses the ZIP for updating. We can see that it downloads the ZIP but after that it got quiet and we did not have log outputs.
https://www.electron.build/auto-update.html mentions that code signing needs to be in place for mac updates to work. So that is why I wanted to try this first (alongside notarization)

@jfaltermeier
Copy link
Contributor Author

To summarize the first tests:

  • We managed to progress further, but the checksums in the latest.yml file were still outdated, causing a failure.
  • After manually fixing the checksums, the update proceeded, but the application failed to start due to a missing executable bit. I need to investigate this further.
  • Once the executable bit was fixed manually, the update completed successfully. However, it resulted in the following error on app startup:
Last login: Mon Jan 13 06:18:43 on console
parallels@Parallelss-Virtual-Machine ~ % ls -al /Applications/TheiaIDE.app/Contents/MacOS/TheiaIDE 
-rw-r--r--@ 1 parallels  staff  35776 13 Jan 03:25 /Applications/TheiaIDE.app/Contents/MacOS/TheiaIDE
parallels@Parallelss-Virtual-Machine ~ % chmod +x /Applications/TheiaIDE.app/Contents/MacOS/TheiaIDE
parallels@Parallelss-Virtual-Machine ~ % /Applications/TheiaIDE.app/Contents/MacOS/TheiaIDE 
<--- Last few GCs --->
[874:0x104001c0000]      514 ms: Mark-Compact (reduce) 0.5 (2.9) -> 0.5 (1.9) MB, pooled: 0 MB, 3.32 / 0.00 ms  (average mu = 0.828, current mu = 0.210) last resort; GC in old space requested
[874:0x104001c0000]      516 ms: Mark-Compact (reduce) 0.5 (1.9) -> 0.5 (1.9) MB, pooled: 0 MB, 1.37 / 0.00 ms  (average mu = 0.755, current mu = 0.065) last resort; GC in old space requested
<--- JS stacktrace --->
#
# Fatal JavaScript out of memory: CALL_AND_RETRY_LAST
#
----- Native stack trace -----
 1: 0x11a814c12 node::OnFatalError(char const*, char const*) [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 2: 0x117cd6e48 node::GetMultiIsolatePlatform(node::IsolateData*) [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 3: 0x1140ce260 v8::CpuProfile::GetTopDownRoot() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 4: 0x1140ce1bd v8::CpuProfile::GetTopDownRoot() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 5: 0x1142b311e v8::CppHeap::wrapper_descriptor() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 6: 0x11428f6c0 v8::CppHeap::wrapper_descriptor() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 7: 0x11428fa2e v8::CppHeap::wrapper_descriptor() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 8: 0x114a93aec v8::WasmStreaming::Unpack(v8::Isolate*, v8::Local<v8::Value>) [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
 9: 0x1146d5367 v8::internal::TickSample::print() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
10: 0x1146fdeb0 v8::internal::TickSample::print() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
11: 0x1146fd5bb v8::internal::TickSample::print() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
12: 0x1146fc619 v8::internal::TickSample::print() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
13: 0x11471fdbd v8::internal::TickSample::print() const [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
14: 0x112848836  [/Applications/TheiaIDE.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework]
zsh: trace trap  /Applications/TheiaIDE.app/Contents/MacOS/TheiaIDE
parallels@Parallelss-Virtual-Machine ~ %

I’ll continue investigating and work on solutions for the manual fixes we applied.

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

Successfully merging this pull request may close these issues.

2 participants