python_zero_division.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. {
  2. "level": "error",
  3. "exception": {
  4. "values": [
  5. {
  6. "module": null,
  7. "type": "ZeroDivisionError",
  8. "value": "division by zero",
  9. "mechanism": { "type": "django", "handled": false },
  10. "stacktrace": {
  11. "frames": [
  12. {
  13. "filename": "django/core/handlers/exception.py",
  14. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py",
  15. "function": "inner",
  16. "module": "django.core.handlers.exception",
  17. "lineno": 34,
  18. "pre_context": [
  19. " can rely on getting a response instead of an exception.",
  20. " \"\"\"",
  21. " @wraps(get_response)",
  22. " def inner(request):",
  23. " try:"
  24. ],
  25. "context_line": " response = get_response(request)",
  26. "post_context": [
  27. " except Exception as exc:",
  28. " response = response_for_exception(request, exc)",
  29. " return response",
  30. " return inner",
  31. ""
  32. ],
  33. "vars": {
  34. "request": "<WSGIRequest: GET '/divide-zero/'>",
  35. "exc": "ZeroDivisionError('division by zero')",
  36. "get_response": "<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f181f5b9fa0>>"
  37. },
  38. "in_app": true
  39. },
  40. {
  41. "filename": "django/core/handlers/base.py",
  42. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  43. "function": "_get_response",
  44. "module": "django.core.handlers.base",
  45. "lineno": 115,
  46. "pre_context": [
  47. " if response is None:",
  48. " wrapped_callback = self.make_view_atomic(callback)",
  49. " try:",
  50. " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  51. " except Exception as e:"
  52. ],
  53. "context_line": " response = self.process_exception_by_middleware(e, request)",
  54. "post_context": [
  55. "",
  56. " # Complain if the view returned None (a common error).",
  57. " if response is None:",
  58. " if isinstance(callback, types.FunctionType): # FBV",
  59. " view_name = callback.__name__"
  60. ],
  61. "vars": {
  62. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f181f5b9fa0>",
  63. "request": "<WSGIRequest: GET '/divide-zero/'>",
  64. "response": "None",
  65. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  66. "resolver_match": "ResolverMatch(func=errors.views.DivideZeroView, args=(), kwargs={}, url_name=divide_zero, app_names=[], namespaces=[], route=divide-zero/)",
  67. "callback": "<function DivideZeroView at 0x7f181e818d30>",
  68. "callback_args": [],
  69. "callback_kwargs": {},
  70. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f181e7299d0>",
  71. "wrapped_callback": "<function DivideZeroView at 0x7f181e818d30>"
  72. },
  73. "in_app": true
  74. },
  75. {
  76. "filename": "django/core/handlers/base.py",
  77. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  78. "function": "_get_response",
  79. "module": "django.core.handlers.base",
  80. "lineno": 113,
  81. "pre_context": [
  82. " break",
  83. "",
  84. " if response is None:",
  85. " wrapped_callback = self.make_view_atomic(callback)",
  86. " try:"
  87. ],
  88. "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  89. "post_context": [
  90. " except Exception as e:",
  91. " response = self.process_exception_by_middleware(e, request)",
  92. "",
  93. " # Complain if the view returned None (a common error).",
  94. " if response is None:"
  95. ],
  96. "vars": {
  97. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f181f5b9fa0>",
  98. "request": "<WSGIRequest: GET '/divide-zero/'>",
  99. "response": "None",
  100. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  101. "resolver_match": "ResolverMatch(func=errors.views.DivideZeroView, args=(), kwargs={}, url_name=divide_zero, app_names=[], namespaces=[], route=divide-zero/)",
  102. "callback": "<function DivideZeroView at 0x7f181e818d30>",
  103. "callback_args": [],
  104. "callback_kwargs": {},
  105. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f181e7299d0>",
  106. "wrapped_callback": "<function DivideZeroView at 0x7f181e818d30>"
  107. },
  108. "in_app": true
  109. },
  110. {
  111. "filename": "django/views/generic/base.py",
  112. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  113. "function": "view",
  114. "module": "django.views.generic.base",
  115. "lineno": 71,
  116. "pre_context": [
  117. " if not hasattr(self, 'request'):",
  118. " raise AttributeError(",
  119. " \"%s instance has no 'request' attribute. Did you override \"",
  120. " \"setup() and forget to call super()?\" % cls.__name__",
  121. " )"
  122. ],
  123. "context_line": " return self.dispatch(request, *args, **kwargs)",
  124. "post_context": [
  125. " view.view_class = cls",
  126. " view.view_initkwargs = initkwargs",
  127. "",
  128. " # take name and docstring from class",
  129. " update_wrapper(view, cls, updated=())"
  130. ],
  131. "vars": {
  132. "request": "<WSGIRequest: GET '/divide-zero/'>",
  133. "args": [],
  134. "kwargs": {},
  135. "self": "<errors.views.DivideZeroView object at 0x7f181e6651f0>",
  136. "cls": "<class 'errors.views.DivideZeroView'>",
  137. "initkwargs": {}
  138. },
  139. "in_app": true
  140. },
  141. {
  142. "filename": "django/views/generic/base.py",
  143. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  144. "function": "dispatch",
  145. "module": "django.views.generic.base",
  146. "lineno": 97,
  147. "pre_context": [
  148. " # request method isn't on the approved list.",
  149. " if request.method.lower() in self.http_method_names:",
  150. " handler = getattr(self, request.method.lower(), self.http_method_not_allowed)",
  151. " else:",
  152. " handler = self.http_method_not_allowed"
  153. ],
  154. "context_line": " return handler(request, *args, **kwargs)",
  155. "post_context": [
  156. "",
  157. " def http_method_not_allowed(self, request, *args, **kwargs):",
  158. " logger.warning(",
  159. " 'Method Not Allowed (%s): %s', request.method, request.path,",
  160. " extra={'status_code': 405, 'request': request}"
  161. ],
  162. "vars": {
  163. "self": "<errors.views.DivideZeroView object at 0x7f181e6651f0>",
  164. "request": "<WSGIRequest: GET '/divide-zero/'>",
  165. "args": [],
  166. "kwargs": {},
  167. "handler": "<bound method DivideZeroView.get of <errors.views.DivideZeroView object at 0x7f181e6651f0>>"
  168. },
  169. "in_app": true
  170. },
  171. {
  172. "filename": "errors/views.py",
  173. "abs_path": "/code/errors/views.py",
  174. "function": "get",
  175. "module": "errors.views",
  176. "lineno": 18,
  177. "pre_context": [
  178. " template_name = \"home.html\"",
  179. "",
  180. "",
  181. "class DivideZeroView(View):",
  182. " def get(self, request, *args, **kwargs):"
  183. ],
  184. "context_line": " 0/0",
  185. "post_context": [
  186. "",
  187. "",
  188. "class DatabaseErrorView(View):",
  189. " def get(self, request, *args, **kwargs):",
  190. " User.objects.get(id=\"9999999\")"
  191. ],
  192. "vars": {
  193. "self": "<errors.views.DivideZeroView object at 0x7f181e6651f0>",
  194. "request": "<WSGIRequest: GET '/divide-zero/'>",
  195. "args": [],
  196. "kwargs": {}
  197. },
  198. "in_app": true
  199. }
  200. ]
  201. }
  202. }
  203. ]
  204. },
  205. "event_id": "dd9e1afb828a44d5b4df0183adaee5d8",
  206. "timestamp": "2020-05-02T16:54:20.487733Z",
  207. "breadcrumbs": [],
  208. "transaction": "/divide-zero/",
  209. "contexts": {
  210. "trace": {
  211. "trace_id": "9aaeffa209dd4e2d85a084826e8ef964",
  212. "span_id": "a8483a699fbe8ac6",
  213. "parent_span_id": "a3a4374fe17c42a0",
  214. "op": "django.middleware",
  215. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__"
  216. },
  217. "runtime": {
  218. "name": "CPython",
  219. "version": "3.8.2",
  220. "build": "3.8.2 (default, Apr 23 2020, 14:32:57) \n[GCC 8.3.0]"
  221. }
  222. },
  223. "modules": {
  224. "wheel": "0.34.2",
  225. "appdirs": "1.4.3"
  226. },
  227. "extra": { "sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"] },
  228. "request": {
  229. "url": "http://localhost:8001/divide-zero/",
  230. "query_string": "foo=bar&foo=bars&lol=ha",
  231. "method": "GET",
  232. "env": { "SERVER_NAME": "2f96b0310f37", "SERVER_PORT": "8001" },
  233. "headers": {
  234. "Content-Length": "",
  235. "Content-Type": "text/plain",
  236. "Host": "localhost:8001",
  237. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0",
  238. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  239. "Accept-Language": "en-US,en;q=0.5",
  240. "Accept-Encoding": "gzip, deflate",
  241. "Connection": "keep-alive",
  242. "Referer": "http://localhost:8001/",
  243. "Cookie": "",
  244. "Upgrade-Insecure-Requests": "1"
  245. }
  246. },
  247. "server_name": "2f96b0310f37",
  248. "sdk": {
  249. "name": "sentry.python",
  250. "version": "0.14.3",
  251. "packages": [{ "name": "pypi:sentry-sdk", "version": "0.14.3" }],
  252. "integrations": [
  253. "argv",
  254. "atexit",
  255. "dedupe",
  256. "django",
  257. "excepthook",
  258. "logging",
  259. "modules",
  260. "stdlib",
  261. "threading"
  262. ]
  263. },
  264. "platform": "python",
  265. "_meta": {
  266. "request": {
  267. "headers": { "Cookie": { "": { "rem": [["!config", "x", 0, 1078]] } } }
  268. }
  269. }
  270. }