-
Notifications
You must be signed in to change notification settings - Fork 41
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
compress_multiple is crashing with zlib 1.3.* #53
Comments
Can reproduce this quite easily: docker run --rm -it demisto/py3-tools:1.0.0.91908 sh
\# touch /tmp/file_1
\# touch /tmp/file_2
\# python
Python 3.10.14 (main, Mar 25 2024, 22:10:56) [GCC 13.2.1 20231014] on linux
Type "help", "copyright", "credits" or "license" for more information. >>> import zlib
>>> zlib.ZLIB_VERSION
'1.3.1'
>>> import pyminizip
>>> pyminizip.compress_multiple(["file_1", "txt"], ["/tmp", "/tmp"], "/tmp/out.zip", "1234", 5)
Segmentation fault When I try to get the stacktrace using > cat /tmp/r.py import sys
def trace_func(frame, event, arg):
"""
A sample trace function to be used with sys.settrace().
Args:
- frame: current frame object
- event: type of event ('call', 'line', 'return', 'exception', 'c_call', 'c_return', 'c_exception')
- arg: event-specific value (e.g., function name for 'call' event)
Returns:
- trace_func: the trace function itself
"""
# Print the event and the current line being executed
print(f"Event: {event}, Line: {frame.f_lineno}, Function: {frame.f_code.co_name}, File: {frame.f_code.co_filename}")
# Returning the trace function to continue tracing
return trace_func
sys.settrace(trace_func)
import pyminizip
pyminizip.compress_multiple(["file_1", "txt"], ["/tmp", "/tmp"], "/tmp/out.zip", "1234", 5) > gdb python
> (gdb) file /usr/local/lib/python3.10/site-packages/pyminizip.cpython-310-x86_64-linux-gnu.so
Reading symbols from /usr/local/lib/python3.10/site-packages/pyminizip.cpython-310-x86_64-linux-gnu.so...
> (gdb) run /tmp/r.py
Starting program: /usr/local/bin/python /tmp/r.py
warning: linux_ptrace_test_ret_to_nx: Cannot PTRACE_GETREGS: I/O error
warning: linux_ptrace_test_ret_to_nx: PC 0x7ffffed3e844 is neither near return address 0x7ffffe71f000 nor is the return instruction 0x5555558f6291!
Couldn't get CS register: I/O error.
> (gdb) backtrace
Python Exception <class 'gdb.error'>: Couldn't get registers: I/O error.
Couldn't get registers: I/O error. I'm pretty sure I'm getting the I/O error because i'm running this binary on an Apple Silicon CPU (docker/for-mac#6921). When running on host machine (Apple M3 Pro, 14.4.1 (23E224)), we can see the call causing the ❯ brew info zlib
==> zlib: stable 1.3.1 (bottled), HEAD [keg-only]
❯ python /tmp/r.py
Event: call, Line: 1022, Function: _find_and_load, File: <frozen importlib._bootstrap>
Event: line, Line: 1024, Function: _find_and_load, File: <frozen importlib._bootstrap>
Event: call, Line: 165, Function: __init__, File: <frozen importlib._bootstrap>
...
Event: return, Line: 325, Function: decode, File: ~/.pyenv/versions/3.10.13/lib/python3.10/codecs.py
pyminizip.compress_multiple(["file_1", "txt"], ["/tmp", "/tmp"], "/tmp/out.zip", "1234", 5)
OSError: error in opening file_1 for reading |
Issue #33 seems to be the same |
This was referenced May 12, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When running the
compress_multiple
function with zlib 1.3.* it crashes, even when runningnwith the same parameters and on the same machine as before, but simply updating zlib.The text was updated successfully, but these errors were encountered: