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

Extension crashing on start after updating to latest version #916

Closed
siferati opened this issue Jul 11, 2023 · 6 comments · Fixed by #917
Closed

Extension crashing on start after updating to latest version #916

siferati opened this issue Jul 11, 2023 · 6 comments · Fixed by #917
Assignees
Labels
binary bug Something isn't working regression
Milestone

Comments

@siferati
Copy link

The extension stopped working after updating to the latest version today.
Seems something related with libc?

[Error - 3:12:13 PM] Restarting server failed
  Message: Pending response rejected since connection got disposed
  Code: -32097 
/home/tiago/.vscode/extensions/redhat.vscode-xml-0.26.0-linux-x64/server/lemminx-linux: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/tiago/.vscode/extensions/redhat.vscode-xml-0.26.0-linux-x64/server/lemminx-linux)
/home/tiago/.vscode/extensions/redhat.vscode-xml-0.26.0-linux-x64/server/lemminx-linux: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/tiago/.vscode/extensions/redhat.vscode-xml-0.26.0-linux-x64/server/lemminx-linux)
@rgrunber
Copy link
Member

rgrunber commented Jul 11, 2023

0.26.0 would be the first time we released (and built the binaries) on GitHub Actions. My guess is the build machines provisioned for GH Actions are probably much newer. Comparing the 2 binaries, it seems like the newer one requires GLIBC_2.34 for certain symbols that before were found on 2.2.5.

diff
--- /dev/fd/63	2023-07-11 08:30:30.551127674 -0400
+++ /dev/fd/62	2023-07-11 08:30:30.552127692 -0400
@@ -1,5 +1,5 @@
+0000000000000000 (GLIBC_2.2.5) __cxa_finalize
 0000000000000000 (GLIBC_2.2.5) _environ
-(GLIBC_2.12) pthread_setname_np 
 (GLIBC_2.14) memcpy 
 (GLIBC_2.15) posix_spawn 
 (GLIBC_2.17) clock_gettime 
@@ -13,9 +13,6 @@
 (GLIBC_2.2.5) close 
 (GLIBC_2.2.5) closedir 
 (GLIBC_2.2.5) connect 
-(GLIBC_2.2.5) dlclose 
-(GLIBC_2.2.5) dlopen 
-(GLIBC_2.2.5) dlsym 
 (GLIBC_2.2.5) dup 
 (GLIBC_2.2.5) dup2 
 (GLIBC_2.2.5) __environ 
@@ -70,7 +67,6 @@
 (GLIBC_2.2.5) kill 
 (GLIBC_2.2.5) lchown 
 (GLIBC_2.2.5) __libc_current_sigrtmax 
-(GLIBC_2.2.5) __libc_start_main 
 (GLIBC_2.2.5) lseek 
 (GLIBC_2.2.5) lseek64 
 (GLIBC_2.2.5) __lxstat64 
@@ -91,16 +87,9 @@
 (GLIBC_2.2.5) poll 
 (GLIBC_2.2.5) pread64 
 (GLIBC_2.2.5) pthread_attr_destroy 
-(GLIBC_2.2.5) pthread_attr_getguardsize 
-(GLIBC_2.2.5) pthread_attr_getstack 
 (GLIBC_2.2.5) pthread_attr_init 
 (GLIBC_2.2.5) pthread_attr_setdetachstate 
-(GLIBC_2.2.5) pthread_attr_setstacksize 
 (GLIBC_2.2.5) pthread_condattr_init 
-(GLIBC_2.2.5) pthread_create 
-(GLIBC_2.2.5) pthread_getattr_np 
-(GLIBC_2.2.5) pthread_join 
-(GLIBC_2.2.5) pthread_kill 
 (GLIBC_2.2.5) pthread_mutex_init 
 (GLIBC_2.2.5) pthread_mutex_lock 
 (GLIBC_2.2.5) pthread_mutex_unlock 
@@ -163,7 +152,19 @@
 (GLIBC_2.3.2) pthread_cond_init 
 (GLIBC_2.3.2) pthread_cond_timedwait 
 (GLIBC_2.3.2) pthread_cond_wait 
-(GLIBC_2.3.3) pthread_condattr_setclock 
+(GLIBC_2.32) pthread_getattr_np 
+(GLIBC_2.34) dlclose 
+(GLIBC_2.34) dlopen 
+(GLIBC_2.34) dlsym 
+(GLIBC_2.34) __libc_start_main 
+(GLIBC_2.34) pthread_attr_getguardsize 
+(GLIBC_2.34) pthread_attr_getstack 
+(GLIBC_2.34) pthread_attr_setstacksize 
+(GLIBC_2.34) pthread_condattr_setclock 
+(GLIBC_2.34) pthread_create 
+(GLIBC_2.34) pthread_join 
+(GLIBC_2.34) pthread_kill 
+(GLIBC_2.34) pthread_setname_np 
 (GLIBC_2.3.4) sched_getaffinity 
 (GLIBC_2.3.4) __xpg_strerror_r 
 (GLIBC_2.3) fgetxattr 

Update: Looks like https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread explains this.

"A downside of these changes is that we had to add many new GLIBC_2.34 symbol versions for existing functions."
"This new symbol version prevents applications that have been built against glibc 2.34 from launching on systems that have installed glibc 2.33 and earlier."

Looks like GH Actions has Ubuntu 20.04 which was released in 2020. Maybe we can try building on that for better compatibility.

What is your Linux distribution and version ? We should get a better idea of what versions would be losing support given this change.

rgrunber added a commit to rgrunber/vscode-xml that referenced this issue Jul 11, 2023
- Fixed redhat-developer#916
- Recent Linux distros include GLIBC 2.34, which broke compatibility
  with older versionss, so use Ubuntu 22.04 to have better support

Signed-off-by: Roland Grunberg <rgrunber@redhat.com>
rgrunber added a commit to rgrunber/vscode-xml that referenced this issue Jul 11, 2023
- Fixed redhat-developer#916
- Recent Linux distros include GLIBC 2.34, which broke compatibility
  with older versionss, so use Ubuntu 20.04 to have better support

Signed-off-by: Roland Grunberg <rgrunber@redhat.com>
@rgrunber
Copy link
Member

rgrunber commented Jul 11, 2023

I just tried using a ubuntu-20.04 runner and comparing to the previous (working) binary :

--- /dev/fd/63	2023-07-11 11:41:16.670294670 -0400
+++ /dev/fd/62	2023-07-11 11:41:16.671294696 -0400
@@ -1,3 +1,4 @@
+0000000000000000 (GLIBC_2.2.5) __cxa_finalize
 0000000000000000 (GLIBC_2.2.5) _environ
 (GLIBC_2.12) pthread_setname_np 
 (GLIBC_2.14) memcpy 

So I think this change could work! It looks like all the symbols maintained their earlier requirements.

Update: If you could try https://github.com/rgrunber/vscode-xml/releases/download/untagged-9ddcd1605a024802730f/vscode-xml-linux-x64-0.26.0-284.vsix and let me know if that fixes the issue that would be great. I created it by simply re-running the build with the following change : rgrunber@e6b6232

@rgrunber rgrunber added bug Something isn't working regression binary labels Jul 11, 2023
@siferati
Copy link
Author

@rgrunber Thanks for looking into the issue!

What is your Linux distribution and version ?

I'm on Ubuntu 20.04.6 LTS

If you could try https://github.com/rgrunber/vscode-xml/releases/download/untagged-9ddcd1605a024802730f/vscode-xml-linux-x64-0.26.0-284.vsix

I can't open this link, it returns 404 page not found

@rgrunber
Copy link
Member

I guess it would make sense that drafts are hidden 🤦 . I've published it in my fork. Could you try https://github.com/rgrunber/vscode-xml/releases/download/0.26.0/vscode-xml-linux-x64-0.26.0-284.vsix ?

@siferati
Copy link
Author

@rgrunber Thanks, I confirmed your version works on my pc :)

@rgrunber rgrunber self-assigned this Jul 12, 2023
rgrunber added a commit to rgrunber/vscode-xml that referenced this issue Jul 12, 2023
- Fixed redhat-developer#916
- Recent Linux distros include GLIBC 2.34, which broke compatibility
  with older versions, so use Ubuntu 20.04 to have better support

Signed-off-by: Roland Grunberg <rgrunber@redhat.com>
rgrunber added a commit that referenced this issue Jul 12, 2023
- Fixed #916
- Recent Linux distros include GLIBC 2.34, which broke compatibility
  with older versions, so use Ubuntu 20.04 to have better support

Signed-off-by: Roland Grunberg <rgrunber@redhat.com>
@rgrunber rgrunber added this to the 0.26.1 milestone Jul 12, 2023
@rgrunber
Copy link
Member

0.26.1 was recently published to the marketplaces. It should contain the needed fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binary bug Something isn't working regression
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants