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

stringbytes-external fails on AIX. #3303

Closed
mhdawson opened this issue Oct 9, 2015 · 12 comments
Closed

stringbytes-external fails on AIX. #3303

mhdawson opened this issue Oct 9, 2015 · 12 comments
Labels
test Issues and PRs related to the tests.

Comments

@mhdawson
Copy link
Member

mhdawson commented Oct 9, 2015

This test was recently updated as part of #3005

and it now fails on AIX:

not ok 697 test-stringbytes-external.js
#buffer.js:98
#    const ui8 = new Uint8Array(size);
#                ^
#
#RangeError: Invalid array buffer length
#    at new ArrayBuffer (native)
#    at new Uint8Array (native)
#    at allocate (buffer.js:98:17)
#    at new Buffer (buffer.js:49:12)
#    at /scratch/jenkins-local/workspace/convergance-test-aix/arch/ppc64/build/build/gcc48/gcc48/os/aix/node/test/parallel/test-stringbytes-external.js:125:16
#    at Object. (/scratch/jenkins-local/workspace/convergance-test-aix/arch/ppc64/build/build/gcc48/gcc48/os/aix/node/test/parallel/test-stringbytes-external.js:178:3)
#    at Module._compile (module.js:425:26)
#    at Object.Module._extensions..js (module.js:432:10)
#    at Module.load (module.js:356:32)
#    at Function.Module._load (module.js:311:12)
  ---
@mhdawson
Copy link
Member Author

mhdawson commented Oct 9, 2015

@evanlucas any thoughts

@mhdawson
Copy link
Member Author

mhdawson commented Oct 9, 2015

@jasnell FYI

@Fishrock123
Copy link
Contributor

cc @trevnorris

@Trott
Copy link
Member

Trott commented Oct 9, 2015

I suspect I'll be fixing this as part of #3287 although I don't think that specific issue is fixed yet.

@evanlucas
Copy link
Contributor

@Trott will that actually fix this though? This is failing on the initial allocation of buf0 (https://github.com/nodejs/node/blob/master/test/parallel/test-stringbytes-external.js#L125). Why would it throw there, when it passes the try/catch that allocates a larger buffer?

@Trott
Copy link
Member

Trott commented Oct 9, 2015

@evanlucas Yeah, I realized I was mistaken and edited my comment to backtrack a bit...maybe I need to backtrack more...

@trevnorris
Copy link
Contributor

Problem probably is that v8 doesn't bother to GC after the first large allocation, then the subsequent malloc() fails since the needed memory hasn't been handed back.

@Trott I'd suggest two things. Once is that we force GC after the try/catch. Second is to possibly also wrap the second allocation in a try/catch.

@mhdawson How much memory do those machines have? We're allocating under 1GB for the test.

@mscdex mscdex added the test Issues and PRs related to the tests. label Oct 9, 2015
@Trott
Copy link
Member

Trott commented Oct 10, 2015

@mhdawson In #3287, this test file is split up into five different test files. Can you run that PR on AIX and confirm that all but one of the stringbytes test files still fail (which is what I suspect) or not? (Do we have AIX on ci.nodejs.org and I just need to know the special secret handshake to get the CI to run on AIX?)

@jasnell
Copy link
Member

jasnell commented Oct 11, 2015

I don't want a failing test to hold up v4.2.0 so if we can't get a fix in for this by tomorrow we should likely just revert this change in v4.x

@Fishrock123
Copy link
Contributor

I'm not sure we officially support AIX yet (no CI), so I move we don't hold up releases for any significant length of time on it until it is.

@jasnell
Copy link
Member

jasnell commented Oct 11, 2015

Definitely don't want to hold it up, but if a fix is trivial, then there's no reason not to land it before we cut. Hopefully #3287 does the job and we can just pick it over.

@mhdawson
Copy link
Member Author

After the split they all did fail except:

for ok 699 test-stringbytes-external.js

Turns out that it was the ulimit set for AIX. On linux by default the ulimit is high enough but the same is not true on AIX. Changing the ulimit seems resolves and all of the tests are passing.

Closing this issues as its related to machine config as opposed to the tests themselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test Issues and PRs related to the tests.
Projects
None yet
Development

No branches or pull requests

7 participants