Bug 35335

Summary: тупит около 3х секунд при любом запросе
Product: Branch p8 Reporter: Alexey Sheplyakov <asheplyakov>
Component: dictdAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P3    
Version: не указана   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
strace клиента (dict)
none
strace сервера (dictd) none

Description Alexey Sheplyakov 2018-09-03 14:42:21 MSK
Created attachment 7735 [details]
strace клиента (dict)

Как воспоизвести:

sudo apt-get install -y dict dictd dict-mueller7-utf8
sudo systemctl enable dictd.service
sudo systemctl start dictd
dict acute

Ожидаемый результат: "почти сразу" (менее 300 миллисекунд) напечатан перевод слова.

Наблюдаемый результат: dict тупит почти 3 секунды на чтении из сокета.

Предполагаемая причина: в функции dictd_daemon [1], обрабатывающей клиентский запрос, пытается узнать имя клиентского хоста по его IP, что при отсутствии обратной dns записи занимает некоторое время... как раз те самые 3 секунды.

Предлагаемое решение: выпилить reverse resolve вместе с "авторизацией" по ip/hostname (бесполезна в современных сетях, и не нужна программе, которая в 99.9999% случаев слушает только 127.0.0.1)



[1] http://git.altlinux.org/gears/d/dictd.git?p=dictd.git;a=blob;f=dictd/daemon.c;h=7154a50f1aaa5ac846dd40bf7ee7222f13bde928;hb=c51ad70e5f3ce5f65da810154c6a0dba5f04106a#l1517
Comment 1 Alexey Sheplyakov 2018-09-03 14:44:34 MSK
Created attachment 7736 [details]
strace сервера (dictd)