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

Memory issues detected by hardened malloc - libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) #21805

Closed
Nurmagoz opened this issue Apr 14, 2022 · 3 comments

Comments

@Nurmagoz
Copy link

Nurmagoz commented Apr 14, 2022

Steps to reproduce

  1. Install element using element repository on debian (Although it seems to only say its for nightly, But i have the stable version which is element-desktop version 1.10.9)
  2. Install & Run hardened malloc, If you want it from repository then add kicksecure repo:

curl --tlsv1.3 --proto =https --max-time 180 --output ~/derivative.asc https://www.kicksecure.com/derivative.asc

sudo mv ~/derivative.asc /usr/share/keyrings/derivative.asc

echo "deb [signed-by=/usr/share/keyrings/derivative.asc] https://deb.kicksecure.com bullseye main contrib non-free" | sudo tee /etc/apt/sources.list.d/derivative.list

sudo apt update && sudo apt install hardened-malloc

Run it against element-desktop:

LD_PRELOAD='/usr/lib/libhardened_malloc.so/libhardened_malloc.so' element-desktop

Will Show: (Multiple Errors will be shown)

user@host:~$ LD_PRELOAD='/usr/lib/libhardened_malloc.so/libhardened_malloc.so' element-desktop 
/home/user/.config/Element exists: no
/home/user/.config/Riot exists: yes
Using legacy user data path: /home/user/.config/Riot
Starting auto update with base URL: https://packages.element.io/desktop/update/
Auto update not supported on this platform
Fetching translation json for locale: en_EN
Changing application language to en-us
Fetching translation json for locale: en-us
Could not fetch translation json for locale: 'en-us' Error: Cannot find module './i18n/strings/en-us.json'
Require stack:
- /opt/Element/resources/app.asar/lib/language-helper.js
- /opt/Element/resources/app.asar/lib/tray.js
- /opt/Element/resources/app.asar/lib/electron-main.js
- 
    at Module._resolveFilename (node:internal/modules/cjs/loader:940:15)
    at Function.n._resolveFilename (node:electron/js2c/browser_init:249:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at AppLocalization.fetchTranslationJson (/opt/Element/resources/app.asar/lib/language-helper.js:76:20)
    at /opt/Element/resources/app.asar/lib/language-helper.js:89:39
    at Array.forEach (<anonymous>)
    at AppLocalization.setAppLocale (/opt/Element/resources/app.asar/lib/language-helper.js:88:17) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/opt/Element/resources/app.asar/lib/language-helper.js',
    '/opt/Element/resources/app.asar/lib/tray.js',
    '/opt/Element/resources/app.asar/lib/electron-main.js',
    undefined
  ]
}
Resetting the UI components after locale change
Resetting the UI components after locale change
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[16050:0414/205255.117966:ERROR:viz_main_impl.cc(188)] Exiting GPU process due to errors during initialization
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[16095:0414/205255.158331:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
Changing application language to en-us
Fetching translation json for locale: en-us
Could not fetch translation json for locale: 'en-us' Error: Cannot find module './i18n/strings/en-us.json'
Require stack:
- /opt/Element/resources/app.asar/lib/language-helper.js
- /opt/Element/resources/app.asar/lib/tray.js
- /opt/Element/resources/app.asar/lib/electron-main.js
- 
    at Module._resolveFilename (node:internal/modules/cjs/loader:940:15)
    at Function.n._resolveFilename (node:electron/js2c/browser_init:249:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at AppLocalization.fetchTranslationJson (/opt/Element/resources/app.asar/lib/language-helper.js:76:20)
    at /opt/Element/resources/app.asar/lib/language-helper.js:89:39
    at Array.forEach (<anonymous>)
    at AppLocalization.setAppLocale (/opt/Element/resources/app.asar/lib/language-helper.js:88:17) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/opt/Element/resources/app.asar/lib/language-helper.js',
    '/opt/Element/resources/app.asar/lib/tray.js',
    '/opt/Element/resources/app.asar/lib/electron-main.js',
    undefined
  ]
}
Resetting the UI components after locale change
Error getting the event index passphrase out of the secret store [Error: The name org.freedesktop.secrets was not provided by any .service files]
user@host:~$ 

  1. Also run this command while leaving element running:

journalctl --boot | grep -i error

  1. You will find the following errors:
Apr 13 18:18:18 host qubes.StartApp+element-desktop-dom0[2306]: libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Apr 13 18:18:18 host qubes.StartApp+element-desktop-dom0[2306]: [2345:0413/181818.828487:ERROR:viz_main_impl.cc(188)] Exiting GPU process due to errors during initialization
Apr 13 18:18:18 host qubes.StartApp+element-desktop-dom0[2306]: libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Apr 13 18:18:18 host qubes.StartApp+element-desktop-dom0[2306]: [2384:0413/181818.982061:ERROR:viz_main_impl.cc(188)] Exiting GPU process due to errors during initialization
Apr 13 18:18:19 host qubes.StartApp+element-desktop-dom0[2306]: libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Apr 13 18:18:19 host qubes.StartApp+element-desktop-dom0[2306]: [2404:0413/181819.020961:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.

I dont claim to be expert at what it means/how to fix but thought its a good idea to let you guys know.

(It would be nice if you add hardened-malloc to your testing environment/framework like what OpenSSH did, If you want to catch errors yourself)

Thx!

Outcome

What did you expect?

No errors

What happened instead?

There are Errors

Operating system

Debian Gnu/Linux

Application version

1.10.9

How did you install the app?

https://element.io/get-started#nightly

Homeserver

N/A

Will you send logs?

Yes (if required)

@SimonBrandner
Copy link
Contributor

Some of the errors are duplicate of element-hq/element-desktop#871

@qua3k
Copy link

qua3k commented Apr 17, 2022

This isn’t memory corruption caught by hardened_malloc. I’ve seen the same errors when I’m building/testing Chromium and it’s something to do with libva/GPU drivers, which is likely the case if you’re in a VM. It doesn’t really make sense to file this under Element-Desktop because it isn’t an issue on their side but rather an issue with your environment.

The suggestion to test with hardened_malloc doesn’t really make sense because Chromium uses PartitionAlloc internally and doesn’t really call into libc malloc. Kicksecure has attempted to override it with with LD_PRELOAD but I don’t think it’s actually working due to the incomplete replacement of symbols, resulting in hardened_malloc throwing errors when it’s called but hasn’t actually allocated anything.

@Nurmagoz
Copy link
Author

Ah i see, Appreciated for the clarification. Thank You

Closing the ticket.

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

No branches or pull requests

3 participants