unneon/icie

Can't run any commands

mikaelmello opened this issue · 6 comments

This is a tricky one, I can't seem to run any commands from 2 competitive programming extensions, both give me the same "failed" notification.

I took a screenshot of the console, I have no idea why it fails or if it is just me, thought you might want to take a look:

image

Also, I've built the extension locally and it works if I run it using the icie executable in the target, but not if I install with a custom vsix

I guess it's probably some issue with dynamic linking of outdated OpenSSL, as it has caused some issues in the past. Or actually, exit code 127 can mean "Command not found" as if it couldn't run the executable. I will try to check out if the build system doesn't handle some paths incorrectly. Or actually, 127 can also mean the OpenSSL issue. I added more logging which should most likely won't should narrow down the problem, so could you please try again with the new version?

Hey! I've actually found the problem yesterday, Ubuntu 16.04 ships with OpenSSL 1.0.2 while your linux binary tried to load libssl.so.1.1, so I downloaded and built that version (upgrading "officially" looks like it can break things).

I don't know which OS or Linux distro you're using, but perhaps you'd like to port evscode to a previous version of OpenSSL?

I checked on a VM, and if the plugin is built with libssl 1.1 it doesn't work on 16.04, but if it is built with 1.0, it doesn't work on 19.04. Ubuntu doesn't seem to have a good way to install 1.0 on 19.04 or 1.1 on 16.04. Weirdly enough, it supports both on 18.04(and so does Arch).

I think I will just use static linking. It's not an ideal solution, but at least it will work out of the box everywhere.

Apparently Ubuntu 16.04 also has glibc 2.23, but Rust seems to run on 2.25+. So it shouldn't work yet, and a switch to musl will be necessary.

Interestingly enough, I'm running wigh glibc 2.23 and it is working

The version of glibc selected as minimal depends on the build environment. I'm running 2.29 and it selects 2.25(not sure why), but built with 2.23 selects something older. So unless I used an older distro for packaging, it would still crash when installed from marketplace.