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

Please rename "sunos" binaries because of broken ABI #7115

Closed
esproul opened this issue Jun 2, 2016 · 7 comments
Closed

Please rename "sunos" binaries because of broken ABI #7115

esproul opened this issue Jun 2, 2016 · 7 comments
Labels
build Issues and PRs related to build files or the CI. smartos Issues and PRs related to the SmartOS platform.

Comments

@esproul
Copy link

esproul commented Jun 2, 2016

  • Version: v4.4.5
  • Platform: OmniOS r151014
  • Subsystem: npm

Downloaded https://nodejs.org/dist/v4.4.5/node-v4.4.5-sunos-x64.tar.xz but found that npm issues writev() syscalls with more than IOV_MAX vectors. I believe this is because the "sunos" binaries are built on SmartOS which has changed IOV_MAX as of TritonDataCenter/illumos-joyent@603ce4f. This change has not been upstreamed to illumos, and so it breaks ABI compatibility with all other illumos distros and probably Oracle Solaris as well.

While running under truss and doing npm install <some module>, I observed:
/7: writev(15, 0x02470090, 18) Err#22 EINVAL

IOV_MAX in illumos is 16, per /usr/include/limits.h.

While it's fine for there to be pre-built binaries for SmartOS, they should be labeled as such and not "sunos" so that folks don't get the idea they could run these binaries on illumos or Solaris.

@mscdex mscdex added smartos Issues and PRs related to the SmartOS platform. build Issues and PRs related to build files or the CI. labels Jun 2, 2016
@MylesBorins
Copy link
Contributor

/cc @nodejs/build

@rvagg
Copy link
Member

rvagg commented Jun 3, 2016

Working on it, well @jbergstroem is poking at it at least, we need to find a provider who can give us Solaris boxes to test and build on in order to fix the problem with Solaris compatibility. Know anyone that can help?

As for the name, we're historically tied to it for now, but I'd be more than happy to push to have "smartos" and "sunos" binaries when we have "sunos" compatible binaries to share, until then, the changing from the historical precedent is harder to justify, even though it doesn't make a ton of sense.

https://nodejs.org/metrics/summaries/os.png it's super-low on the download count, even SmartOS users get it from pkg, I don't know who is downloading it other than mirrors and mistaken Solaris users.

@rvagg rvagg closed this as completed Jun 3, 2016
@HeinrichHartmann
Copy link

As for finding Solaris dev boxes: OmniOS boxes are available via Vagrant at

https://atlas.hashicorp.com/omnios

there are also AMI images for AWS/EC2 https://omnios.omniti.com/wiki.php/Installation#IntheCloud

@esproul
Copy link
Author

esproul commented Jun 3, 2016

@rvagg Thanks for looking into it. Understood about the name. As Heinrich noted, OmniOS is a pretty vanilla illumos distro with very few modifications. I have tested and found that node binaries built on OmniOS r151014 (current LTS) work fine on SmartOS.

@rvagg
Copy link
Member

rvagg commented Jun 8, 2016

As for finding Solaris dev boxes: OmniOS boxes are available via Vagrant at

We'd have to run VMs in VMs to make this happen, not ideal and also an administrative overhead I'm not sure we want to be locked in to for an OS that would have very low downloads.

there are also AMI images for AWS/EC2 https://omnios.omniti.com/wiki.php/Installation#IntheCloud

AWS isn't one of our donors for build infrastructure but you're welcome to try and make convince them to do so.

@misterdjules
Copy link

@rvagg

even SmartOS users get it from pkg, I don't know who is downloading it other than mirrors and mistaken Solaris users.

I know for a fact that some large corporate users get node binaries for SmartOS from nvm, which is why I fixed nvm on SmartOS. Some of these numbers might come from these nvm users.

@esproul

OmniOS is a pretty vanilla illumos distro with very few modifications. I have tested and found that node binaries built on OmniOS r151014 (current LTS) work fine on SmartOS.

I would suggest not to build binaries targeted to SmartOS on OmniOS. The fact that building node on version X of OmniOS works on a set of versions of SmartOS may be a coincidence, because as far as I know they are not designed to be ABI compatible. Instead I would suggest building SmartOS binaries on SmartOS, and any other binaries for any other platform on these platforms.

@basil
Copy link

basil commented Jan 15, 2017

We were using the "sunos" packages from nodejs.org on OmniOS here at Delphix until they stopped working on OmniOS due to this issue. They were convenient because OmniOS doesn't have a nodejs package in the core distribution, and because the nodejs package in the OmniTI managed services repository is of version 4.3.1, while the latest LTS version is version 6.9.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. smartos Issues and PRs related to the SmartOS platform.
Projects
None yet
Development

No branches or pull requests

7 participants