-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
valum leaks memory #211
Comments
Looks like it was missing a null-check. The memory leak was caused by an invalid hash table insertion of the negotiated charset into the |
i deployed your latest changes but apparently they did not solve the problem. i did some tests with valgrind on the issue and added a massif-outputfile to the gist in case it is of any help. |
I'll investigate the issue tomorrow. If you do a The easiest way is to use |
i executed the check another thing to say is that i experience those
|
At first glance, it looks like these might be false positives due to
valac's generation of code that uses g_slice_* APIs. Are you running
the test with
https://developer.gnome.org/glib/stable/glib-running.html#G_SLICE set
to `always-malloc`?
…On Thu, Jun 22, 2017 at 7:08 AM, grindhold ***@***.***> wrote:
i executed the check
==1877== Memcheck, a memory error detector
==1877== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et
al.
==1877== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for
copyright info
==1877== Command: ./testweb
==1877==
** Message: vsgi-application.vala:250: Listening on
'http://127.0.0.1:3003/'.
** Message: vsgi-application.vala:250: Listening on
'http://[::1]:3003/'.
==1877== Thread 3 pool:
==1877== Invalid write of size 8
==1877== at 0x5410885: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0xC5F87CC:
vsgi_http_message_body_output_stream_real_flush (vsgi-http.vala:67)
==1877== by 0x65A90D9: g_output_stream_flush (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x65A6FFD: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x65A930C: g_output_stream_close (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x58EB3D8: vsgi_response_real_expand
(vsgi-response.vala:422)
==1877== by 0x58EB569: vsgi_response_expand
(vsgi-response.vala:417)
==1877== by 0x58EB828: vsgi_response_expand_utf8
(vsgi-response.vala:444)
==1877== by 0x108DDE: testweb_rewrite (testweb.vala:14)
==1877== by 0x108EE1: _testweb_rewrite_valum_handler_callback
(testweb.c:81)
==1877== by 0x56A77C2: valum_route_fire (valum-route.vala:67)
==1877== by 0x56AC2EC: valum_router_perform_routing
(valum-router.vala:372)
==1877== Address 0xc29fc38 is 168 bytes inside a block of size 240
free'd
==1877== at 0x4C2CDDB: free (vg_replace_malloc.c:530)
==1877== by 0x540EBA1: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x54104FF: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x54106DA: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x4E826A9: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E82A5F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E82B0B: g_main_context_iteration (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x65D872C: g_application_run (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x58F2F9D: vsgi_server_run (vsgi-server.vala:173)
==1877== by 0x109064: testweb_main (testweb.vala:25)
==1877== by 0x1090C6: main (testweb.vala:17)
==1877== Block was alloc'd at
==1877== at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==1877== by 0x4E87E08: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EA0342: g_slice_alloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EA096D: g_slice_alloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x540EA7E: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x5410711: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x5411773: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x515EFFF: g_cclosure_marshal_VOID__OBJECTv (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515C1A3: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51768CC: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5176FBE: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x54244DF: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877==
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
(testweb:1877): libsoup-CRITICAL **: soup_message_io_unpause:
assertion 'io != NULL' failed
==1877==
==1877== Process terminating with default action of signal 2 (SIGINT)
==1877== at 0x5BE06AD: ??? (syscall-template.S:84)
==1877== by 0x4E829F5: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E82B0B: g_main_context_iteration (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x65D872C: g_application_run (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x58F2F9D: vsgi_server_run (vsgi-server.vala:173)
==1877== by 0x109064: testweb_main (testweb.vala:25)
==1877== by 0x1090C6: main (testweb.vala:17)
==1877==
==1877== HEAP SUMMARY:
==1877== in use at exit: 49,628,345 bytes in 922,112 blocks
==1877== total heap usage: 5,506,448 allocs, 4,584,336 frees,
797,352,767 bytes allocated
==1877==
==1877== Thread 1:
==1877== 16 bytes in 1 blocks are possibly lost in loss record 525 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179430: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 526 of
1,850
==1877== at 0x4C2BADF: malloc (vg_replace_malloc.c:298)
==1877== by 0x4C2DE5F: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179300: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 527 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179430: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D311: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 528 of
1,850
==1877== at 0x4C2BADF: malloc (vg_replace_malloc.c:298)
==1877== by 0x4C2DE5F: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179300: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D311: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 529 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179430: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51669D4: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157151: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 530 of
1,850
==1877== at 0x4C2BADF: malloc (vg_replace_malloc.c:298)
==1877== by 0x4C2DE5F: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179300: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51669D4: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157151: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 531 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179430: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5161B0B: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157156: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 16 bytes in 1 blocks are possibly lost in loss record 532 of
1,850
==1877== at 0x4C2BADF: malloc (vg_replace_malloc.c:298)
==1877== by 0x4C2DE5F: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179300: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF80: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5161B0B: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157156: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 24 bytes in 1 blocks are possibly lost in loss record 638 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x517C677: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517BDA4: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516AFD7: g_param_spec_flags (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x56A8408: valum_route_class_init (valum-route.vala:30)
==1877== by 0x517C4F6: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517BDA4: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516316B: g_object_new_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51633B0: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x569E6E7: valum_matcher_route_construct
(valum-matcher-route.vala:30)
==1877== by 0x569E826: valum_matcher_route_new
(valum-matcher-route.vala:29)
==1877==
==1877== 32 bytes in 1 blocks are possibly lost in loss record 945 of
1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x517C677: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517BDA4: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516AEE7: g_param_spec_enum (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x659707B: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x517C4F6: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516316B: g_object_new_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51633B0: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x659774A: g_inet_address_new_loopback (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x54187A9: soup_server_listen_local (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0xC5FC62A: vsgi_http_server_real_listen
(vsgi-http.vala:322)
==1877==
==1877== 40 bytes in 1 blocks are possibly lost in loss record 1,038
of 1,850
==1877== at 0x4C2DDCF: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x51788B7: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517E2BC: g_type_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D4DD: g_flags_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x54046B6: soup_message_flags_get_type (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x5409BF4: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x517C4F6: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516316B: g_object_new_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51633B0: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5416EF7: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x515EFFF: g_cclosure_marshal_VOID__OBJECTv (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877==
==1877== 64 bytes in 1 blocks are possibly lost in loss record 1,152
of 1,850
==1877== at 0x4C2DDCF: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x51788B7: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517E2BC: g_type_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D3DD: g_enum_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5404876: soup_encoding_get_type (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x53F4D90: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x517C4F6: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516316B: g_object_new_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51633B0: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x53F5AB7: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x540F643: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877==
==1877== 80 bytes in 1 blocks are possibly lost in loss record 1,339
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x517C677: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517BDA4: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517F247: g_type_create_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5166FB2: g_param_spec_internal (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516B4F1: g_param_spec_object (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x569D1F0: valum_context_class_init
(valum-context.vala:31)
==1877== by 0x517C4F6: g_type_class_ref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5162CA7: g_object_newv (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51633C3: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x569C360: valum_context_construct
(valum-context.vala:48)
==1877==
==1877== 80 bytes in 2 blocks are possibly lost in loss record 1,340
of 1,850
==1877== at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==1877== by 0x4E87E08: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EA1EE7: g_memdup (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0xC5FA407: _vala_array_dup2 (vsgi-http.vala:192)
==1877== by 0xC5FA5DA: vsgi_http_connection_construct
(vsgi-http.vala:192)
==1877== by 0xC5FA73A: vsgi_http_connection_new
(vsgi-http.vala:189)
==1877== by 0xC5FBBE8: __lambda4_ (vsgi-http.vala:277)
==1877== by 0xC5FC306: ___lambda4__soup_server_callback
(vsgi-http.vala:276)
==1877== by 0x54172DE: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x515BF74: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516DF81: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5176BDB: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877==
==1877== 96 bytes in 1 blocks are possibly lost in loss record 1,598
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5178939: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5178A23: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515707A: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 96 bytes in 1 blocks are possibly lost in loss record 1,599
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5178939: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5178A23: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF72: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 96 bytes in 1 blocks are possibly lost in loss record 1,600
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5178939: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5178A23: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF72: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D311: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 96 bytes in 1 blocks are possibly lost in loss record 1,601
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5178939: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5178A23: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF72: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51669D4: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157151: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 96 bytes in 1 blocks are possibly lost in loss record 1,602
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5178939: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5178A23: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DF72: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5161B0B: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157156: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 132 bytes in 1 blocks are possibly lost in loss record 1,670
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179D5F: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DFD0: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 132 bytes in 1 blocks are possibly lost in loss record 1,671
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179D5F: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DFD0: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515D311: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157147: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 148 bytes in 1 blocks are possibly lost in loss record 1,679
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179B22: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DFD0: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x51669D4: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157151: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 148 bytes in 1 blocks are possibly lost in loss record 1,680
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4E87E60: g_malloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x5179B22: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517DFD0: g_type_register_fundamental (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5161B0B: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5157156: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 184 bytes in 1 blocks are possibly lost in loss record 1,706
of 1,850
==1877== at 0x4C2DDCF: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x51788B7: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517E2BC: g_type_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5168659: g_param_type_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516A983: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x515715B: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x400F649: call_init.part.0 (dl-init.c:72)
==1877== by 0x400F75A: call_init (dl-init.c:30)
==1877== by 0x400F75A: _dl_init (dl-init.c:120)
==1877== by 0x4000CD9: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so)
==1877==
==1877== 184 bytes in 1 blocks are possibly lost in loss record 1,707
of 1,850
==1877== at 0x4C2DDCF: realloc (vg_replace_malloc.c:785)
==1877== by 0x4E87EC7: g_realloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x51788B7: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517E2BC: g_type_register_static (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x517E684: g_type_register_static_simple (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x65C372F: g_task_get_type (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x65C3868: g_task_new (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x659D517: g_io_scheduler_push_job (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x56AF023: valum_router_real_handle_async_co
(valum-router.vala:471)
==1877== by 0x56AE960: valum_router_real_handle_async
(valum-router.vala:27)
==1877== by 0x58D9260: vsgi_handler_handle_async
(vsgi-handler.vala:21)
==1877== by 0xC5FC259: __lambda4_ (vsgi-http.vala:297)
==1877==
==1877== 368 bytes in 1 blocks are possibly lost in loss record 1,746
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4011CE1: allocate_dtv (dl-tls.c:322)
==1877== by 0x401266D: _dl_allocate_tls (dl-tls.c:539)
==1877== by 0x611B00B: allocate_stack (allocatestack.c:580)
==1877== by 0x611B00B: pthread_create@@GLIBC_2.2.5
(pthread_create.c:539)
==1877== by 0x4EC7ECF: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EAA6DE: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EAA797: g_thread_new (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E838D0: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E83922: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4E839D8: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EC75B9: g_unix_signal_add_full (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x58D2EA7: vsgi_application_real_command_line
(vsgi-application.vala:257)
==1877==
==1877== 368 bytes in 1 blocks are possibly lost in loss record 1,747
of 1,850
==1877== at 0x4C2DBC5: calloc (vg_replace_malloc.c:711)
==1877== by 0x4011CE1: allocate_dtv (dl-tls.c:322)
==1877== by 0x401266D: _dl_allocate_tls (dl-tls.c:539)
==1877== by 0x611B00B: allocate_stack (allocatestack.c:580)
==1877== by 0x611B00B: pthread_create@@GLIBC_2.2.5
(pthread_create.c:539)
==1877== by 0x4EC7ECF: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EAA6DE: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EAAA6C: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EAB08A: g_thread_pool_push (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x65C3FEA: g_task_run_in_thread (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x659D555: g_io_scheduler_push_job (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5000.3)
==1877== by 0x56AF023: valum_router_real_handle_async_co
(valum-router.vala:471)
==1877== by 0x56AE960: valum_router_real_handle_async
(valum-router.vala:27)
==1877==
==1877== 100,272 bytes in 16,712 blocks are definitely lost in loss
record 1,801 of 1,850
==1877== at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==1877== by 0x4E87E08: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EA1EAE: g_strdup (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x58E9234: _vsgi_response_mark_content_as_utf8
(vsgi-response.vala:325)
==1877== by 0x58EB7D5: vsgi_response_expand_utf8
(vsgi-response.vala:443)
==1877== by 0x108DDE: testweb_rewrite (testweb.vala:14)
==1877== by 0x108EE1: _testweb_rewrite_valum_handler_callback
(testweb.c:81)
==1877== by 0x56A77C2: valum_route_fire (valum-route.vala:67)
==1877== by 0x56AC2EC: valum_router_perform_routing
(valum-router.vala:372)
==1877== by 0x56ABB63: ______lambda8_ (valum-router.vala:377)
==1877== by 0x56ABBDB: _______lambda8__valum_next_callback
(valum-router.c:2340)
==1877== by 0x569E1CB: valum_forward (valum-forward.vala:29)
==1877==
==1877== 668,400 bytes in 16,710 blocks are definitely lost in loss
record 1,824 of 1,850
==1877== at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==1877== by 0x4E87E08: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0x4EA1EE7: g_memdup (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3)
==1877== by 0xC5FA407: _vala_array_dup2 (vsgi-http.vala:192)
==1877== by 0xC5FA5DA: vsgi_http_connection_construct
(vsgi-http.vala:192)
==1877== by 0xC5FA73A: vsgi_http_connection_new
(vsgi-http.vala:189)
==1877== by 0xC5FBBE8: __lambda4_ (vsgi-http.vala:277)
==1877== by 0xC5FC306: ___lambda4__soup_server_callback
(vsgi-http.vala:276)
==1877== by 0x54172DE: ??? (in
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.8.0)
==1877== by 0x515BF74: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x516DF81: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877== by 0x5176BDB: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.3)
==1877==
==1877== LEAK SUMMARY:
==1877== definitely lost: 768,672 bytes in 33,422 blocks
==1877== indirectly lost: 0 bytes in 0 blocks
==1877== possibly lost: 2,592 bytes in 28 blocks
==1877== still reachable: 38,121,737 bytes in 804,795 blocks
==1877== of which reachable via heuristic:
==1877== length64 : 1,040 bytes in
20 blocks
==1877== newarray : 1,744 bytes in
29 blocks
==1877== suppressed: 0 bytes in 0 blocks
==1877== Reachable blocks (those to which a pointer was found) are
not shown.
==1877== To see them, rerun with: --leak-check=full
--show-leak-kinds=all
==1877==
==1877== For counts of detected and suppressed errors, rerun with: -v
==1877== ERROR SUMMARY: 35 errors from 30 contexts (suppressed: 0
from 0)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Okay, with
|
@grindhold could this be in
|
This looks like a nasty memory case because it reuses the passed hash table and I'm pretty sure it does not have cleanup callback for keys and values. I'll try to fix that all around. |
The specific issue (#211) was caused by a leaky hash table and this is a general situation if the 'full' constructor is not being used. Use explicit 'full' constructor wherever possible and in particular: - reset and free 'GLib.Value' in context - fix copied hash table when setting the 'charset' parameter
@grindhold You can test 8f6f117, it shouldn't leak. All tests pass with valgrind except |
now i have a pretty unstable application. that will answer ~50 requests and then throw a HTTP 500 out of nowhere.
In this conrete case, i started the client application two times. First it throws 1 to n of The amount of requests that I am able to send until a 500-error occurs, varies greatly between 10s and something about 1000. It feels like a race condition. Memory usage is still apearing to only rise when I repeatedly start the testscript. Do you test with the code i provided or solely against unittests? In case you test with the gist-code, and do not encounter the same problems, maybe we have a significant difference in our environments that causes the misbehaviour. I run my code inside an lxc-container. Thanks for the nice work on the bug so far ;) |
Fix #211 by resolving the caused memory leak.
I'm getting this but seeming lt the other way round to @grindhold
|
Opened this "upstream" valum-framework/vsgi#2 |
i compiled a minimal example in the following gist
https://gist.github.com/grindhold/664f54c743e49d1a39b2255061fd3d37
When i start the client-script it starts making requests to the server, while doing so the server will start to use more and more memory (about 3MB/s on my testing machine with local connections) and not free it after the requests are finished.
Tested with current git-master on debian stretch
The text was updated successfully, but these errors were encountered: