jamesturk / jellyfish

🪼 a python library for doing approximate and phonetic matching of strings.
https://jamesturk.github.io/jellyfish/
MIT License
2.04k stars 157 forks source link

Seg fault with Python3.8 #128

Closed tomhamiltonstubber closed 4 years ago

tomhamiltonstubber commented 4 years ago

Hi folks,

We're having an intermittent error with Jellyfish causing a seg fault with our upgrade from Python 3.7 to Python 3.8. Happens when calling metaphone.

Unfortunately I can't replicate the issue locally, it only happens when running tests on CircleCI. I've even tried using the exact same image but still can't get it to happen on our machines. I'm using pytest to run tests.

The trace is below, not sure if it helps. If you need more info just let me know; I realise there's not much to go on but thought it best to report!

I've copied the code into our own project for the moment, we weren't using much.


TutorCruncher/accounting/tests/test_ahcs.py Fatal Python error: Segmentation fault

Current thread 0x00007f63d7e83740 (most recent call first):
  File "/tutorcruncher/TutorCruncher/search/adapters.py", line 109 in _prepare_metaphone
  File "/tutorcruncher/TutorCruncher/search/adapters.py", line 64 in get_entry_data
  File "/tutorcruncher/TutorCruncher/search/search_engine.py", line 45 in update_index
  File "/tutorcruncher/TutorCruncher/api/hooks.py", line 238 in __init__
  File "/tutorcruncher/TutorCruncher/api/hooks.py", line 194 in propagate_activity
  File "/usr/local/lib/python3.8/dist-packages/rq/job.py", line 670 in _execute
  File "/usr/local/lib/python3.8/dist-packages/rq/job.py", line 664 in perform
  File "/tutorcruncher/TutorCruncher/tcrq/mod.py", line 76 in perform
  File "/usr/local/lib/python3.8/dist-packages/rq/queue.py", line 335 in run_job
  File "/usr/local/lib/python3.8/dist-packages/rq/queue.py", line 427 in enqueue_job
  File "/usr/local/lib/python3.8/dist-packages/rq/queue.py", line 331 in enqueue_call
  File "/usr/local/lib/python3.8/dist-packages/django_rq/queues.py", line 64 in original_enqueue_call
  File "/usr/local/lib/python3.8/dist-packages/django_rq/queues.py", line 68 in enqueue_call
  File "/usr/local/lib/python3.8/dist-packages/rq/decorators.py", line 62 in delay
  File "/tutorcruncher/TutorCruncher/api/hooks.py", line 151 in finish
  File "/tutorcruncher/TutorCruncher/api/middleware.py", line 70 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/tutorcruncher/TutorCruncher/translations/middleware.py", line 14 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/tutorcruncher/TutorCruncher/tcauth/middleware.py", line 189 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/tutorcruncher/TutorCruncher/domain/middleware.py", line 103 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/tutorcruncher/TutorCruncher/common/middleware.py", line 215 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/utils/deprecation.py", line 94 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 34 in inner
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/base.py", line 75 in get_response
  File "/usr/local/lib/python3.8/dist-packages/django/test/client.py", line 140 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/test/client.py", line 485 in request
  File "/usr/local/lib/python3.8/dist-packages/django/test/client.py", line 422 in generic
  File "/usr/local/lib/python3.8/dist-packages/django/test/client.py", line 356 in post
  File "/usr/local/lib/python3.8/dist-packages/django/test/client.py", line 543 in post
  File "/tutorcruncher/TutorCruncher/accounting/tests/test_ahcs.py", line 695 in test_add_from_apt
  File "/usr/lib/python3.8/unittest/case.py", line 633 in _callTestMethod
  File "/usr/lib/python3.8/unittest/case.py", line 676 in run
  File "/usr/lib/python3.8/unittest/case.py", line 736 in __call__
  File "/usr/local/lib/python3.8/dist-packages/django/test/testcases.py", line 271 in __call__
  File "/usr/local/lib/python3.8/dist-packages/pytest_django/plugin.py", line 517 in non_debugging_runtest
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 134 in pytest_runtest_call
  File "/usr/local/lib/python3.8/dist-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/local/lib/python3.8/dist-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 210 in <lambda>
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 237 in from_call
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 209 in call_runtest_hook
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 185 in call_and_report
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 99 in runtestprotocol
  File "/usr/local/lib/python3.8/dist-packages/_pytest/runner.py", line 84 in pytest_runtest_protocol
  File "/usr/local/lib/python3.8/dist-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/local/lib/python3.8/dist-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/local/lib/python3.8/dist-packages/_pytest/main.py", line 271 in pytest_runtestloop
  File "/usr/local/lib/python3.8/dist-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/local/lib/python3.8/dist-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/local/lib/python3.8/dist-packages/_pytest/main.py", line 247 in _main
  File "/usr/local/lib/python3.8/dist-packages/_pytest/main.py", line 197 in wrap_session
  File "/usr/local/lib/python3.8/dist-packages/_pytest/main.py", line 240 in pytest_cmdline_main
  File "/usr/local/lib/python3.8/dist-packages/pluggy/callers.py", line 187 in _multicall
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 84 in <lambda>
  File "/usr/local/lib/python3.8/dist-packages/pluggy/manager.py", line 93 in _hookexec
  File "/usr/local/lib/python3.8/dist-packages/pluggy/hooks.py", line 286 in __call__
  File "/usr/local/lib/python3.8/dist-packages/_pytest/config/__init__.py", line 92 in main
  File "/usr/local/bin/pytest", line 8 in <module>
Makefile:65: recipe for target 'test' failed
make: *** [test] Segmentation fault (core dumped)
jamesturk commented 4 years ago

could you share what is in TutorCruncher/accounting/tests/test_ahcs.py?

I'll investigate