Uploaded image for project: 'Python Driver'
  1. Python Driver
  2. PYTHON-1924

PyPy 2.7 segfault running libbmongocrypt test suite

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • pymongocrypt-0.1
    • Affects Version/s: None
    • Component/s: pymongocrypt
    • Labels:
      None

      PyPy 2.7 consistently segfaults while running the libbmongocrypt test suite.

      $ /opt/python/pypy/bin/pypy setup.py test
      running test
      Searching for pymongo
      Best match: pymongo 3.8.0
      Processing pymongo-3.8.0-py2.7-linux-x86_64.egg
      
      Using /data/mci/libmongocrypt/bindings/python/.eggs/pymongo-3.8.0-py2.7-linux-x86_64.egg
      running egg_info
      writing pymongocrypt.egg-info/PKG-INFO
      writing dependency_links to pymongocrypt.egg-info/dependency_links.txt
      writing requirements to pymongocrypt.egg-info/requires.txt
      writing top-level names to pymongocrypt.egg-info/top_level.txt
      reading manifest file 'pymongocrypt.egg-info/SOURCES.txt'
      writing manifest file 'pymongocrypt.egg-info/SOURCES.txt'
      running build_ext
      test_libmongocrypt_version (test.test_binding.TestBinding) ... ok
      test_mongocrypt_binary_new (test.test_binding.TestBinding) ... ok
      test_mongocrypt_new (test.test_binding.TestBinding) ... ok
      test_mongocrypt_status_new (test.test_binding.TestBinding) ... ok
      test_pymongocrypt_version (test.test_binding.TestBinding) ... ok
      test_decrypt (test.test_mongocrypt.TestMongoCrypt) ... *** glibc detected *** /opt/python/pypy/bin/pypy: malloc(): memory corruption: 0x0000000002465660 ***
      ======= Backtrace: =========
      /lib64/libc.so.6(+0x75e5e)[0x7fc2cbedee5e]
      /lib64/libc.so.6(+0x7a41a)[0x7fc2cbee341a]
      /lib64/libc.so.6(__libc_malloc+0x5c)[0x7fc2cbee3b1c]
      /usr/lib64/libcrypto.so.10(CRYPTO_malloc+0x5e)[0x7fc2c8a3bcee]
      /usr/lib64/libcrypto.so.10(EVP_DigestInit_ex+0x247)[0x7fc2c8abc247]
      /usr/lib64/libcrypto.so.10(HMAC_Init_ex+0x182)[0x7fc2c8a4aae2]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(_native_crypto_hmac_sha_512+0x14c)[0x7fc2c9042daa]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x12869)[0x7fc2c9034869]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x12e8c)[0x7fc2c9034e8c]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(_mongocrypt_do_decryption+0x42f)[0x7fc2c90359ea]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x14df9)[0x7fc2c9036df9]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x1ee30)[0x7fc2c9040e30]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x1f156)[0x7fc2c9041156]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x1efef)[0x7fc2c9040fef]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x1f156)[0x7fc2c9041156]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(_mongocrypt_transform_binary_in_bson+0x166)[0x7fc2c90413b1]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(+0x15009)[0x7fc2c9037009]
      /data/mci/install/libmongocrypt/lib64/libmongocrypt.so(mongocrypt_ctx_finalize+0xb7)[0x7fc2c903a8d1]
      /opt/python/pypy/bin/../lib/libffi.so.6(ffi_call_unix64+0x4c)[0x7fc2d08e30b4]
      /opt/python/pypy/bin/../lib/libffi.so.6(ffi_call+0x473)[0x7fc2d08e2ad6]
      /opt/python/pypy/bin/libpypy-c.so(+0x1569b4b)[0x7fc2cd983b4b]
      /opt/python/pypy/bin/libpypy-c.so(+0x2614ec1)[0x7fc2cea2eec1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1929309)[0x7fc2cdd43309]
      /opt/python/pypy/bin/libpypy-c.so(+0x14e5d98)[0x7fc2cd8ffd98]
      /opt/python/pypy/bin/libpypy-c.so(+0x175e673)[0x7fc2cdb78673]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eff133)[0x7fc2ce319133]
      /opt/python/pypy/bin/libpypy-c.so(+0x17dac95)[0x7fc2cdbf4c95]
      /opt/python/pypy/bin/libpypy-c.so(+0x20a6505)[0x7fc2ce4c0505]
      /opt/python/pypy/bin/libpypy-c.so(+0x17ceb7e)[0x7fc2cdbe8b7e]
      /opt/python/pypy/bin/libpypy-c.so(+0x17d33d1)[0x7fc2cdbed3d1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eb5c82)[0x7fc2ce2cfc82]
      /opt/python/pypy/bin/libpypy-c.so(+0x224cb35)[0x7fc2ce666b35]
      /opt/python/pypy/bin/libpypy-c.so(+0x179ce8e)[0x7fc2cdbb6e8e]
      /opt/python/pypy/bin/libpypy-c.so(+0x279c4df)[0x7fc2cebb64df]
      /opt/python/pypy/bin/libpypy-c.so(+0x20a6505)[0x7fc2ce4c0505]
      /opt/python/pypy/bin/libpypy-c.so(+0x17ceb7e)[0x7fc2cdbe8b7e]
      /opt/python/pypy/bin/libpypy-c.so(+0x17d33d1)[0x7fc2cdbed3d1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eb5c82)[0x7fc2ce2cfc82]
      /opt/python/pypy/bin/libpypy-c.so(+0x224cb35)[0x7fc2ce666b35]
      /opt/python/pypy/bin/libpypy-c.so(+0x179ce8e)[0x7fc2cdbb6e8e]
      /opt/python/pypy/bin/libpypy-c.so(+0x279c4df)[0x7fc2cebb64df]
      /opt/python/pypy/bin/libpypy-c.so(+0x17db76c)[0x7fc2cdbf576c]
      /opt/python/pypy/bin/libpypy-c.so(+0x17ce291)[0x7fc2cdbe8291]
      /opt/python/pypy/bin/libpypy-c.so(+0x17d33d1)[0x7fc2cdbed3d1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eb5c82)[0x7fc2ce2cfc82]
      /opt/python/pypy/bin/libpypy-c.so(+0x224cb35)[0x7fc2ce666b35]
      /opt/python/pypy/bin/libpypy-c.so(+0x179ce8e)[0x7fc2cdbb6e8e]
      /opt/python/pypy/bin/libpypy-c.so(+0x279c4df)[0x7fc2cebb64df]
      /opt/python/pypy/bin/libpypy-c.so(+0x175d509)[0x7fc2cdb77509]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eff185)[0x7fc2ce319185]
      /opt/python/pypy/bin/libpypy-c.so(+0x17db67d)[0x7fc2cdbf567d]
      /opt/python/pypy/bin/libpypy-c.so(+0x17ce87d)[0x7fc2cdbe887d]
      /opt/python/pypy/bin/libpypy-c.so(+0x17d33d1)[0x7fc2cdbed3d1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eb5c82)[0x7fc2ce2cfc82]
      /opt/python/pypy/bin/libpypy-c.so(+0x224cb35)[0x7fc2ce666b35]
      /opt/python/pypy/bin/libpypy-c.so(+0x179ce8e)[0x7fc2cdbb6e8e]
      /opt/python/pypy/bin/libpypy-c.so(+0x279c4df)[0x7fc2cebb64df]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eff133)[0x7fc2ce319133]
      /opt/python/pypy/bin/libpypy-c.so(+0x17dac95)[0x7fc2cdbf4c95]
      /opt/python/pypy/bin/libpypy-c.so(+0x17db76c)[0x7fc2cdbf576c]
      /opt/python/pypy/bin/libpypy-c.so(+0x17ce291)[0x7fc2cdbe8291]
      /opt/python/pypy/bin/libpypy-c.so(+0x17d33d1)[0x7fc2cdbed3d1]
      /opt/python/pypy/bin/libpypy-c.so(+0x1eb5c82)[0x7fc2ce2cfc82]
      ======= Memory map: ========
      00400000-00401000 r--p 00000000 ca:01 1705321                            /opt/python/pypy/bin/pypy
      00401000-00402000 r-xp 00001000 ca:01 1705321                            /opt/python/pypy/bin/pypy
      00402000-00403000 r--p 00002000 ca:01 1705321                            /opt/python/pypy/bin/pypy
      00403000-00404000 r--p 00002000 ca:01 1705321                            /opt/python/pypy/bin/pypy
      00404000-00405000 rw-p 00003000 ca:01 1705321                            /opt/python/pypy/bin/pypy
      00572000-03019000 rw-p 00000000 00:00 0                                  [heap]
      7fc2c0000000-7fc2c0021000 rw-p 00000000 00:00 0
      7fc2c0021000-7fc2c4000000 ---p 00000000 00:00 0
      7fc2c6e27000-7fc2c6e2b000 r-xp 00000000 ca:01 1450084                    /lib64/libuuid.so.1.3.0
      7fc2c6e2b000-7fc2c702a000 ---p 00004000 ca:01 1450084                    /lib64/libuuid.so.1.3.0
      7fc2c702a000-7fc2c702b000 rw-p 00003000 ca:01 1450084                    /lib64/libuuid.so.1.3.0
      7fc2c7627000-7fc2c762e000 r-xp 00000000 ca:01 1705364                    /opt/python/pypy/site-packages/kerberos.pypy-41.so
      7fc2c762e000-7fc2c782e000 ---p 00007000 ca:01 1705364                    /opt/python/pypy/site-packages/kerberos.pypy-41.so
      7fc2c782e000-7fc2c782f000 rw-p 00007000 ca:01 1705364                    /opt/python/pypy/site-packages/kerberos.pypy-41.so
      7fc2c782f000-7fc2c784c000 r-xp 00000000 ca:01 1450380                    /lib64/libselinux.so.1
      7fc2c784c000-7fc2c7a4b000 ---p 0001d000 ca:01 1450380                    /lib64/libselinux.so.1
      7fc2c7a4b000-7fc2c7a4c000 r--p 0001c000 ca:01 1450380                    /lib64/libselinux.so.1
      7fc2c7a4c000-7fc2c7a4d000 rw-p 0001d000 ca:01 1450380                    /lib64/libselinux.so.1
      7fc2c7a4d000-7fc2c7a4e000 rw-p 00000000 00:00 0
      7fc2c7a4e000-7fc2c7a50000 r-xp 00000000 ca:01 1450290                    /lib64/libkeyutils.so.1.3
      7fc2c7a50000-7fc2c7c4f000 ---p 00002000 ca:01 1450290                    /lib64/libkeyutils.so.1.3
      7fc2c7c4f000-7fc2c7c50000 r--p 00001000 ca:01 1450290                    /lib64/libkeyutils.so.1.3
      7fc2c7c50000-7fc2c7c51000 rw-p 00002000 ca:01 1450290                    /lib64/libkeyutils.so.1.3
      7fc2c7c51000-7fc2c7c5b000 r-xp 00000000 ca:01 1450300                    /lib64/libkrb5support.so.0.1
      7fc2c7c5b000-7fc2c7e5a000 ---p 0000a000 ca:01 1450300                    /lib64/libkrb5support.so.0.1
      7fc2c7e5a000-7fc2c7e5b000 r--p 00009000 ca:01 1450300                    /lib64/libkrb5support.so.0.1
      7fc2c7e5b000-7fc2c7e5c000 rw-p 0000a000 ca:01 1450300                    /lib64/libkrb5support.so.0.1
      7fc2c7e5c000-7fc2c7e72000 r-xp 00000000 ca:01 1450023                    /lib64/libresolv-2.12.so
      7fc2c7e72000-7fc2c8072000 ---p 00016000 ca:01 1450023                    /lib64/libresolv-2.12.so
      7fc2c8072000-7fc2c8073000 r--p 00016000 ca:01 1450023                    /lib64/libresolv-2.12.so
      7fc2c8073000-7fc2c8074000 rw-p 00017000 ca:01 1450023                    /lib64/libresolv-2.12.so
      7fc2c8074000-7fc2c8076000 rw-p 00000000 00:00 0
      7fc2c8076000-7fc2c809f000 r-xp 00000000 ca:01 1450296     Fatal Python error: Aborted
      
      Stack (most recent call first, approximate line numbers):
        File "pymongocrypt/mongocrypt.py", line 331 in finish
        File "/data/mci/libmongocrypt/bindings/python/test/test_mongocrypt.py", line 180 in test_decrypt
        File "/opt/python/pypy/lib-python/2.7/unittest/case.py", line 295 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/case.py", line 392 in __call__
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 88 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 69 in __call__
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 88 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 69 in __call__
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 88 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 69 in __call__
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 88 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/suite.py", line 69 in __call__
        File "/opt/python/pypy/lib-python/2.7/unittest/runner.py", line 140 in run
        File "/opt/python/pypy/lib-python/2.7/unittest/main.py", line 216 in runTests
        File "/opt/python/pypy/lib-python/2.7/unittest/main.py", line 72 in __init__
        File "/opt/python/pypy/site-packages/setuptools/command/test.py", line 231 in run_tests
        File "/opt/python/pypy/site-packages/setuptools/command/test.py", line 216 in run
        File "/opt/python/pypy/lib-python/2.7/distutils/dist.py", line 957 in run_command
        File "/opt/python/pypy/lib-python/2.7/distutils/dist.py", line 947 in run_commands
        File "/opt/python/pypy/lib-python/2.7/distutils/core.py", line 60 in setup
        File "/opt/python/pypy/site-packages/setuptools/__init__.py", line 142 in setup
        File "setup.py", line 1 in <module>
        File "<builtin>/app_main.py", line 767 in run_it
        File "<builtin>/app_main.py", line 78 in run_toplevel
        File "<builtin>/app_main.py", line 568 in run_command_line
        File "<builtin>/app_main.py", line 848 in entry_point
      Aborted
      

      For now I've skipped testing pypy.

            Assignee:
            shane.harvey@mongodb.com Shane Harvey
            Reporter:
            shane.harvey@mongodb.com Shane Harvey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: