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

fix(internals): avoid crash in prisma version, rename 'getVersion' -> 'getEngineVersion' #13737

Merged
merged 16 commits into from
Jun 27, 2022

Conversation

jkomyno
Copy link
Contributor

@jkomyno jkomyno commented Jun 9, 2022

Closes #14014.

@jkomyno jkomyno added this to the 4.0.x milestone Jun 9, 2022
@jkomyno
Copy link
Contributor Author

jkomyno commented Jun 10, 2022

Integration PR: #13973

@jkomyno
Copy link
Contributor Author

jkomyno commented Jun 10, 2022

Example prisma --version output in a machine without a proper openssl installation:

Error: Unable to require(`/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/libquery_engine-debian-openssl-1.1.x.so.node`)
 libssl.so.1.1: cannot open shared object file: No such file or directory
    at load (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89433:11)
    at getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89448:16)
Error: Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version
/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    at makeError (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:3673:18)
    at handlePromise (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:4426:33)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89451:20) {
  shortMessage: 'Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version',
  command: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version',
  escapedCommand: '"/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x" --version',
  exitCode: 127,
  signal: undefined,
  signalDescription: undefined,
  stdout: '',
  stderr: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory',
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
Error: Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version
/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    at makeError (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:3673:18)
    at handlePromise (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:4426:33)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89451:20) {
  shortMessage: 'Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version',
  command: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version',
  escapedCommand: '"/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x" --version',
  exitCode: 127,
  signal: undefined,
  signalDescription: undefined,
  stdout: '',
  stderr: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory',
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
prisma                  : 3.16.0-integration-avoid-crash-in-prisma-version.1
@prisma/client          : Not found
Current platform        : debian-openssl-1.1.x
Query Engine (Node-API) : E_CANNOT_RESOLVE_VERSION (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/libquery_engine-debian-openssl-1.1.x.so.node)
Introspection Engine    : E_CANNOT_RESOLVE_VERSION (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x)
Migration Engine        : E_CANNOT_RESOLVE_VERSION (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x)
Format Binary           : prisma-fmt 21b5f322ad1c14a1b28b18e805330f02df46f643 (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/prisma-fmt-debian-openssl-1.1.x)
Default Engines Hash    : 21b5f322ad1c14a1b28b18e805330f02df46f643
Studio                  : 0.462.0

@jkomyno jkomyno changed the title fix(sdk): rename 'getVersion' -> 'getBinaryVersion' fix(sdk): avoid crash in prisma version, rename 'getVersion' -> 'getBinaryVersion' Jun 10, 2022
@jkomyno jkomyno marked this pull request as ready for review June 13, 2022 09:12
@jkomyno jkomyno requested a review from a team June 13, 2022 09:12
@jkomyno jkomyno requested a review from Jolg42 as a code owner June 13, 2022 09:12
@jkomyno jkomyno requested review from millsp and removed request for a team June 13, 2022 09:12
packages/cli/src/Version.ts Outdated Show resolved Hide resolved
@jkomyno jkomyno enabled auto-merge (squash) June 17, 2022 09:55
@jkomyno jkomyno force-pushed the fix/avoid-crash-in-prisma-version branch from f3f14b1 to 444b647 Compare June 22, 2022 12:47
@jkomyno jkomyno requested a review from Jolg42 June 24, 2022 19:47
@jkomyno jkomyno changed the title fix(sdk): avoid crash in prisma version, rename 'getVersion' -> 'getBinaryVersion' fix(sdk): avoid crash in prisma version, rename 'getVersion' -> 'getEngineVersion' Jun 24, 2022
@jkomyno
Copy link
Contributor Author

jkomyno commented Jun 24, 2022

@janpio your comment should be moved to this PR.

@jkomyno jkomyno requested a review from janpio June 24, 2022 21:31
@jkomyno jkomyno changed the title fix(sdk): avoid crash in prisma version, rename 'getVersion' -> 'getEngineVersion' fix(internals): avoid crash in prisma version, rename 'getVersion' -> 'getEngineVersion' Jun 27, 2022
Copy link
Member

@Jolg42 Jolg42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏼 🚢

@jkomyno jkomyno merged commit 3718bfa into main Jun 27, 2022
@jkomyno jkomyno deleted the fix/avoid-crash-in-prisma-version branch June 27, 2022 08:50
@jkomyno
Copy link
Contributor Author

jkomyno commented Jun 27, 2022

Closes #14014.

@jkomyno
Copy link
Contributor Author

jkomyno commented Jun 27, 2022

Example output of prisma --version when openssl is ok:

prisma                  : 3.16.0-integration-avoid-crash-in-prisma-version.3
@prisma/client          : Not found
Current platform        : darwin-arm64
Query Engine (Node-API) : libquery-engine 81a0ee489e5f8c8ce98440028ea9050092430503 (at .nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/libquery_engine-darwin-arm64.dylib.node)
Migration Engine        : migration-engine-cli 81a0ee489e5f8c8ce98440028ea9050092430503 (at .nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-darwin-arm64)
Introspection Engine    : introspection-core 81a0ee489e5f8c8ce98440028ea9050092430503 (at .nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-darwin-arm64)
Format Binary           : prisma-fmt 81a0ee489e5f8c8ce98440028ea9050092430503 (at .nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/prisma-fmt-darwin-arm64)
Default Engines Hash    : 81a0ee489e5f8c8ce98440028ea9050092430503
Studio                  : 0.464.0

Example output of prisma --version when openssl isn't properly installed:

Error: Unable to require(`/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/libquery_engine-debian-openssl-1.1.x.so.node`)
 libssl.so.1.1: cannot open shared object file: No such file or directory
    at load (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89423:11)
    at getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89437:16)
Error: Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version
/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    at makeError (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:3675:18)
    at handlePromise (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:4428:33)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89440:20) {
  shortMessage: 'Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version',
  command: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x --version',
  escapedCommand: '"/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x" --version',
  exitCode: 127,
  signal: undefined,
  signalDescription: undefined,
  stdout: '',
  stderr: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory',
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
Error: Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version
/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    at makeError (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:3675:18)
    at handlePromise (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:4428:33)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async getBinaryVersion (/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/build/index.js:89440:20) {
  shortMessage: 'Command failed with exit code 127: /home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version',
  command: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x --version',
  escapedCommand: '"/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x" --version',
  exitCode: 127,
  signal: undefined,
  signalDescription: undefined,
  stdout: '',
  stderr: '/home/prisma/.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory',
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
prisma                  : 3.16.0-integration-avoid-crash-in-prisma-version.3
@prisma/client          : Not found
Current platform        : debian-openssl-1.1.x
Query Engine (Node-API) : E_CANNOT_RESOLVE_VERSION_FROM_ENGINE (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/libquery_engine-debian-openssl-1.1.x.so.node)
Migration Engine        : E_CANNOT_RESOLVE_VERSION_FROM_ENGINE (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/migration-engine-debian-openssl-1.1.x)
Introspection Engine    : E_CANNOT_RESOLVE_VERSION_FROM_ENGINE (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/introspection-engine-debian-openssl-1.1.x)
Format Binary           : prisma-fmt 81a0ee489e5f8c8ce98440028ea9050092430503 (at ../.nvm/versions/node/v16.15.1/lib/node_modules/prisma/node_modules/@prisma/engines/prisma-fmt-debian-openssl-1.1.x)
Default Engines Hash    : 81a0ee489e5f8c8ce98440028ea9050092430503
Studio                  : 0.464.0

@Jolg42
Copy link
Member

Jolg42 commented Jun 27, 2022

Was reverted in #14025 because of an unexpected problem with pkg test

Slack thread

@Jolg42 Jolg42 modified the milestones: 4.0.0, 4.1.0 Jun 27, 2022
Jolg42 added a commit that referenced this pull request Jun 27, 2022
…rsion' -> 'getBinaryVersion' (#13737)" (#14025)

This reverts commit 3718bfa.

Co-authored-by: Alexey Orlenko <alex@aqrln.net>
jkomyno added a commit that referenced this pull request Jul 4, 2022
* chore: try 1

* chore(internals): rename getVersion to getEngineVersion

* chore: try 2

* chore: try 3

* chore: try 4

* eureka

* Update packages/internals/src/engine-commands/getEnginesMetaInfo.ts

* ci: fix tests

* chore: renamed E_CANNOT_RESOLVE_VERSION

* cli: removed duplicate entry from version command

* cli: updated version snapshot

* chore: updated version snapshot to consider binary
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

prisma --version crashes if openssl isn't properly installed
2 participants