Activity log for bug #1879100

Date Who What changed Old value New value Message
2020-05-16 22:20:03 Eugene Morozov bug added bug
2020-05-16 22:20:03 Eugene Morozov attachment added meliae.patch https://bugs.launchpad.net/bugs/1879100/+attachment/5372740/+files/meliae.patch
2020-05-16 22:23:02 Eugene Morozov description When trying to find memory leak in my Django application, meliae fails immediately with the following traceback: rtv-sqr-api | [2020-05-15 19:55:29,753] ERROR: django.request: Internal Server Error: /play/dump/ rtv-sqr-api | Traceback (most recent call last): rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner rtv-sqr-api | response = get_response(request) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response rtv-sqr-api | response = self._get_response(request) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response rtv-sqr-api | response = self.process_exception_by_middleware(e, request) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response rtv-sqr-api | response = wrapped_callback(request, *callback_args, **callback_kwargs) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view rtv-sqr-api | return self.dispatch(request, *args, **kwargs) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch rtv-sqr-api | return handler(request, *args, **kwargs) rtv-sqr-api | File "/opt/project/apps/play/views.py", line 238, in get rtv-sqr-api | meliae.scanner.dump_all_objects('/opt/project/heap.dump') rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 141, in dump_all_objects rtv-sqr-api | dump_all_referenced(outf, all_objs, is_pending=True) rtv-sqr-api | File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 72, in dump_all_referenced rtv-sqr-api | for ref in get_referents(next): rtv-sqr-api | OverflowError: Python int too large to convert to C long After compiling python with debug information and stepping through a debugger, I found out that this happens because meliae attempts to serialize Python long integers as C long. But Python long has an unlimited range and cannot be cast to C long. I'm attaching a small patch that tries to serialize Python long as C long long and returning -1 in case if Python long is too large for C long. When trying to find memory leak in my Django application, meliae fails immediately with the following traceback: ERROR: django.request: Internal Server Error: /play/dump/ Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response response = self._get_response(request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch return handler(request, *args, **kwargs) File "/opt/project/apps/play/views.py", line 238, in get meliae.scanner.dump_all_objects('/opt/project/heap.dump') File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 141, in dump_all_objects dump_all_referenced(outf, all_objs, is_pending=True) File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 72, in dump_all_referenced for ref in get_referents(next): OverflowError: Python int too large to convert to C long After compiling python with debug information and stepping through the code in gdb, I found out that this happens because meliae attempts to serialize Python long integers as C long. But Python long has an unlimited range and cannot be cast to C long. I'm attaching a small patch that tries to serialize Python long as C long long and returning -1 in case if Python long is too large for C long.
2020-05-16 22:23:20 Eugene Morozov attachment removed meliae.patch https://bugs.launchpad.net/meliae/+bug/1879100/+attachment/5372740/+files/meliae.patch
2020-05-16 22:23:40 Eugene Morozov attachment added meliae.patch https://bugs.launchpad.net/meliae/+bug/1879100/+attachment/5372758/+files/meliae.patch
2020-05-16 22:24:44 Eugene Morozov description When trying to find memory leak in my Django application, meliae fails immediately with the following traceback: ERROR: django.request: Internal Server Error: /play/dump/ Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response response = self._get_response(request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch return handler(request, *args, **kwargs) File "/opt/project/apps/play/views.py", line 238, in get meliae.scanner.dump_all_objects('/opt/project/heap.dump') File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 141, in dump_all_objects dump_all_referenced(outf, all_objs, is_pending=True) File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 72, in dump_all_referenced for ref in get_referents(next): OverflowError: Python int too large to convert to C long After compiling python with debug information and stepping through the code in gdb, I found out that this happens because meliae attempts to serialize Python long integers as C long. But Python long has an unlimited range and cannot be cast to C long. I'm attaching a small patch that tries to serialize Python long as C long long and returning -1 in case if Python long is too large for C long. When trying to find memory leak in my Django application, meliae fails immediately with the following traceback: ERROR: django.request: Internal Server Error: /play/dump/ Traceback (most recent call last):   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner     response = get_response(request)   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response     response = self._get_response(request)   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response     response = self.process_exception_by_middleware(e, request)   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response     response = wrapped_callback(request, *callback_args, **callback_kwargs)   File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view     return self.dispatch(request, *args, **kwargs)   File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch     return handler(request, *args, **kwargs)   File "/opt/project/apps/play/views.py", line 238, in get     meliae.scanner.dump_all_objects('/opt/project/heap.dump')   File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 141, in dump_all_objects     dump_all_referenced(outf, all_objs, is_pending=True)   File "/usr/local/lib/python2.7/site-packages/meliae/scanner.py", line 72, in dump_all_referenced     for ref in get_referents(next): OverflowError: Python int too large to convert to C long After compiling python with debug information and stepping through the code in gdb, I found out that this happens because meliae attempts to serialize Python long integers as C long. But Python long has an unlimited range and cannot be cast to C long. I'm attaching a small patch that attempts to serialize Python long as C long long and returning -1 in case if Python long is too large for C long. I was able to generate dump successfully after building meliae with this change.
2020-05-16 22:26:38 Eugene Morozov attachment removed meliae.patch https://bugs.launchpad.net/meliae/+bug/1879100/+attachment/5372758/+files/meliae.patch
2020-05-16 22:26:51 Eugene Morozov attachment added meliae.patch https://bugs.launchpad.net/meliae/+bug/1879100/+attachment/5372759/+files/meliae.patch
2020-05-18 20:53:00 Eugene Morozov attachment added meliae.patch https://bugs.launchpad.net/meliae/+bug/1879100/+attachment/5373644/+files/meliae.patch
2020-05-27 18:35:05 Chris Mayo bug added subscriber Chris Mayo
2020-06-14 12:41:09 Jelmer Vernooij bug added subscriber Jelmer Vernooij