oracle / graalpython

A Python 3 implementation built on GraalVM
Other
1.2k stars 103 forks source link

java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3 #310

Closed oroppas closed 1 year ago

oroppas commented 1 year ago

Here's how to replicate

(graalpy) [ryuta@fedora ~]$ graalpy -m pip install rapidfuzz
(graalpy) [ryuta@fedora ~]$ graalpy -c "import rapidfuzz"
Traceback (most recent call last):
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1027, in _find_and_load
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1006, in _find_and_load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 688, in _load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap_external.py", line 888, in exec_module
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1078, in _handle_fromlist
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 241, in _call_with_frames_removed
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1129, in __import__
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1050, in _gcd_import
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1027, in _find_and_load
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1006, in _find_and_load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 688, in _load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap_external.py", line 888, in exec_module
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 241, in _call_with_frames_removed
  File "/home/ryuta/packages/graalvm/graalpy/lib/python3.10/site-packages/rapidfuzz/_utils.py", line 91, in fallback_import
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/__init__.py", line 126, in import_module
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1050, in _gcd_import
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1027, in _find_and_load
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1006, in _find_and_load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 688, in _load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap_external.py", line 888, in exec_module
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 241, in _call_with_frames_removed
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1027, in _find_and_load
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 1006, in _find_and_load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap.py", line 688, in _load_unlocked
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/importlib/_bootstrap_external.py", line 1189, in exec_module
  File "src/rapidfuzz/process_cpp_impl.cxx", line 31045, in __pyx_pymod_exec_process_cpp_impl
  File "src/rapidfuzz/process_cpp_impl.cxx", line 32267, in __Pyx_Py3ClassCreate
  File "/home/ryuta/packages/graalvm/graalvm/graalpython/graalpython/com.oracle.graal.python.cext/src/object.c", line 163, in PyObject_Call
Index -1 out of bounds for length 3
Traceback (most recent call last):
  File "<module>", line 60, in fallback_import
  File "<module>", line 108, in import_module
  File "process_cpp_impl.cxx", line 31045, in __pyx_pymod_exec_process_cpp_impl
  File "process_cpp_impl.cxx", line 32267, in __Pyx_Py3ClassCreate
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3
msimacek commented 1 year ago

Hi @oroppas, we have migrated to a new C API backend and it seems it fixed this issue.

oroppas commented 1 year ago

Thanks @msimacek. Just as sanity check, I see

(graalpy) [ryuta@fedora ~]$ graalpy -c "import rapidfuzz"
Segmentation fault (core dumped)

There's no core dumped on your side?

msimacek commented 1 year ago

No, it imported normally. Did you recreate the virtualenv from scratch? Can you try try to get the native traceback (coredumpctl gdb and use the where command)?

oroppas commented 1 year ago

I created venv from scratch and it still core dumped. I ran coredumpctl debug:

(graalpy) [ryuta@fedora ~]$ coredumpctl debug
           PID: 71526 (graalpy)
           UID: 1000 (ryuta)
           GID: 1000 (ryuta)
        Signal: 11 (SEGV)
     Timestamp: Wed 2023-03-15 08:04:30 JST (1min 10s ago)
  Command Line: graalpy -c $'import rapidfuzz'
    Executable: /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy
 Control Group: /user.slice/user-1000.slice/session-4.scope
          Unit: session-4.scope
         Slice: user-1000.slice
       Session: 4
     Owner UID: 1000 (ryuta)
       Boot ID: 411b33a378e04721b324c353aaf35aa1
    Machine ID: 5f54bdba71364b97a00eec8ee66e12dd
      Hostname: fedora
       Storage: /var/lib/systemd/coredump/core.graalpy.1000.411b33a378e04721b324c353aaf35aa1.71526.1678835070000000.zst (present)
     Disk Size: 118.4M
       Package: libxcrypt/4.4.33-4.fc37
      build-id: 291084f89dae249eff7604a29d001900e0a07d2d
       Message: Process 71526 (graalpy) of user 1000 dumped core.

                Module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy with build-id 291084f89dae249eff7604a29d001900e0a07d2d
                Metadata for module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy owned by FDO found: {
                    "type" : "rpm",
                    "name" : "libxcrypt",
                    "version" : "4.4.33-4.fc37",
                    "architecture" : "x86_64",
                    "osCpe" : "cpe:/o:fedoraproject:fedora:37"
                }

                Module /home/ryuta/packages/graalvm/graalpy/lib/python3.10/site-packages/rapidfuzz/distance/metrics_cpp.graalpy230-310-native-x86_64-linux.so without build-id.
                Module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/graalpy23.0/libpythonjni.so with build-id 4d2ae2b52468cb0ec44440b1b0b16b501cd39f43
                Metadata for module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/graalpy23.0/libpythonjni.so owned by FDO found: {
                    "type" : "rpm",
                    "name" : "libxcrypt",
                    "version" : "4.4.33-4.fc37",
                    "architecture" : "x86_64",
                    "osCpe" : "cpe:/o:fedoraproject:fedora:37"
                }

                Module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/libpythonvm.so with build-id eca5ed3826940e1631945e442b9ebff4db21d64b
                Metadata for module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/libpythonvm.so owned by FDO found: {
                    "type" : "rpm",
                    "name" : "libxcrypt",
                    "version" : "4.4.33-4.fc37",
                    "architecture" : "x86_64",
                    "osCpe" : "cpe:/o:fedoraproject:fedora:37"
                }

                Module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/llvm/native/lib/libsulong-native.so without build-id.
                Module /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/graalpy23.0/libposix.graalpy230-310-native-x86_64-linux.so without build-id.
                Module linux-vdso.so.1 with build-id 15f2649ff04b36430d1be1923bfb0df8b2d49cb8
                Module libc++abi.so.1 with build-id 6f37344ed4ae5668da5e1e80fba216b060ed4539
                Module libc++.so.1 with build-id 07be0272d919acb16a7a27907dc20300f4299276
                Module libcrypt.so.2 with build-id e9a4200cc454d25322877cefcc51815d420ac9aa
                Metadata for module libcrypt.so.2 owned by FDO found: {
                    "type" : "rpm",
                    "name" : "libxcrypt",
                    "version" : "4.4.33-4.fc37",
                    "architecture" : "x86_64",
                    "osCpe" : "cpe:/o:fedoraproject:fedora:37"
                }

                Module libz.so.1 with build-id d94299d7572e23295ceaf7674110eb6f2689cd91
                Metadata for module libz.so.1 owned by FDO found: {
                    "type" : "rpm",
                    "name" : "zlib",
                    "version" : "1.2.12-5.fc37",
                    "architecture" : "x86_64",
                    "osCpe" : "cpe:/o:fedoraproject:fedora:37"
                }

                Module ld-linux-x86-64.so.2 with build-id bb6fec54c7521fddc569a2f4e141dfb97bf3acbe
                Module libc.so.6 with build-id 81daba31ee66dbd63efdc4252a872949d874d136
                Module libgcc_s.so.1 with build-id bad96a3adc0a3a006e7ef4900ff3ae1ddcc33ed2
                Module libm.so.6 with build-id 9ca49f056adbf7edc2bda92b95a74d491abe03f2
                Module libstdc++.so.6 with build-id 5c63442039be42a72c8722574572171b19f18d66
                Stack trace of thread 71526:
                #0  0x00007f05e41e2055 n/a (/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/libpythonvm.so + 0x3de2055)
                #1  0x00007ffd7b24f570 n/a (n/a + 0x0)
                ELF object binary architecture: AMD x86-64

GNU gdb (GDB) Fedora Linux 13.1-1.fc37
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy...

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.fedoraproject.org/>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading separate debug info for /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy
(No debugging symbols found in /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/graalpy)
[New LWP 71526]
[New LWP 71542]
[New LWP 71531]
[New LWP 71538]
[New LWP 71546]
[New LWP 71543]
[New LWP 71549]
[New LWP 71537]
[New LWP 71535]
[New LWP 71541]
[New LWP 71536]
[New LWP 71540]
[New LWP 71529]
[New LWP 71539]
[New LWP 71528]
[New LWP 71527]
[New LWP 71544]
[New LWP 71550]
[New LWP 71545]
Downloading separate debug info for /lib64/libstdc++.so.6
Downloading separate debug info for /home/ryuta/.cache/debuginfod_client/5c63442039be42a72c8722574572171b19f18d66/debuginfo                                                            
Downloading separate debug info for /lib64/libm.so.6                                                                                                                                   
Downloading separate debug info for /lib64/libgcc_s.so.1                                                                                                                               
Downloading separate debug info for /lib64/libc.so.6                                                                                                                                   
                                                                                                                                                                                       --Type <RET> for more, q to quit, c to continue without paging--
Downloading separate debug info for /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/../lib/libpythonvm.so
Missing separate debuginfo for /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/../lib/libpythonvm.so
Try: dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/ec/a5ed3826940e1631945e442b9ebff4db21d64b.debug
Downloading separate debug info for /lib64/libz.so.1
Downloading separate debug info for /lib64/libcrypt.so.2                                                                                                                               
Downloading separate debug info for /home/ryuta/.cache/debuginfod_client/e9a4200cc454d25322877cefcc51815d420ac9aa/debuginfo                                                            
Downloading separate debug info for /lib64/libc++.so.1                                                                                                                                 
Downloading separate debug info for /lib64/libc++abi.so.1                                                                                                                              
Downloading separate debug info for system-supplied DSO at 0x7ffd7b3b5000                                                                                                              
[Thread debugging using libthread_db enabled]                                                                                                                                          
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `graalpy -c import rapidfuzz'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f05e41e2055 in ?? ()
   from /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/../lib/libpythonvm.so
[Current thread is 1 (Thread 0x7f05f62eb740 (LWP 71526))]
(gdb) where
#0  0x00007f05e41e2055 in ?? ()
   from /home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/bin/../lib/libpythonvm.so
#1  0x0000000000000000 in ?? ()
(gdb)