duckdb-node icon indicating copy to clipboard operation
duckdb-node copied to clipboard

can't install prebuilt binary, server response is 403 Forbidden

Open azmy60 opened this issue 1 year ago • 10 comments

Hey!

Using this repo, I got 403 forbidden error after running yarn install:

image

I'm not sure if anyone else also experienced this, or my IP region is not allowed for some reason?

azmy60 avatar Jun 03 '24 10:06 azmy60

How did you got that? v0.0.2 looks wrong, need to double check.

carlopi avatar Jun 03 '24 11:06 carlopi

Links should be in the form: duckdb-v0.10.2-dev5.0-node-v108-linux-x64.tar.gz

Can you share some more context?

carlopi avatar Jun 03 '24 11:06 carlopi

I cloned this repo, and I just simply run yarn. Also tried npm install after I realized it uses package-lock.json, but still got the same result.

image

NPM: 9.5.1 Node: 18.16.0

azmy60 avatar Jun 03 '24 14:06 azmy60

So the version in package.json is 0.0.2-dev5.0. Changing it to 0.10.2-dev5.0 fixes it for me.

https://github.com/duckdb/duckdb-node/blob/a5ec8f3f48c0f8a74007f95c06ac8908d0ca382e/package.json#L5

I feel like this could be the reason why when I installed duckdb last time it took 20 minutes or so? https://github.com/duckdb/duckdb-node/issues/70

azmy60 avatar Jun 03 '24 14:06 azmy60

This Gitlab action just got a 403 from duckdb-node.s3.amazonaws.com/duckdb-v0.10.0-node-v127-linux-x64.tar.gz, output this line:

Pre-built binaries not installable for [email protected] and [email protected] (node-v127 ABI, glibc) (falling back to source compile with node-gyp) 

and has been slowly compiling for 18 mins. This job usually finishes in under a minute.

Update: previous successful run fetched from duckdb-node.s3.amazonaws.com/duckdb-v0.10.0-node-v120-linux-x64.tar.gz, which also 200's for me now.

Seems like maybe my Gitlab runner is using a newer Node today, and there's not a v0.10.0 for that version? Not sure how to interpret node-v120 vs. node-v127, but the error message above implies the latter corresponds to [email protected]?

ryan-williams avatar Jun 04 '24 02:06 ryan-williams

So it looks like node-pre-gyp looks for version in package.json and we need a way to match that and the actual pre-built binaries version. If that's the issue, I have two solutions I can think of:

  1. Just update the version in package.json to match with the binaries version.
  2. Or specify the version when building the binaries following the package.json version, like how grpc works on their build script.
  • build version matching package.json version https://github.com/grpc/grpc-node/blob/a4c2106e63064070f3b9e580b2d1c74b0a9503a4/packages/grpc-tools/build_binaries.sh#L24

azmy60 avatar Jun 04 '24 05:06 azmy60

Ok. It works fine if I install duckdb from npm, but the weird thing is the version in npm is different from this repo.

package.json in npmjs.com

package.json in npmjs.com

package.json in duckdb-node repo

package.json in duckdb-node repo

azmy60 avatar Jun 10 '24 07:06 azmy60

the weird thing is the version in npm is different from this repo.

Yeah, this is really strange to me.

We're blocked from using duckdb because we can't install it on our linux servers without getting an error

npm error command sh -c node-pre-gyp install --fallback-to-build

from what we can tell this is directly connected to this issue

Pertempto avatar Jun 12 '24 15:06 Pertempto

I am experiencing a similar problem... I am unable to install duckdb with npm in Ubuntu 24.04:

gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info spawn make

First I had to run it in a python 2.7 to be able to run node-pre-gyp

Then I get:

ERR! install response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v0.0.2-dev5.0-node-v109-linux-x64.tar.gz This is triggering a full build but failing at ICU extension compilation:

../src/duckdb/extension/icu/third_party/icu/i18n/region.cpp: In static member function ‘static const icu_66::Region* icu_66::Region::getInstance(int32_t, UErrorCode&)’:
../src/duckdb/extension/icu/third_party/icu/i18n/region.cpp:515:9: error: ‘ICU_Utility’ has not been declared
  515 |         ICU_Utility::appendNumber(id, code, 10, 1);
      |         ^~~~~~~~~~~
In file included from ../src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp:333:
../src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp: In member function ‘icu_66::VTimeZone& icu_66::VTimeZone::operator=(const icu_66::VTimeZone&)’:
../src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp:1004:33: warning: implicitly-declared ‘icu_66::BasicTimeZone& icu_66::BasicTimeZone::operator=(const icu_66::BasicTimeZone&)’ is deprecated [-Wdeprecated-copy]
 1004 |         BasicTimeZone::operator=(right);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../src/duckdb/extension/icu/third_party/icu/i18n/basictz.cpp:31:1: note: because ‘icu_66::BasicTimeZone’ has user-provided ‘icu_66::BasicTimeZone::BasicTimeZone(const icu_66::BasicTimeZone&)’
   31 | BasicTimeZone::BasicTimeZone(const BasicTimeZone& source)
      | ^~~~~~~~~~~~~
make: *** [duckdb.target.mk:535: Release/obj.target/duckdb/src/duckdb/ub_extension_icu_third_party_icu_i18n.o] Error 1
make: Leaving directory '/home/user/datadev/fullstack/duckdb-node/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/nodejs/node-gyp/lib/build.js:203:23)
gyp ERR! stack     at ChildProcess.emit (node:events:517:28)
gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:292:12)
gyp ERR! System Linux 6.8.0-45-generic
gyp ERR! command "/usr/bin/node" "/usr/share/nodejs/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/home/user/datadev/fullstack/duckdb-node/lib/binding/duckdb.node" "--module_name=duckdb" "--module_path=/home/user/datadev/fullstack/duckdb-node/lib/binding" "--napi_version=9" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v109"
gyp ERR! cwd /home/user/datadev/fullstack/duckdb-node
gyp ERR! node -v v18.19.1
gyp ERR! node-gyp -v v9.3.0
gyp ERR! not ok 

I have tried to install it from source but I was only able to complete the build by removing all the icu files from binding.gyp. The resulting library does not work due to missing ICU symbols.

I am able to install duckdb with ICU extension in this same system... The problem is only happening with duckdb-node.

Thanks!

pajarom avatar Sep 20 '24 11:09 pajarom

Hello. In my case, (Ubuntu 24.04, node version 18.19.1, npm version 9.2.0.)

if the webstorm automatically proceeds with npm installation, it will no longer proceed in the following state. (##################) ⠧ reify:duckdb: timing reifyNode:node_modules/@observablehq/plot Completed in 4911ms

After a long time, the following error occurs. (If I try to install dukdb directly with the npm install [email protected] command, there is an error immediately below without waiting time.)

npm ERR! Failed to execute '/usr/bin/node /usr/share/nodejs/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/home/webstorm_workspace/node_modules/duckdb/lib/binding/duckdb.node --module_name=duckdb --module_path=/home/webstorm_workspace/node_modules/duckdb/lib/binding --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v109' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using [email protected] npm ERR! node-pre-gyp info using [email protected] | linux | x64 npm ERR! node-pre-gyp info check checked for "/home/webstorm_workspace/node_modules/duckdb/lib/binding/duckdb.node" (not found) npm ERR! node-pre-gyp http GET https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz npm ERR! node-pre-gyp ERR! install response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v109 ABI, glibc) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp WARN Hit error response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz

ahj3859 avatar Oct 09 '24 01:10 ahj3859