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

32Bit Linux VS Code Distributed With libjunixsocket-native-2.0.4.so Built For 64Bit amd64 #201

Closed
egamma opened this issue May 5, 2017 · 1 comment
Assignees
Labels

Comments

@egamma
Copy link

egamma commented May 5, 2017

From @limey-git on May 5, 2017 12:53

  • VSCode Version: 1.12.0
  • OS Version: Ubuntu 12.04 LTS [arch=i386]

Steps to Reproduce:

  1. Download and install latest 32 Bit version of vscode for Debian Linux.
  2. Launch vscode and install the 'Language Support for Java(TM) by Red Hat' extension.
  3. Restart vscode.

On restart, error messages appear; reporting that components required for the 'Language Support for Java(TM) by Red Hat' extension, failed to initiate.

Reading and analyzing the stacktrace in vscode's log files, a "Library 'libjunixsocket-native-2.0.4.so' not found!" error entry identifies the root cause. That library was tracked down to '[user.home.dir]/.vscode/extensions/redhat.java-0.3.0/server/config_linux/org.eclipse.osgi/45/0/.cp/lib/junixsocket-native-common-2.0.4.jar'.

This is a listing of the native libraries contained in 1.12.0's 'junixsocket-native-common-2.0.4.jar'...

lib/x86_64-MacOSX-gpp/
lib/x86_64-MacOSX-gpp/jni/
lib/x86_64-MacOSX-gpp/jni/history.xml
lib/x86_64-MacOSX-gpp/jni/libjunixsocket-native-2.0.4.dylib
lib/x86_64-MacOSX-gpp/jni/libjunixsocket-native-2.0.4.jnilib
lib/amd64-Linux-gpp/
lib/amd64-Linux-gpp/jni/
lib/amd64-Linux-gpp/jni/libjunixsocket-native-2.0.4.so
lib/amd64-Linux-gpp/jni/history.xml

Notice that the only Linux library distributed in the 32Bit 1.12.0 release, is the one built for the amd64 [64Bit] architecture! It is therefore incompatible with the 32Bit Linux on which 32Bit versions of vscode are meant to be installed.

It was obvious to me after seeing the above files in the 1.12.20 jar, that the system — knowing that it is running on an i386 OS — is attempting to locate a library built for an i386 architecture. But there isn't one distributed in the 1.12.20 release. Hence the "Library 'libjunixsocket-native-2.0.4.so' not found!" error.

I downloaded the junixsocket-parent-2.0.4 source from here and built it on my 32bit Ubuntu machine, using maven.

I then replaced the original amd64 64Bit 'junixsocket-native-common-2.0.4.jar' with the 32Bit one that I built from the source. Details of the steps I took are listed here.

On my Ubuntu 12_04 LTS machine, my freshly-built 32Bit [i386] replacement 'libjunixsocket-native-2.0.4.so' library and jar files, perfectly resolved the defect described in detail here.

Copied from original issue: microsoft/vscode#26028

@fbricon
Copy link
Collaborator

fbricon commented May 5, 2017

We should probably get rid of junixsocket by either switching to stdio or plain socket, as I don't want us to maintain a 32b build of that jar.

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

No branches or pull requests

3 participants