Closed 0pdd closed 5 years ago
@artemiyds2 @duker33 please pay attention to this new issue.
I can't reproduce the issue on my laptop, but it occurs on CI
this comment contains gist with syscall error. I cought it randomly only once: https://github.com/fidals/shopelectro/issues/648#issuecomment-443151390
met this error on the prod again. We should boost this issue: seo guys create templates with Cyrillic symbols again
Boost the issue
root@af02eb558f94:/usr/app/src# python -X faulthandler manage.py test -p *tests_views.py -k && echo 1
Using existing test database for alias 'default'...
System check identified no issues (0 silenced).
...Not Found: /catalog/categories/category-0/
..........Not Found: /catalog/categories/category-0-of-category-0-of-category-0/tags/non-existent-tag/
.......Fatal Python error: Segmentation fault
Current thread 0x00007f922f2b5700 (most recent call first):
File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 480 in __init__
File "/usr/local/lib/python3.7/site-packages/mptt/models.py", line 388 in __init__
File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 583 in from_db
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1751 in populate
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 66 in __iter__
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1121 in _fetch_all
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 254 in __bool__
File "/usr/local/lib/python3.7/site-packages/mptt/utils.py", line 224 in get_cached_trees
File "/usr/local/lib/python3.7/site-packages/mptt/querysets.py", line 25 in get_cached_trees
File "/usr/app/src/shopelectro/templatetags/se_extras.py", line 24 in roots
File "/usr/local/lib/python3.7/site-packages/django/template/library.py", line 203 in render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 957 in render_annotated
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 990 in render
File "/usr/local/lib/python3.7/site-packages/django/test/utils.py", line 107 in instrumented_test_render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 209 in render
File "/usr/local/lib/python3.7/site-packages/django/template/loader_tags.py", line 216 in render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 957 in render_annotated
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 990 in render
File "/usr/local/lib/python3.7/site-packages/django/template/loader_tags.py", line 72 in render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 957 in render_annotated
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 990 in render
File "/usr/local/lib/python3.7/site-packages/django/test/utils.py", line 107 in instrumented_test_render
File "/usr/local/lib/python3.7/site-packages/django/template/loader_tags.py", line 177 in render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 957 in render_annotated
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 990 in render
File "/usr/local/lib/python3.7/site-packages/django/test/utils.py", line 107 in instrumented_test_render
File "/usr/local/lib/python3.7/site-packages/django/template/loader_tags.py", line 177 in render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 957 in render_annotated
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 990 in render
File "/usr/local/lib/python3.7/site-packages/django/test/utils.py", line 107 in instrumented_test_render
File "/usr/local/lib/python3.7/site-packages/django/template/base.py", line 207 in render
File "/usr/local/lib/python3.7/site-packages/django/template/backends/django.py", line 66 in render
File "/usr/local/lib/python3.7/site-packages/django/template/response.py", line 84 in rendered_content
File "/usr/local/lib/python3.7/site-packages/django/template/response.py", line 107 in render
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 215 in _get_response
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django_user_agents/middleware.py", line 14 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/utils/deprecation.py", line 140 in __call__
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 41 in inner
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 124 in get_response
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 144 in __call__
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 483 in request
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 416 in generic
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 340 in get
File "/usr/local/lib/python3.7/site-packages/django/test/client.py", line 536 in get
File "/usr/app/src/shopelectro/tests/tests_views.py", line 66 in get_category_page
File "/usr/app/src/shopelectro/tests/tests_views.py", line 535 in test_page_db_template_with_special_chars
File "/usr/local/lib/python3.7/unittest/case.py", line 615 in run
File "/usr/local/lib/python3.7/unittest/case.py", line 663 in __call__
File "/usr/local/lib/python3.7/site-packages/django/test/testcases.py", line 213 in __call__
File "/usr/local/lib/python3.7/unittest/suite.py", line 122 in run
File "/usr/local/lib/python3.7/unittest/suite.py", line 84 in __call__
File "/usr/local/lib/python3.7/unittest/runner.py", line 176 in run
File "/usr/local/lib/python3.7/site-packages/django/test/runner.py", line 567 in run_suite
File "/usr/local/lib/python3.7/site-packages/refarm_test_utils/runners.py", line 39 in run_suite
File "/usr/local/lib/python3.7/site-packages/django/test/runner.py", line 603 in run_tests
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/test.py", line 62 in handle
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330 in execute
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 283 in run_from_argv
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/test.py", line 29 in run_from_argv
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 356 in execute
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 364 in execute_from_command_line
File "manage.py", line 10 in <module>
Segmentation fault
it seems the root of evil is mptt
root@5902aee7b434:/usr/app/src# python -X faulthandler manage.py test -k shopelectro.tests.tests_views.CategoryPage.test_page_db_template_with_special_chars
Using existing test database for alias 'default'...
System check identified no issues (0 silenced).
Fatal Python error: Segmentation fault
Current thread 0x00007f2635481700 (most recent call first):
File "/usr/local/lib/python3.7/site-packages/django/utils/regex_helper.py", line 325 in flatten_result
File "/usr/local/lib/python3.7/site-packages/django/utils/regex_helper.py", line 209 in normalize
File "/usr/local/lib/python3.7/site-packages/django/urls/resolvers.py", line 322 in _populate
File "/usr/local/lib/python3.7/site-packages/django/urls/resolvers.py", line 319 in _populate
File "/usr/local/lib/python3.7/site-packages/django/urls/resolvers.py", line 438 in _reverse_with_prefix
File "/usr/local/lib/python3.7/site-packages/django/urls/base.py", line 91 in reverse
File "/usr/local/lib/python3.7/site-packages/catalog/helpers.py", line 24 in reverse_catalog_url
File "/usr/app/src/shopelectro/tests/tests_views.py", line 66 in get_category_page
File "/usr/app/src/shopelectro/tests/tests_views.py", line 535 in test_page_db_template_with_special_chars
File "/usr/local/lib/python3.7/unittest/case.py", line 615 in run
File "/usr/local/lib/python3.7/unittest/case.py", line 663 in __call__
File "/usr/local/lib/python3.7/site-packages/django/test/testcases.py", line 213 in __call__
File "/usr/local/lib/python3.7/unittest/suite.py", line 122 in run
File "/usr/local/lib/python3.7/unittest/suite.py", line 84 in __call__
File "/usr/local/lib/python3.7/unittest/runner.py", line 176 in run
File "/usr/local/lib/python3.7/site-packages/django/test/runner.py", line 567 in run_suite
File "/usr/local/lib/python3.7/site-packages/refarm_test_utils/runners.py", line 39 in run_suite
File "/usr/local/lib/python3.7/site-packages/django/test/runner.py", line 603 in run_tests
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/test.py", line 62 in handle
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330 in execute
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 283 in run_from_argv
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/test.py", line 29 in run_from_argv
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 356 in execute
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 364 in execute_from_command_line
File "manage.py", line 10 in <module>
Segmentation fault
cause of segfaults was the wrong template render approach and probably old mptt version
The puzzle
648-61c34e29
from #648 has to be resolved:https://github.com/fidals/shopelectro/blob/4a4d7ac418061b66da44dcda94ecba26d147ce05/shopelectro/tests/tests_views.py#L483-L488
The puzzle was created by duker33 on 01-Dec-18.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be \"done\" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.