*** Обнаружено переполнение буфера ***: /usr/local/sbin/tincd завершено

Я работаю с tinc версии 1.1pre17, но столкнулся с проблемой переполнения буфера.

Я знаю, что по умолчанию tinc может иметь только 1024 открытых файловых дескриптора, что ограничивает количество узлов, к которым может подключаться tinc, поэтому центральный узел может поддерживать мета-соединения только примерно с 1000 узлами. Поскольку мне нужно подключить более 1000 узлов, я изменил максимальное количество открытых файлов и значение в "/proc / sys / fs / file-max" на 65536. Однако возникла другая проблема: когда-то количество tinc дескрипторы открытых файлов достигают 1024, tinc вызовет ошибку:

      *** buffer overflow detected ***: /usr/local/sbin/tincd terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7f5c4bdc77f5]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f5c4be6921c]
/lib/x86_64-linux-gnu/libc.so.6(+0x117220)[0x7f5c4be67220]
/lib/x86_64-linux-gnu/libc.so.6(+0x119167)[0x7f5c4be69167]
/usr/local/sbin/tincd(+0x75d5)[0x55d70aadb5d5]
/usr/local/sbin/tincd(+0x765a)[0x55d70aadb65a]
/usr/local/sbin/tincd(+0x1367e)[0x55d70aae767e]
/usr/local/sbin/tincd(+0x7c68)[0x55d70aadbc68]
/usr/local/sbin/tincd(+0xb96d)[0x55d70aadf96d]
/usr/local/sbin/tincd(+0x4892)[0x55d70aad8892]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f5c4bd70840]
/usr/local/sbin/tincd(+0x49a9)[0x55d70aad89a9]
======= Memory map: ========
55d70aad4000-55d70ab0d000 r-xp 00000000 ca:01 2986                       /usr/local/sbin/tincd
55d70ad0d000-55d70ad0e000 r--p 00039000 ca:01 2986                       /usr/local/sbin/tincd
55d70ad0e000-55d70ad16000 rw-p 0003a000 ca:01 2986                       /usr/local/sbin/tincd
55d70ad16000-55d70ada4000 rw-p 00000000 00:00 0
55d70b654000-55d70c263000 rw-p 00000000 00:00 0                          [heap]
7f5c4b936000-7f5c4b94c000 r-xp 00000000 ca:01 1996                       /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5c4b94c000-7f5c4bb4b000 ---p 00016000 ca:01 1996                       /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5c4bb4b000-7f5c4bb4c000 rw-p 00015000 ca:01 1996                       /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5c4bb4c000-7f5c4bb4f000 r-xp 00000000 ca:01 21380                      /lib/x86_64-linux-gnu/libdl-2.23.so
7f5c4bb4f000-7f5c4bd4e000 ---p 00003000 ca:01 21380                      /lib/x86_64-linux-gnu/libdl-2.23.so
7f5c4bd4e000-7f5c4bd4f000 r--p 00002000 ca:01 21380                      /lib/x86_64-linux-gnu/libdl-2.23.so
7f5c4bd4f000-7f5c4bd50000 rw-p 00003000 ca:01 21380                      /lib/x86_64-linux-gnu/libdl-2.23.so
7f5c4bd50000-7f5c4bf10000 r-xp 00000000 ca:01 21384                      /lib/x86_64-linux-gnu/libc-2.23.so
7f5c4bf10000-7f5c4c110000 ---p 001c0000 ca:01 21384                      /lib/x86_64-linux-gnu/libc-2.23.so
7f5c4c110000-7f5c4c114000 r--p 001c0000 ca:01 21384                      /lib/x86_64-linux-gnu/libc-2.23.so
7f5c4c114000-7f5c4c116000 rw-p 001c4000 ca:01 21384                      /lib/x86_64-linux-gnu/libc-2.23.so
7f5c4c116000-7f5c4c11a000 rw-p 00000000 00:00 0
7f5c4c11a000-7f5c4c222000 r-xp 00000000 ca:01 21396                      /lib/x86_64-linux-gnu/libm-2.23.so
7f5c4c222000-7f5c4c421000 ---p 00108000 ca:01 21396                      /lib/x86_64-linux-gnu/libm-2.23.so
7f5c4c421000-7f5c4c422000 r--p 00107000 ca:01 21396                      /lib/x86_64-linux-gnu/libm-2.23.so
7f5c4c422000-7f5c4c423000 rw-p 00108000 ca:01 21396                      /lib/x86_64-linux-gnu/libm-2.23.so
7f5c4c423000-7f5c4c444000 r-xp 00000000 ca:01 2188                       /lib/x86_64-linux-gnu/liblzo2.so.2.0.0
7f5c4c444000-7f5c4c643000 ---p 00021000 ca:01 2188                       /lib/x86_64-linux-gnu/liblzo2.so.2.0.0
7f5c4c643000-7f5c4c644000 r--p 00020000 ca:01 2188                       /lib/x86_64-linux-gnu/liblzo2.so.2.0.0
7f5c4c644000-7f5c4c645000 rw-p 00021000 ca:01 2188                       /lib/x86_64-linux-gnu/liblzo2.so.2.0.0
7f5c4c645000-7f5c4c65e000 r-xp 00000000 ca:01 17901                      /lib/x86_64-linux-gnu/libz.so.1.2.8
7f5c4c65e000-7f5c4c85d000 ---p 00019000 ca:01 17901                      /lib/x86_64-linux-gnu/libz.so.1.2.8
7f5c4c85d000-7f5c4c85e000 r--p 00018000 ca:01 17901                      /lib/x86_64-linux-gnu/libz.so.1.2.8
7f5c4c85e000-7f5c4c85f000 rw-p 00019000 ca:01 17901                      /lib/x86_64-linux-gnu/libz.so.1.2.8
7f5c4c85f000-7f5c4ca7a000 r-xp 00000000 ca:01 111518                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f5c4ca7a000-7f5c4cc79000 ---p 0021b000 ca:01 111518                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f5c4cc79000-7f5c4cc95000 r--p 0021a000 ca:01 111518                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f5c4cc95000-7f5c4cca1000 rw-p 00236000 ca:01 111518                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f5c4cca1000-7f5c4cca4000 rw-p 00000000 00:00 0
7f5c4cca4000-7f5c4ccca000 r-xp 00000000 ca:01 21417                      /lib/x86_64-linux-gnu/ld-2.23.so
7f5c4cebd000-7f5c4cec2000 rw-p 00000000 00:00 0
7f5c4cec8000-7f5c4cec9000 rw-p 00000000 00:00 0
7f5c4cec9000-7f5c4ceca000 r--p 00025000 ca:01 21417                      /lib/x86_64-linux-gnu/ld-2.23.so
7f5c4ceca000-7f5c4cecb000 rw-p 00026000 ca:01 21417                      /lib/x86_64-linux-gnu/ld-2.23.so
7f5c4cecb000-7f5c4cecc000 rw-p 00000000 00:00 0
7ffd74e62000-7ffd74e83000 rw-p 00000000 00:00 0                          [stack]
7ffd74edc000-7ffd74ede000 r--p 00000000 00:00 0                          [vvar]
7ffd74ede000-7ffd74ee0000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Затем tinc перезапустится, и все соединения будут закрыты.

Я узнал, что:

«Tinc 1.0.x использует макрос FD_SET для управления fdset_t, и он может содержать только 1024 fds. Tinc 1.1 использует libevent, и, насколько мне известно, у него нет ограничений ».

Поскольку я использую версию tinc 1.1pre17, которая должна использовать libevent, я не уверен, почему все еще возникает проблема с переполнением буфера.

Любые советы по разгадке этой загадки приветствуются! Заранее спасибо.

0 ответов

Другие вопросы по тегам