Snowflake-Labs / schemachange

A Database Change Management tool for Snowflake
Apache License 2.0
481 stars 219 forks source link

libcrypto issue on Bitbucket pipeline #204

Open exper-test opened 8 months ago

exper-test commented 8 months ago

We have a bitbucket pipeline where we have been using schema change for about 1 year. We have been getting the following error since October 12th. (We connect to Snowflake with RSA Key.) Is there any update or changes regarding this?

oscrypto.errors.LibraryNotFoundError: Error detecting the version of libcrypto

Here is the code in bicbucket.yaml

test1:
  - step:
      name: 'Deploy to Test1'
      deployment: test1
      caches:
        - pip
      script:
        - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
        - pip install schemachange
        - schemachange --config-folder CICD/TEST1
karimpasserelle commented 8 months ago

I'm getting the same error. I did some research and found out that this issue occurs due to a combination of the following conditions involving dependencies of the Snowflake Python Connector:

Use of OpenSSL 3.0.10 or later 3.0.x (with x >= 10), and Use of Python PyPI package oscrypto version 1.3.0 or earlier

Currently, Schema Change uses oscrypto version 1.3.0, so this has to be changed, but I'm not sure where to apply this change.

exper-test commented 8 months ago

I found a workaround solution like below. If you install oscrypto from this link like below before schemachange installation. It's working.

      script:
        - pip install https://github.com/wbond/oscrypto/archive/d5f3437ed24257895ae1edd9e503cfb352e635a8.zip
        - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
        - schemachange --config-folder TEST1

ref: https://community.snowflake.com/s/article/Python-Connector-fails-to-connect-with-LibraryNotFoundError-Error-detecting-the-version-of-libcrypto