-
Notifications
You must be signed in to change notification settings - Fork 29.9k
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
“Unknown system error -75” nodejs fs.stat large files #19455
Comments
From
(not sure about arm, but on x64 Linux So, yes, this is the most likely cause… it might be a good idea to check whether your |
that is the output
i still not get it. it worked fine until it didn't. the only things i am doing on this pi is updating it from time to time (the usual apt-get update/upgrade/dist-upgrade) |
@filly82 Did you (intend to) install Node via your package manager or another way? (I think In any case, the |
i do not really care how to install node. i chose the easiest way back then with the script from deb.nodesource.com i've also tried the binaries from https://nodejs.org a few minutes ago, the same problem the only binaries i can execute on my raspberry pi are the armv7 ones. what do you mean with your last sentence that that binaries made their way onto my machine? i think that binaries were always on my machine since they are the only ones which work. and i know for sure that i had not have the problem with large files until a few days ago |
Those are 32-bit binaries, though. If you have an armv7 machine, you won’t be able to run 64-bit Node binaries, as I understand it. So I’m really not sure how this could have worked in the first place then… I suppose we could build Node with |
what i can say for sure is that my node app has been running for a few months and that i always had files bigger than 2gb. i am 100% sure that those files were correctly "stat"-ed until a few days ago. they must have, because I've worked with the results every day for the past few months i'll try to install an arm64 OS (unfortunately there are no stable distributions for the raspberry pi with 64bit support, i did not really knew that until that problem popped out). that would fix my problem, i think. but i am still wondering how it could work with the current constellation for a few months |
It is - at least, libuv is, and that's what makes the system call. @filly82 Can you post the output of |
the output is massive
|
@filly82 It failed with |
sorry, i am not familiar with strace am i doing it right? test.js is the test node script with just fs.statSync('myfile') |
i tried
|
Faulty logic in commit fdf7c2a ("build: split off tests into separate gyp file") accidentally disabled `-D_FILE_OFFSET_BITS=64` on Unices, breaking file operations on files > 2 GB on 32 bits platforms. Fixes: nodejs/node#19455
Thanks, I found the issue. Fix in libuv/libuv#1779. |
OK. So the Bug came with a libuv Update onto my system? |
In a way. Node.js bundles libuv. |
How come a downgrade on node 9.7.1 / 9.7.0 did not work? I am pretty sure that it did work a week ago when i had one of that Versions |
But great that you find out Something. Thanks for looking into it |
The next v9.x release with a bit of luck. Preempting the question of when: probably in a week or so. If that doesn't work for you, build node from source and apply the patch locally to |
Great thanks. Should i Close this then or leave it opened? |
It'll auto-close when the libuv PR is merged. |
Faulty logic in commit fdf7c2a ("build: split off tests into separate gyp file") accidentally disabled `-D_FILE_OFFSET_BITS=64` on Unices, breaking file operations on files > 2 GB on 32 bits platforms. Fixes: nodejs/node#19455 PR-URL: libuv#1779 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]>
Notable changes: - uv_fs_copyfile() adds support for copy-on-write behavior. - uv_relative_path() now uses the long directory name for handle->dirw. - File operations on files > 2 GB on 32-bit platforms are working again. - uv_fs_fchmod() on Windows works on files with the Archive flag cleared. Fixes: nodejs#19170 Fixes: nodejs#19455 Fixes: nodejs#12803 PR-URL: nodejs#19758 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
Notable changes: - uv_fs_copyfile() adds support for copy-on-write behavior. - uv_relative_path() now uses the long directory name for handle->dirw. - File operations on files > 2 GB on 32-bit platforms are working again. - uv_fs_fchmod() on Windows works on files with the Archive flag cleared. Fixes: #19170 Fixes: #19455 Fixes: #12803 PR-URL: #19758 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
Notable changes: - uv_fs_copyfile() adds support for copy-on-write behavior. - uv_relative_path() now uses the long directory name for handle->dirw. - File operations on files > 2 GB on 32-bit platforms are working again. - uv_fs_fchmod() on Windows works on files with the Archive flag cleared. Fixes: #19170 Fixes: #19455 Fixes: #12803 PR-URL: #19758 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
Is it possible to get this fix back-ported to Node 8.X LTS? We are still using node in a 32 bit linux environment that has to deal with files >2GB. Thanks! |
/cc @nodejs/libuv we had to stop at 1.19.2 due to incompatible changes in 1.20.0... tbh I can't remember exactly what they are but I think @cjihrig would know. Would you like to open another issue to track this? |
I think you're referring to #22814 and #21203. Both of those issues are fixed. A regression test for #22814 landed in #23051. #23053 fixed #21203, but it's marked as don't land on v10 and earlier. Now, that might be backportable since it reverts a semver major and the version of libuv can now be updated on those older branches (cc: @addaleax since that is her PR). |
I've opened a tracking issue #23833 |
Notable changes: - uv_fs_copyfile() adds support for copy-on-write behavior. - uv_relative_path() now uses the long directory name for handle->dirw. - File operations on files > 2 GB on 32-bit platforms are working again. - uv_fs_fchmod() on Windows works on files with the Archive flag cleared. Fixes: nodejs#19170 Fixes: nodejs#19455 Fixes: nodejs#12803 PR-URL: nodejs#19758 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
Notable changes: - uv_fs_copyfile() adds support for copy-on-write behavior. - uv_relative_path() now uses the long directory name for handle->dirw. - File operations on files > 2 GB on 32-bit platforms are working again. - uv_fs_fchmod() on Windows works on files with the Archive flag cleared. Backport-PR-URL: #24103 Fixes: #19170 Fixes: #19455 Fixes: #12803 PR-URL: #19758 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
I don't know what happened on my system (raspberry pi, armhf, latest nodejs version) but since a few days I cannot fs.stat a file that is larger than 2gb
I am always getting the following error
`
fs.js:972
binding.stat(pathModule.toNamespacedPath(path));
^
`
I know for sure that it worked a few days ago. it's like I'm suddenly on a 32bit system (or node or whatever).
I thought it was the current nodejs version 9.8.0, but i've tested it with 9.7.1 and 9.7.0 and it's the same.
Does anyone have any idea what is wrong? :(
The text was updated successfully, but these errors were encountered: