fidals / shopelectro

shopelectro.ru site's code
4 stars 5 forks source link

tests_views.py:483-488: Resolve db_template render... #651

Closed 0pdd closed 5 years ago

0pdd commented 5 years ago

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.

0pdd commented 5 years ago

@artemiyds2 @duker33 please pay attention to this new issue.

ArtemijRodionov commented 5 years ago

I can't reproduce the issue on my laptop, but it occurs on CI

duker33 commented 5 years ago

this comment contains gist with syscall error. I cought it randomly only once: https://github.com/fidals/shopelectro/issues/648#issuecomment-443151390

duker33 commented 5 years ago

met this error on the prod again. We should boost this issue: seo guys create templates with Cyrillic symbols again

ArtemijRodionov commented 5 years ago

Boost the issue

ArtemijRodionov commented 5 years ago
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
ArtemijRodionov commented 5 years ago

it seems the root of evil is mptt

ArtemijRodionov commented 5 years ago
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
ArtemijRodionov commented 5 years ago

cause of segfaults was the wrong template render approach and probably old mptt version