
Originally Posted by
AlexeyS
Попробуйте откатить или обновить только libuv - других значительных изменений там не видно, видимо проблема именно в ней.
Да, вероятно. Проблема в том, что мы гадаем.
Сегодня выделил из исходников dnscrypt-proxy в отдельный пакет libuv. Теперь можно будет играться с версией библиотеки вплоть до достижения результата
Например, последний вариант dnscrypt-proxy 0.9.5 в репозитории сейчас включает libuv с сегодняшним коммитом:
2c983fb994 unix: fix memory leak in libev
Но первая проверка пока не утешает:
Code:
[INFO] Generating a new key pair
[INFO] Done
[INFO] Server certificate #1323392947 received
[INFO] This certificate looks valid
[INFO] Server key fingerprint is E07C:5F90:03C2:D764:A9FC:9A1E:6633:632A:0FE0:B1C5:5EF9:894A:FC7A:BA18:4A62:462E
[INFO] Proxying from [127.0.0.1 (60053)] to [208.67.220.220 (53)]
Thu Jun 14 16:10:02 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:15:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:20:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:25:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:30:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:35:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:40:02 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:45:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
Thu Jun 14 16:50:01 UTC 2012 mapped: 2060K writeable/private: 524K shared: 0K Heap Size: 372 kB
[INFO] Refetching server certificates
[INFO] Server certificate #1323392947 received
[INFO] This certificate looks valid
[INFO] Server key fingerprint is E07C:5F90:03C2:D764:A9FC:9A1E:6633:632A:0FE0:B1C5:5EF9:894A:FC7A:BA18:4A62:462E
Thu Jun 14 16:55:01 UTC 2012 mapped: 2124K writeable/private: 588K shared: 0K Heap Size: 436 kB
Thu Jun 14 17:00:01 UTC 2012 mapped: 2124K writeable/private: 588K shared: 0K Heap Size: 436 kB
Thu Jun 14 17:05:02 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:10:02 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:15:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:20:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:25:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:30:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:35:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:40:02 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:45:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 17:50:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
[INFO] Refetching server certificates
[INFO] Server certificate #1323392947 received
[INFO] This certificate looks valid
[INFO] Server key fingerprint is E07C:5F90:03C2:D764:A9FC:9A1E:6633:632A:0FE0:B1C5:5EF9:894A:FC7A:BA18:4A62:462E
Thu Jun 14 17:55:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:00:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:05:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:10:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:15:02 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:20:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:25:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
Thu Jun 14 18:30:01 UTC 2012 mapped: 2768K writeable/private: 1232K shared: 0K Heap Size: 1080 kB
dnscrypt-proxy, напомню, DNS-имена не кэширует, поэтому рост кучи для меня по прежнему не объясним. Прошу заинтересованных погонять новый билд, нам никогда не поздно откатиться на более древнюю версию libuv, ту, что была в стабильном dnscrypt-proxy 0.9.3.

Originally Posted by
lly
Тогда это смахивает больше не на утечку, а на бесконтрольное использование heap, как в Java - объекты создаём по поводу и без повода, а освобождением займётся добрый дядя(garbage collector).
Вообще, эта libuv - platform layer для node.js, причём изначально под Windows. Не исключено, что автор кода по привичке «воображает» присутствие garbage collector'а.

Originally Posted by
lly
А если прогу заставить выйти штатно - valgrind ничего не показывает?
Ничего. Только summary по нескольким потенциальным косякам uclibc, valgrind использовал как в большинстве HOW-TO'шек:
Code:
$ valgrind --tool=memcheck --leak-check=yes --leak-resolution=high --num-callers=40 --verbose --log-file=/opt/var/log/dnscrypt-proxy-debug.log --time-stamp=yes /tmp/mnt/DOWNLOAD/tmp/dnscrypt-proxy --local-port=60053...