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

Quits with render-process-gone when joining a call #1369

Closed
GrzegorzKozub opened this issue Aug 20, 2024 · 10 comments
Closed

Quits with render-process-gone when joining a call #1369

GrzegorzKozub opened this issue Aug 20, 2024 · 10 comments

Comments

@GrzegorzKozub
Copy link
Contributor

GrzegorzKozub commented Aug 20, 2024

Describe the bug

Quits when joining a call with just render-process-gone and no other errors in the log.

Interestingly, turning on disableGpu does not resolve this problem but makes the quits occur less often. Without disableGpu the app quits almost every time I try to join a call.

Most likely related to electron/electron#32760 where people suggest that a good workaround is adding app.disableHardwareAcceleration(). See electron/electron#32760 (comment).

This is currently not in effect when disableGpu is enabled. Can we introduce it and see if this helps?

if (config.disableGpu) {

To Reproduce

Steps to reproduce the behavior:

  1. Go to calendar
  2. Click Meet now on the top or Join on any of the events
  3. You don't get a chance to Join now as the app quits when the screen with meeting controls loads

Expected behavior

Can join the call

Screenshots

n/a

Desktop (please complete the following information):

Debug

all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
11:36:48.131 › File logging at /home/greg/.config/teams-for-linux/logs/main.log with level silly
11:36:48.132 › Console logging enabled with level silly
11:36:48.132 › Logger initialised
11:36:48.132 › configPath: /home/greg/.config/teams-for-linux
11:36:48.133 › configFile: {
  appIconType: 'light',
  disableNotificationSound: true,
  disableNotificationWindowFlash: true,
  disableNotifications: true,
  disableGpu: true,
  followSystemTheme: true,
  optInTeamsV2: true,
  spellCheckerLanguages: [ 'en', 'pl' ]
}
11:36:48.135 › Running under Wayland, switching to PipeWire...
11:36:48.135 › Disabling GPU support...
11:36:48.372 › processArgs: [ '/opt/teams-for-linux/teams-for-linux' ]
11:36:48.372 › testing RegExp processArgs false
11:36:48.373 › Testing network using net.request() for https://teams.microsoft.com/v2
11:36:48.374 › Language codes en,pl set for spellchecker
11:36:48.626 › Network test successful with method https
11:36:48.879 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
11:36:49.376 › did-frame-finish-load {} true
11:36:49.376 › did-finish-load
11:36:50.613 › Badge count set to '0'
11:36:50.623 › Badge count set to '0'
11:36:51.367 › Badge count set to '0'
11:36:53.029 › did-frame-finish-load {} false
11:36:58.946 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
11:37:07.929 › Badge count set to '0'
11:37:08.233 › Badge count set to '0'
11:37:08.804 › Badge count set to '0'
11:37:09.196 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
11:37:11.376 › Badge count set to '0'
11:37:11.929 › render-process-gone
11:37:11.929 › before-quit
11:37:11.929 › window close
11:37:11.932 › window closed
11:37:11.932 › will-quit
11:37:11.932 › quit

Additional context

n/a

GrzegorzKozub added a commit to GrzegorzKozub/dotfiles that referenced this issue Aug 20, 2024
@IsmaelMartinez
Copy link
Owner

Hi @GrzegorzKozub , thanks for creating the issue and finding a possible solution. I would see if/when I can make this change and create a new release. If you feel brave enough, we are open for contributions. There should be enough info in here https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/CONTRIBUTING.md

@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Aug 20, 2024

This should be sorted in pre-release 1.9.1 . Can you validate it? Thanks again @GrzegorzKozub !

@GrzegorzKozub
Copy link
Contributor Author

GrzegorzKozub commented Aug 22, 2024

Thanks for a prompt fix. Sadly, this did not solve the problem. I will keep digging.

@IsmaelMartinez
Copy link
Owner

It looks like they also suggest other options, that we don't force, but you can easily add.

Those are 'ignore-gpu-blacklist' and 'disable-gpu-compositing'.

Your config file looks like this according to the logs:

{
  "appIconType": "light",
  "disableNotificationSound": true,
  "disableNotificationWindowFlash": true,
  "disableNotifications": true,
  "disableGpu": true,
  "followSystemTheme": true,
  "optInTeamsV2": true,
  "spellCheckerLanguages": [ 'en', 'pl' ]
}

Can you try it to be like this?

{
  "appIconType": "light",
  "disableNotificationSound": true,
  "disableNotificationWindowFlash": true,
  "disableNotifications": true,
  "disableGpu": true,
  "followSystemTheme": true,
  "optInTeamsV2": true,
  "spellCheckerLanguages": [ 'en', 'pl' ],
  "electronCLIFlags": [["ignore-gpu-blacklist",true], ["disable-gpu-compositing",true]]
}

Hopefully it helps. Add the logs if you can

@GrzegorzKozub
Copy link
Contributor Author

Setting ignore-gpu-blacklist and disable-gpu-compositing does not help.

all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
11:54:59.611 › File logging at /home/greg/.config/teams-for-linux/logs/main.log with level silly
11:54:59.612 › Console logging enabled with level silly
11:54:59.613 › Logger initialised
11:54:59.613 › configPath: /home/greg/.config/teams-for-linux
11:54:59.613 › configFile: {
  appIconType: 'light',
  disableNotificationSound: true,
  disableNotificationWindowFlash: true,
  disableNotifications: true,
  disableGpu: true,
  electronCLIFlags: [
    [ 'ignore-gpu-blacklist', true ],
    [ 'disable-gpu-compositing', true ]
  ],
  followSystemTheme: true,
  optInTeamsV4: true,
  spellCheckerLanguages: [ 'en', 'pl' ]
}
11:54:59.616 › Running under Wayland, switching to PipeWire...
11:54:59.616 › Disabling GPU support...
11:54:59.616 › Adding electron CLI flag 'ignore-gpu-blacklist' with value 'true'
11:54:59.616 › Adding electron CLI flag 'disable-gpu-compositing' with value 'true'
11:54:59.922 › processArgs: [ '/opt/teams-for-linux/teams-for-linux' ]
11:54:59.922 › testing RegExp processArgs false
11:54:59.922 › Testing network using net.request() for https://teams.microsoft.com/v2
11:54:59.924 › Language codes en,pl set for spellchecker
^A11:55:00.185 › Network test successful with method https
11:55:00.419 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[129011:0822/115500.420543:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.NotSupported: This method is not part of the idle inhibition specification: https://specifications.freedesktop.org/idle-inhibit-spec/latest/
11:55:00.917 › did-frame-finish-load {} true
11:55:00.918 › did-finish-load
^@^A11:55:02.210 › Badge count set to '0'
11:55:02.219 › Badge count set to '0'
11:55:02.929 › Badge count set to '0'
^@11:55:04.602 › did-frame-finish-load {} false
^A11:55:08.717 › Badge count set to '0'
11:55:10.494 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
11:55:14.925 › Badge count set to '0'
11:55:15.511 › render-process-gone
11:55:15.512 › before-quit
11:55:15.512 › window close
11:55:15.516 › window closed
11:55:15.516 › will-quit
11:55:15.516 › quit

@IsmaelMartinez
Copy link
Owner

I will see if I can add more info from that event. The render-process-gone event should return a reason, that might tell us why. I hope I can add that at some point this week, but it should be changing this function:

function onRenderProcessGone() {

To adder to this
https://www.electronjs.org/docs/latest/api/web-contents#event-render-process-gone

Basically print the reason https://www.electronjs.org/docs/latest/api/structures/render-process-gone-details

@IsmaelMartinez
Copy link
Owner

Ok, I made some changes in the https://github.com/IsmaelMartinez/teams-for-linux/releases/tag/v1.9.5 so the logs hopefully tells us more. Can you try it and see what do you get?

Also, if you are using teams-v2 you need to put the teams-url (completely forgot in my last suggestion)

{
  "appIconType": "light",
  "disableNotificationSound": true,
  "disableNotificationWindowFlash": true,
  "disableNotifications": true,
  "disableGpu": true,
  "followSystemTheme": true,
  "optInTeamsV2": true,
  "url": "https://teams.microsoft.com/v2",
  "spellCheckerLanguages": [ 'en', 'pl' ],
  "electronCLIFlags": [["ignore-gpu-blacklist"], ["disable-gpu-compositing"]]
}

I also think that the electronCLIFlags can just be without the "true". See what happens on that. Hopefully you don't even get the error! (or at least you get a reason)

@GrzegorzKozub
Copy link
Contributor Author

Thanks for looking into it. Still crashing. Seems like we're missing some object to string conversion for the logs.

all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
08:44:32.816 › File logging at /home/greg/.config/teams-for-linux/logs/main.log with level silly
08:44:32.817 › Console logging enabled with level silly
08:44:32.817 › Logger initialised
08:44:32.818 › configPath: /home/greg/.config/teams-for-linux
08:44:32.818 › configFile: {
  appIconType: 'light',
  disableNotificationSound: true,
  disableNotificationWindowFlash: true,
  disableNotifications: true,
  disableGpu: true,
  electronCLIFlags: [
    [ 'disable-features', 'WaylandFractionalScaleV1' ],
    [ 'enable-features', 'WaylandWindowDecorations' ],
    [ 'ozone-platform-hint', 'auto' ]
  ],
  followSystemTheme: true,
  optInTeamsV2: true,
  url: 'https://teams.microsoft.com/v2',
  spellCheckerLanguages: [ 'en', 'pl' ]
}
08:44:32.821 › Running under Wayland, switching to PipeWire...
08:44:32.821 › Disabling GPU support...
08:44:32.821 › Adding electron CLI flag 'disable-features' with value 'WaylandFractionalScaleV1'
08:44:32.821 › Adding electron CLI flag 'enable-features' with value 'WaylandWindowDecorations'
08:44:32.821 › Adding electron CLI flag 'ozone-platform-hint' with value 'auto'
08:44:33.141 › processArgs: [ '/opt/teams-for-linux/teams-for-linux' ]
08:44:33.142 › testing RegExp processArgs false
08:44:33.142 › Testing network using net.request() for https://teams.microsoft.com/v2
08:44:33.143 › Language codes en,pl set for spellchecker
08:44:33.342 › Network test successful with method https
08:44:33.573 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[29041:0826/084433.573977:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.NotSupported: This method is not part of the idle inhibition specification: https://specifications.freedesktop.org/idle-inhibit-spec/latest/
08:44:34.051 › did-frame-finish-load {} true
08:44:34.052 › did-finish-load
08:44:35.177 › Badge count set to '0'
08:44:35.189 › Badge count set to '0'
08:44:35.953 › Badge count set to '0'
08:44:37.482 › did-frame-finish-load {} false
08:44:37.641 › Badge count set to '1'
08:44:43.026 › Badge count set to '1'
08:44:43.715 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
08:44:46.830 › Badge count set to '1'
08:44:47.467 › render-process-gone with reason: 'undefined'.
08:44:47.467 › Event '[object Object]' and details '[object Object]'
08:44:47.467 › before-quit
08:44:47.467 › window close
08:44:47.470 › window closed
08:44:47.470 › will-quit
08:44:47.470 › quit

@IsmaelMartinez
Copy link
Owner

Can you try another packaging system? If that is not possible, then probably reach on the Arch forum, as it is maintained by someone else in https://aur.archlinux.org/packages/teams-for-linux . I will try to fix those objects but the reason been undefined probably means is just crashing.

@GrzegorzKozub
Copy link
Contributor Author

So after some refinement in #1385 the disableGpu option fixes render-process-gone that would happen for the following reason reported in electron/electron#32760.

[12567:0515/084946.403483:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[12567:0515/084952.397003:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[12567:0515/084958.220201:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!

Still struggling with this error but now seemingly for another reason. I propose to close this issue. I will open a separate one where I track my progress.

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

2 participants