miurahr / pyppmd

pyppmd provides classes and functions for compressing and decompressing text data, using PPM (Prediction by partial matching) compression algorithm variation H and I.2. It provide an API similar to Python's zlib/bz2/lzma modules.
https://pyppmd.readthedocs.io/en/latest/
GNU Lesser General Public License v2.1
8 stars 3 forks source link

Access violation on 32bit python on Windows #88

Closed miurahr closed 2 years ago

miurahr commented 2 years ago

Describe the bug Decompression on 32bit python on Windows causes access violation

Related issue

86

To Reproduce Run tox test on 32bit python on windows

Expected behavior It should be no exception

Environment (please complete the following information):

Test data(please attach in the report):

tests/test_fuzzer.py::test_ppmd8_fuzzer Windows fatal exception: access violation

``` GLOB sdist-make: D:\a\pyppmd\pyppmd\setup.py py37 create: D:\a\pyppmd\pyppmd\.tox\py37 tox: py37 py37 inst: D:\a\pyppmd\pyppmd\.tox\.tmp\package\1\pyppmd-0.1.dev31.zip py37 installed: atomicwrites==1.4.0,attrs==21.4.0,colorama==0.4.4,coverage==6.3.2,hypothesis==6.39.3,importlib-metadata==4.11.2,iniconfig==1.1.1,packaging==21.3,pluggy==1.0.0,py==1.11.0,py-cpuinfo==8.0.0,pyparsing==3.0.7,pyppmd @ file:///D:/a/pyppmd/pyppmd/.tox/.tmp/package/1/pyppmd-0.1.dev31.zip,pytest==7.0.1,pytest-benchmark==3.4.1,pytest-cov==3.0.0,pytest-timeout==2.1.0,sortedcontainers==2.4.0,tomli==2.0.1,typing_extensions==4.1.1,zipp==3.7.0 py37 run-test-pre: PYTHONHASHSEED='125' py37 run-test: commands[0] | python -m pytest -vv -s ============================= test session starts ============================= platform win32 -- Python 3.7.9, pytest-7.0.1, pluggy-1.0.0 -- D:\a\pyppmd\pyppmd\.tox\py37\Scripts\python.EXE cachedir: .tox\py37\.pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('D:\\a\\pyppmd\\pyppmd\\.hypothesis\\examples') benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000) rootdir: D:\a\pyppmd\pyppmd, configfile: pyproject.toml, testpaths: tests plugins: hypothesis-6.39.3, benchmark-3.4.1, cov-3.0.0, timeout-2.1.0 collecting ... collected 27 items tests/test_benchmark.py::test_benchmark_text_compress[PPMd H-7-6-16777216] SKIPPED tests/test_benchmark.py::test_benchmark_text_compress[PPMd I-8-8-8388608] SKIPPED tests/test_benchmark.py::test_benchmark_text_decompress[PPMd H-7-6-16777216] SKIPPED tests/test_benchmark.py::test_benchmark_text_decompress[PPMd I-8-8-8388608] SKIPPED tests/test_fuzzer.py::test_ppmd7_fuzzer PASSED tests/test_fuzzer.py::test_ppmd8_fuzzer Windows fatal exception: access violation Current thread 0x000010f0 (most recent call first): File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 42 in test_ppmd8_fuzzer File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 575 in test File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 31 in test_ppmd8_fuzzer File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 633 in run File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\executors.py", line 47 in default_new_style_executor File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 637 in execute_once File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 699 in _execute_once_for_engine File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 184 in __stoppable_test_function File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 208 in test_function File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 1055 in cached_test_function File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 809 in generate_mutations_from File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 729 in generate_new_examples File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 876 in _run File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 470 in run File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 776 in run_engine File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 1159 in wrapped_test File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 31 in test_ppmd8_fuzzer File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\python.py", line 192 in pytest_pyfunc_call File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__ File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\python.py", line 1718 in runtest File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 168 in pytest_runtest_call File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__ File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 261 in File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 340 in from_call File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 261 in call_runtest_hook File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 221 in call_and_report File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 132 in runtestprotocol File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 113 in pytest_runtest_protocol File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__ File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 347 in pytest_runtestloop File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__ File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 322 in _main File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 268 in wrap_session File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 315 in pytest_cmdline_main File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__ File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\config\__init__.py", line 166 in main File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\config\__init__.py", line 188 in console_main File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pytest\__main__.py", line 5 in File "c:\hostedtoolcache\windows\python\3.7.9\x86\lib\runpy.py", line 85 in _run_code File "c:\hostedtoolcache\windows\python\3.7.9\x86\lib\runpy.py", line 193 in _run_module_as_main ```
miurahr commented 2 years ago

90 resolves this.