Таймауты клиентов при sv_pure > 0

reji

Участник
Сообщения
7
Реакции
0
Доброго времени.
Обнаружил на своих серверах, что при sv_pure, равном 1, где-то 20% игроков отключаются от сервера по таймауту. Вот кусочек серверного лога:
PHP:
l0707013.log:L 07/07/2013 - 16:20:04: "CUda<189><STEAM_ххх><>" disconnected (reason "CUda timed out")
l0707013.log:L 07/07/2013 - 16:22:11: "[Areal]_DahaKa_<207><STEAM_ххх><Red>" disconnected (reason "[Areal]_DahaKa_ timed out")
l0707013.log:L 07/07/2013 - 16:26:04: "[Areal]_DahaKa_<217><STEAM_ххх><>" disconnected (reason "[Areal]_DahaKa_ timed out")
l0707013.log:L 07/07/2013 - 16:26:46: "copter<215><STEAM_ххх><Red>" disconnected (reason "copter timed out")
l0707013.log:L 07/07/2013 - 16:26:56: "SwH<216><STEAM_ххх><Blue>" disconnected (reason "SwH timed out")
l0707013.log:L 07/07/2013 - 16:29:58: "Атата МаСтер<211><STEAM_ххх><Spectator>" disconnected (reason "Атата МаСтер timed out")
Если sv_pure = -1 или 0, проценты поменьше - не более 10%.

Не уверен, есть ли здесь проблема. Быть может, это отрабатывает sv_pure, отключая нехороших игроков? Но разве не должно быть в логе соответствующего сообщения?

Вот и хотел спросить у ув. форумчан, не наблюдали ли такой картины у себя?

Проценты считались таким perl-скриптом:
PHP:
#!/usr/bin/perl

$connections = 0;
$userexits = 0;
$timeouts = 0;

while (<>) {
  if (/connected, address/) {
    $connections++;
  }
  elsif (/Disconnect by user\./) {
    $userexits++;
  }
  elsif (/reason .* timed out/) {
    $timeouts++;
  }
}
$tp = int($timeouts * 1000 / $connections + 0.5) / 10;
$up = int($userexits * 1000 / $connections + 0.5) / 10;
print "Connections: $connections\n";
print "\"Disconnect by user\": $userexits ($up%)\n";
print "\"Timed out\": $timeouts ($tp%)\n";

$ cat *.log | ~/connstat
Connections: 346
"Disconnect by user": 241 (69.7%)
"Timed out": 66 (19.1%)
Игра: Team Fortress 2. Хостинг: myarena.ru. Настройки и установленные плагины приведены ниже, в посте №4.
 
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Хм, интересное наблюдение. Возможно таймаут происходит сразу в момент подключения (т.е. когда передается вайлист), интересно было бы еще найти ближайшие подключения игроков, отвалившихся по таймауту, можно ведь заметить например у [Areal]_DahaKa_ что дважды за 4 минуты...
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
reji, по идее, sv_pure будет отключать не таймаутом.

Какие плагины и модули включены? Какие настройки у сервера?
 

reji

Участник
Сообщения
7
Реакции
0
reji, по идее, sv_pure будет отключать не таймаутом.

Какие плагины и модули включены? Какие настройки у сервера?
Стоит лишь SourceMod.
sm plugins list
C-подобный:
[SM] Listing 25 plugins:
  01 "Admin Help" (1.5.0-dev+3840) by AlliedModders LLC
  02 "Client Preferences" (1.5.0-dev+3840) by AlliedModders LLC
  03 "AFK Manager" (3.5.0) by Rothgar
  04 "[TF2] Better Vote Scramble" (1.1.0) by Dr. McKay
  05 "Admin File Reader" (1.5.0-dev+3840) by AlliedModders LLC
  06 "Nextmap" (1.5.0-dev+3840) by AlliedModders LLC
  07 "Basic Chat" (1.5.0-dev+3840) by AlliedModders LLC
  08 "Reserved Slots" (1.5.0-dev+3840) by AlliedModders LLC
  09 "Map Nominations" (1.5.0-dev+3840) by AlliedModders LLC
  10 "Fun Commands" (1.5.0-dev+3840) by AlliedModders LLC
  11 "Basic Ban Commands" (1.5.0-dev+3840) by AlliedModders LLC
  12 "Anti-Flood" (1.5.0-dev+3840) by AlliedModders LLC
  13 "MapChooser" (1.5.0-dev+3840) by AlliedModders LLC
  14 "Rock The Vote" (1.5.0-dev+3840) by AlliedModders LLC
  15 "Win panel for losing team" (1.4) by Reflex
  16 "Player Commands" (1.5.0-dev+3840) by AlliedModders LLC
  17 "Admin Menu" (1.5.0-dev+3840) by AlliedModders LLC
  18 "Fun Votes" (1.5.0-dev+3840) by AlliedModders LLC
  19 "Basic Commands" (1.5.0-dev+3840) by AlliedModders LLC
  20 "Sound Commands" (1.5.0-dev+3840) by AlliedModders LLC
  21 "Basic Comm Control" (1.5.0-dev+3840) by AlliedModders LLC
  22 "Players Votes" (1.5.0) by The Resident, pZv!
  23 "RandomCycle" (1.5.0-dev+3840) by AlliedModders LLC
  24 "Basic Votes" (1.5.0-dev+3840) by AlliedModders LLC
  25 "Basic Info Triggers" (1.5.0-dev+3840) by AlliedModders LLC

autoexec.cfg
C-подобный:
sv_region 255
mapcyclefile "cfg/mapcycle.txt"

exec srctv.cfg

exec sourcemod/playersvotes.cfg

// Установка значения sv_pure *до* загрузки первой карты
sv_pure 1

// Регистрация сервера в Steam
tf_server_identity_account_id xxx
tf_server_identity_token "xxx"

// Activates/deactivates Lobby-based hosting mode
// 1 = Put in quickplay pool (based on current map)
tf_mm_servermode 1

// Логи для HLStatsX:CE
log on
logaddress_add xxx

// Отключение встроенной в игру системы голосования, она заменена плагинами
sv_allow_votes 0

// "Внезапная смерть"
mp_stalemate_enable 1
// В режиме внезапной смерти доступно только оружие ближнего боя
mp_stalemate_meleeonly 1

server.cfg
C-подобный:
hostname "xxx"
rcon_password xxx
decalfrequency 10
mp_allowspectators 1
mp_autoteambalance 1
mp_chattime 10
mp_decals 300
mp_fadetoblack 0
mp_falldamage 1
mp_flashlight 1
mp_footsteps 1
mp_forcecamera 1
mp_forcerespawn 1
mp_fraglimit 0
mp_friendlyfire 0
mp_maxrounds 0
mp_timelimit 30
mp_weaponstay 1
mp_winlimit 0
sv_allowdownload 1
sv_allowupload 1
sv_alltalk 0
sv_gravity 800
sv_pausable 0
sv_voiceenable 1
sv_mincmdrate 40
sv_pure 1
sv_turbophysics 0
net_maxfilesize 128
tf_flag_caps_per_round 3
sv_downloadurl "xxx"
// Диагностика проблемы с таймаутами
// Отключать клиентов, когда обнаружено изменение файлов
sv_pure_kick_clients 1
// Писать в консоль клиента и сервера сообщение об измененных файлах
sv_pure_trace 1

pure_server_whitelist.txt, почти дефолтный
C-подобный:
whitelist
{
    // Example custom server whitelist.
    //
    // Do not modify this file.  Instead, rename this file to "pure_server_whitelist.txt" and then modify it as appropriate.
    //
    // sv_pure values are in order of "increasing pureness":
    //
    //   -1: No restrictions.  Allow clients to load any files.
    //    0: Only load pure_server_minimal.txt.
    //    1: Load pure_server_full.txt, followed by pure_server_whitelist.txt (the custom file).
    //       Also, in this mode, the server may specify additional public keys that it considers to be trusted.
    //    2: Load pure_server_full.txt only.
    //       In this mode, user only the public keys listed in trusted_keys_base are used.
    //
    // If multiple rules apply to the same file, then the rule listed later (or from the file loaded later) takes priority.
    // Therefore, because the custom whitelist file is loaded last, after a fully pure whitelist has been loaded, typically
    // the custom whitelist file is used to carve out exceptions (where the server wants to be more permissive), rather than
    // listing the files that are requested to be.
    //
    // 2 different rule types may be used:
    //
    //    trusted_source - require file to be loaded from a "trusted source".
    //                   A trusted source is a VPK that is signed with one of the public keys listed
    //                   in trusted_keys_base.txt or trusted_keys.txt.
    //    any - Client can use file from any source.
    //
    // For historical purposes, the following strings are also allowed:
    //
    //    allow_from_disk           - same as "any"
    //    from_steam                - same as "trusted_source"
    //  check_crc                 - same as "trusted_source"
    //  allow_from_disk+check_crc - same as "trusted_source"

    //
    // Three types of file specifications:
    //
    //    1. directory\*.*            - refers to all files under the directory
    //    2. directory\...            - refers to all files under the directory and all directories under that (recursively)
    //    3. directory\filename        - refers to a single file

    //
    // Allow custom player models.
    //    
    //models\player\...           any
    //materials\models\player\... any

    //
    // Allow custom spray decals.
    //
    materials\temp\...          any
    materials\vgui\logos\...    any
    materials\vgui\logos\ui\... any
    
    //
    // Allow "mymod" resources to come from disk.
    //
    //materials\mymod\... any
    //models\mymod\...    any
    //sound\mymod\...     any
}

К слову, это сервер TF2, хостится на myarena.ru.

Добавлено через 7 минут
Хм, интересное наблюдение. Возможно таймаут происходит сразу в момент подключения (т.е. когда передается вайлист), интересно было бы еще найти ближайшие подключения игроков, отвалившихся по таймауту, можно ведь заметить например у [Areal]_DahaKa_ что дважды за 4 минуты...
Да, мысль, завтра попробую собрать такие данные.
C-подобный:
$ grep '\[Areal\]_DahaKa_.*connected' *.log
l0707013.log:L 07/07/2013 - 16:19:24: "[Areal]_DahaKa_<207><STEAM_ххх><>" connected, address "ххх"
l0707013.log:L 07/07/2013 - 16:22:11: "[Areal]_DahaKa_<207><STEAM_ххх><Red>" disconnected (reason "[Areal]_DahaKa_ timed out")
l0707013.log:L 07/07/2013 - 16:25:36: "[Areal]_DahaKa_<217><STEAM_ххх><>" connected, address "ххх"
l0707013.log:L 07/07/2013 - 16:26:04: "[Areal]_DahaKa_<217><STEAM_ххх><>" disconnected (reason "[Areal]_DahaKa_ timed out")
 
Последнее редактирование:

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
reji, можно попробовать отключить кик игроков по pure и посмотреть на результат.
Как вариант, ибо у меня сейчас всё в порядке с TF.
 

reji

Участник
Сообщения
7
Реакции
0
The Night Fury, уже пробовал, "sv_pure_kick_clients 0" и картина была та же.
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
reji, ладно. А что клиенты говорят, как они видят отключение?
 

reji

Участник
Сообщения
7
Реакции
0
The Night Fury, все, что я пока слышал, это "просто отключило". Негусто... попробую получить больше сведений. Вот бы лог консоли с клиента, но ни у админов, ни у постояльцев отключений пока не замечено.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
sv_pure_kick_clients отключает с причиной вроде "Pure Server: File ********* ...." не помню точно, но там точно есть упоминание про pure server.

Логи уже интереснее
C-подобный:
l0707013.log:L 07/07/2013 - 16:19:24: "[Areal]_DahaKa_<207><STEAM_ххх><>" connected, address "ххх"
l0707013.log:L 07/07/2013 - 16:22:11: "[Areal]_DahaKa_<207><STEAM_ххх><Red>" disconnected (reason "[Areal]_DahaKa_ timed out")
Где-то две минуты и видно что уже присоединился игрок к команде

C-подобный:
l0707013.log:L 07/07/2013 - 16:25:36: "[Areal]_DahaKa_<217><STEAM_ххх><>" connected, address "ххх"
l0707013.log:L 07/07/2013 - 16:26:04: "[Areal]_DahaKa_<217><STEAM_ххх><>" disconnected (reason "[Areal]_DahaKa_ timed out")
А вот тут уже не присоединился к команде, да и по времени явно видно, что отваливание произошло при подключении.

Ситуация что-то напоминает мне старинный баг с sv_pure, который в то время был во всех переведенных на стимпайп играх, но его пофиксили еще до релиза TF2. Возможно сейчас происходит что-то подобное, либо еще какой-то глюк...

Попробую поискать на гитхабе и в Mailing Lists, авось чего накопаю
 

Emma Hewitt

v34 живи
Сообщения
75
Реакции
30
У меня было все норм, но когда поставил Zombie Reloaded тоже началась такая проблема ...
 

reji

Участник
Сообщения
7
Реакции
0
sv_pure_kick_clients отключает с причиной вроде "Pure Server: File ********* ...." не помню точно, но там точно есть упоминание про pure server.
Ничего такого нет. Хм...
...
Ситуация что-то напоминает мне старинный баг с sv_pure, который в то время был во всех переведенных на стимпайп играх, но его пофиксили еще до релиза TF2. Возможно сейчас происходит что-то подобное, либо еще какой-то глюк...

Попробую поискать на гитхабе и в Mailing Lists, авось чего накопаю
Да уж, похоже у sv_pure богатая история непрорисованных текстур и падений серверов и клиентов :)
Никакой системы в таймаутах, вроде, нет. Ни в продолжительности сессий игроков, ни по времени между таймаутами. Это происходит на всех картах, в том числе и на официальных.
Любопытно, что сегодня после установки SourceIRC и SMAC с последующим "sm plugin refresh", таймауты некоторое время происходили чаще, иногда игроки вылетали за короткое время партиями по 3. Подобное мы уже видели, когда ставили плагин для HLStatsX:CE, в панике быстренько его удалили :)

То, что похожей ситуации не нашел поиском-гуглением, наводит на мысль, что где-то намудрено с настройками все-таки.

У меня было все норм, но когда поставил Zombie Reloaded тоже началась такая проблема ...
Сервер Team Fortress 2, не CS, хотя пробовали отключать по одному те плагины, что поставили последними. На втором, тестовом, сервере стоял SourceMod с родными только плагинами, и тоже таймауты были. Попробую голенький сервер поставить.
 
Сверху Снизу