Home
mc-dev
mc-dev@conference.jabber.ru
20.05.2013< ^ >

Тема: http://www.midnight-commander.org | Latest release: 4.8.8
[04:14:27] andrew_b зашёл в конференцию
[04:22:06] <andrew_b> Опять 504 Gateway Time-out
[04:24:09] <Зося_Синицкая> RSS: Новости для Midnight Commander
• mc-4.8.8-rotating-dash.patch attached to Ticket #2163
http://www.midnight-commander.org/attachment/ticket/2163/mc-4.8.8-rotating-dash.patch
• Ticket #2163 (Rotating dash not removed) updated
http://www.midnight-commander.org/ticket/2163#comment:2
[05:10:32] monkey зашёл в конференцию
[06:39:24] D-ion вышел из конференции: Replaced by new connection
[06:39:27] D-ion зашёл в конференцию
[06:51:19] ASM вышел из конференции
[06:51:24] ASM зашёл в конференцию
[07:33:07] <slavazanko> всем привет
[07:34:03] <andrew_b> Привет.
[07:34:10] smind зашёл в конференцию
[08:52:10] <andrew_b> #3005 в клинап?
[08:52:35] <andrew_b> Опять шо-то тормозит жутко.
[08:54:03] <andrew_b> 504 Gateway Time-out
[09:04:47] <smind> привет всем
[09:05:01] <andrew_b> Привет.
[09:05:21] smind вышел из конференции
[09:05:57] smind зашёл в конференцию
[09:14:35] <slavazanko> блин. тормоззит :(
[09:15:27] <slavazanko> петон почти всю память выжрал
[09:15:35] <slavazanko> 22136 trac 20 0 3317m 783m 624 S 53.1 78.6 93:40.15 python
[09:16:31] <slavazanko> не. нам ещё гиг надо. петон со свопом в топе постоянно
[09:22:57] <slavazanko> > #3005 в клинап?
да, в клинап. только давайте существующий клинап вольём
[09:44:58] <andrew_b> Давайте 3005 в клинап, а потом сам клинап.
[09:45:18] <slavazanko> ок
[09:52:13] <smind> слав
[09:52:19] <slavazanko> ?
[09:52:27] <smind> я себе память жму
[09:52:36] <slavazanko> в смысле?
[09:52:37] <smind> в таких случаях помогает
[09:52:46] <slavazanko> как?
[09:53:01] <smind> ща
[09:53:28] <smind> zram
[09:54:40] <smind> Вы будете удивлены, но это действительно работает (с) магазин на диване
[09:55:11] <slavazanko> # yum search zram
Warning: No matches found for: zram
No Matches found
[09:55:15] <Зося_Синицкая> slavazanko: Выражение "site:https://www.midnight-commander.org/ticket/ yum search zram
Warning: No matches found for: zram
No Matches found" не найдено!
[09:55:38] <smind> holmes@darkstar:~$ swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 1764348 0 -1
/dev/zram0 partition 180476 54076 5
/dev/zram1 partition 180476 54064 5
[09:56:19] <smind> http://blog.woralelandia.com/2012/02/12/howto-use-zram-on-fedora-16/
[10:00:25] <slavazanko> гм... свап в сжатую память?
[10:01:38] <smind> да
[10:02:17] <smind> реально у меня на тачке с 512 метрами всё бодрячком
[10:02:53] <smind> до того как заюзал бывали резкие провалы когда запускал несколько вкладок ff
[10:03:13] <slavazanko> тут ещё интересное наблюдение. Трак начинает тормозить, когда его процент использования памяти доходит до примерно 30%. при этом он проц жрёт некисло. После рестарта трака процент использования памяти падает почти до нуля и сайт начинает нормально откликаться. Потом минут за 10 опять использование памяти доходит до 30% и больше и сайт начинает тормозить
[10:03:59] <slavazanko> я тупо сделал проверку на процент юзания памяти и если больше 30% то рестарт трака. И повесил в крон поминутно
[10:04:39] <slavazanko> но это костыль. Чего так память текёт - хз. Буду гуглить
[10:05:17] <smind> костыль не костыль а надо попробовать
[10:11:43] <Зося_Синицкая> RSS: Новости для Midnight Commander
• Ticket #3006 (Unescape, reencode and insert string) created
http://www.midnight-commander.org/ticket/3006
[10:26:46] <Зося_Синицкая> RSS: Новости для Midnight Commander
• mc.insert_estring.diff attached to Ticket #3006
http://www.midnight-commander.org/attachment/ticket/3006/mc.insert_estring.diff
[10:29:36] <andrew_b> Ацкий патч.
[10:48:48] <slavazanko> туча хардкода
[10:50:32] <slavazanko> html_enc_table.h - напрашивается внешний текстовый файл.

+ {"InsertEstring", "ctrl-w"}, - кажись конфликтует с "удалить до начала строки"
[10:55:22] <andrew_b> Я вообще против того, чтобы подобный функционал вшивать в core.
[10:55:24] Зося_Синицкая вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[10:55:44] <andrew_b> Это явно должен быть плагин.
[10:58:57] <smind> это по идее можно реализовать внешними макросами
[10:59:05] <smind> не очень понял зачем в код пихать
[11:00:00] <andrew_b> Насколько я заметил по предыдущим тикетам, этот szaszg склонен к переусложнённым решениям.
[11:00:12] <slavazanko> по-хорошему, надо попробовать уже сейчас продумывать плагинную структуру. Что должно быть "в ядре", что повыносить в плагины.
для структуры нужно определить, какие события или рычаги будут торчать наружу из "ядра". Например, если в редакторе вставили некий символ. то должно сгенерироваться два события: "перед вставкой" и "после вставки". И т.д.
[11:10:07] <andrew_b> smind: тебе нужны эти?
origin/2788_mcedit_aspell
origin/2788_mcedit_aspell_newedit
[11:12:25] <smind> эм...
[11:12:26] <smind> ща
[11:38:56] <smind> убил
[12:09:16] Yury V. Zaytsev зашёл в конференцию
[12:09:29] <Yury V. Zaytsev> slavazanko: а ты не помнишь, сколько раньше памяти было
[12:10:39] <Yury V. Zaytsev> slavazanko: кстати вышел уже 0.12.5 давно, для информации
[12:11:45] <Yury V. Zaytsev> smind: спасибо за указание на zram, это ведь просто сжатый рамдиск, правильно, т.е. я мог его для tmpfs использовать вместо /dev/shm?
[12:12:54] <smind> надо читать
[12:13:02] <smind> я его только для свопа юзаю
[12:13:16] <smind> реально стало всё летать
[12:14:13] <Yury V. Zaytsev> я просто собираю в tmpfs, ибо быстро, но таки оно не бесконечное, даже с 8 гигами RAM
[12:14:31] <Yury V. Zaytsev> а всякая гадость типа отладочных символов отлично сжимается
[12:15:49] <smind> http://habrahabr.ru/post/172137/
[12:16:21] <smind> "
Мой опыт показывает, что степень сжатия обычно 1 к 3.

На практике это позволило на ноутбуке в 8Gb памяти вынести компиляцию libreoffice в tmpfs. (она требует 7 Гбайт временных файлов и примерно 1 Гбайт памяти потребляет каждый поток gcc при сборке).
"
[12:30:27] <slavazanko> > slavazanko: кстати вышел уже 0.12.5 давно, для информации
я yum install trac сделал.
> slavazanko: а ты не помнишь, сколько раньше памяти было
на старом хостинге было 2 гига. Или ты не про это спросил?
[12:38:10] <Yury V. Zaytsev> slavazanko: про это. пойти поплакаться, чтобы дали ещё гиг?
[12:39:19] <slavazanko> ну... хз. Давай пока повременим. Я ещё попробую поискать, как уменьшить прожорливость питона. Если не нагуглю, то будем решать в лоб, просить о ещё одном гиге
[12:42:29] <Yury V. Zaytsev> а как ты запускаешь fcgi? я обычно запускаю через flup с ulimit -v и типа ~5000 запросов до рестарта чайлда, поэтому медленные утечки решаются просто перезапуском чайлда через N запросов, а быстрые убитием чайлда из-за ulimit.
[12:44:00] <Yury V. Zaytsev> ещё неплохо просто посмотреть, что происходить в логах, может быть перезапуск приводит к тому, что какого-нибудь бота обижают и он ждет пару секунд, а потом начинает опять, т.е. дело не в утечках как таковых, а в запросах, которые приходят пачками
[12:45:20] <Yury V. Zaytsev> против этого хорошо помогает пул чайлдов у flup'а, если они все заняты, nginx просто ждет прежде чем передавать им следующие запросы. если делать без пула (форк на каждый запрос), разумеется, если запросы приходят пакетами наступают такие приветы.
[12:46:00] <slavazanko> > ещё неплохо просто посмотреть, что происходить в логах, может быть перезапуск приводит к тому, что какого-нибудь бота обижают и он ждет пару секунд, а потом начинает опять,
да, так и происходит.

> как ты запускаешь fcgi?
/etc/init/trac-backend.conf
respawn
exec su trac -c '/usr/bin/python /usr/local/sbin/run-trac-backend.py' >/var/log/trac-backend.log 2>&1
[12:46:10] <slavazanko> что за flup?
[12:58:41] <Yury V. Zaytsev> flup это fcgi сервер для питона: https://pypi.python.org/pypi/flup/1.0.3.dev-20110405 . он вмонтирован в команду runfcgi django, например.
[12:59:03] <Yury V. Zaytsev> интересно, а как этот run-trac-backend.py работает? это ты писал или оно шло с траком?
[12:59:49] <slavazanko> нашёл python-flup, потом нашёл сравнительные тесты python flup vs. fcgi.WSGIServer
второй выигрывает. У нас юзается второй
[13:01:05] <slavazanko> Ю интересно, а как этот run-trac-backend.py работает? это ты писал или оно шло с траком?
это я отрыл когда-то тут: http://trac.edgewall.org/wiki/TracFastCgi
[13:01:15] <Yury V. Zaytsev> slavazanko: а сслыку не дашь, и пока посмотрел run-trac-backend.py, но мне непонятно, на чем оно работает
[13:01:23] <slavazanko> в самом низу страницы
[13:01:57] <Yury V. Zaytsev> на тесты, я имею ввиду. ок, посмотрю.
[13:02:52] <slavazanko> http://habrahabr.ru/post/67475/
[13:08:03] <Yury V. Zaytsev> slavazanko: судя по исходникам трака, у тебя используется таким способом какая-то супер-древняя версия flup закостыленная напрямую в trac.web._fcgi
[13:08:20] <slavazanko> гых. :)
[13:09:07] <Yury V. Zaytsev> причем, если я всё правильно понял, вообще с одним воркером
[13:09:35] <slavazanko> эм... гм. Не шарю, к сожалению. Ты как так быстро разобрался?
[13:10:37] <Yury V. Zaytsev> Посмотрел исходник /usr/lib/python2.6/site-packages/trac/web/_fcgi.py который вызывается из /usr/local/sbin/run-trac-backend.py
[13:11:03] <Yury V. Zaytsev> Хочу сейчас погуглить, есть ли там нормальный способ вызова типа как runfcgi у django.
[13:23:31] <Yury V. Zaytsev> slavazanko: ну я тут навоял кое-чего с flup
[13:23:48] <Yury V. Zaytsev> можно запустить на отдельный сокет попробовать?
[13:23:59] andrew_b вышел из конференции
[13:24:06] <slavazanko> да. давай попробуем
[13:24:46] <slavazanko> может, run-trac-backend.py симлинком сделать?
[13:26:03] <Yury V. Zaytsev> не, погоди
[13:26:12] <Yury V. Zaytsev> пока ещё ничего не работает :-/
[13:26:25] <slavazanko> ок
[13:26:31] <Yury V. Zaytsev> пока не разобрался почему оно не принимает эти опции.
[13:26:39] <Yury V. Zaytsev> если заработает, тогда да, хорошая идея
[13:34:20] <Yury V. Zaytsev> slavazanko: ну смотри, работает вроде
[13:34:26] <Yury V. Zaytsev> slavazanko: а ка кбыстро он течет?
[13:34:45] <Yury V. Zaytsev> slavazanko: как я узнаю, что мой вариант решил проблему
[13:35:01] <Yury V. Zaytsev> slavazanko: я пока оставил твой процесс висеть тоже
[13:35:23] <slavazanko> я тупо top мониторю.
[13:35:50] <Yury V. Zaytsev> slavazanko: ну это понятно, но сколько ждать, 5 минут, 10 минут, больше :-?
[13:36:33] <slavazanko> минут 5-8. Но. как я вижу, сейчас текёт только старый вариант. Твоих вариантов не видно
[13:40:36] <slavazanko> блин, оно даже уменьшилось с 15.7 до 14%
[13:40:59] <slavazanko> старый вариант отдыхает с 26%. ЦПУ не юзает
[13:41:20] <Yury V. Zaytsev> slavazanko: ну правильно, потому что на его сокет перестали идти запросы.
[13:41:42] <slavazanko> грохаем старый вариант?
[13:41:42] <Yury V. Zaytsev> slavazanko: интересно, ну тогда может с моим поробовать подольше без убивашки и посмотреть как пойдет. я заменил бы, но я не знаю как с upstart сервисами работать, как его правильно останавилвать и запускать ты мне не подскажешь?
[13:41:53] <slavazanko> я сделаю
[13:42:03] <Yury V. Zaytsev> slavazanko: я тоже хочу знать =)
[13:43:30] <slavazanko> /etc/init/trac-backend.conf - там меняешь на новый
и потом
initctl restart trac-backend
initctl status trac-backend
[13:44:05] <Yury V. Zaytsev> о! круто. сейчас попробую.
[13:46:17] <slavazanko> ну всё. получилось :)
[13:47:08] <slavazanko> блин, оно ощутимо шустрее стало бегать.... веселее страницы открываются
[13:47:39] <slavazanko> отбой тревоги по дополнительному гигу?
[13:48:16] <Yury V. Zaytsev> slavazanko: смотри, все фишки в run-trac-backend-flup.py. там 2 это максимальное количество воркеров, 1 минимальное на подхвате, 2 максимальное на подхвате и 1000 это после 1000 запросов воркер убьёт себя и перезапустится, типа борьба с медленными утечками памяти...
[13:48:47] <slavazanko> круто. Свой костыль тогда убираю
[13:49:40] <Yury V. Zaytsev> slavazanko: если будет очень сильно течь, то можно понизить, есил слабо то повысить. по-моему 1000 это минимальное логичное число, а то если он на каждый запрос будет перестартоваться, сам понимаешь, запуск скрипта занимает время
[13:50:16] <slavazanko> да я не вижу, чтобы оно ощутимо росло... потом поиграюсь с изменением
[13:56:37] <Yury V. Zaytsev> slavazanko: знаешь что, есть мнение, что ты пускаешь статику через flup
[13:57:01] <Yury V. Zaytsev> slavazanko: если это так, то можно попытаться радикально всё ускорить
[13:57:17] <slavazanko> эм... ты про картинки и прочее?
[13:57:36] <Yury V. Zaytsev> ага
[13:58:07] <slavazanko> там статики фиг да нифига. В основном, вики (из базы) и тикеты (из базы). Если и будет ускорение. то по-моему незначительное
[14:00:45] <slavazanko> ну можно css и js отдавать, да... будет ли ускорение - хз.
[14:01:02] <Yury V. Zaytsev> slavazanko: ну вот сейчас и узнаем
[14:01:38] <Yury V. Zaytsev> slavazanko: твоя убивашка сломалась, потому, что процесс не запущен и написала руту кучу писем, я её из крона закоментил =)
[14:01:58] <slavazanko> угу, ок. :)
[14:09:28] <Yury V. Zaytsev> slavazanko: ну, что скажешь
[14:10:25] <slavazanko> херассе
[14:10:31] <slavazanko> ты - лучший
[14:11:35] <Yury V. Zaytsev> slavazanko: сделай финт тебя достойный, пусть друзья завидуют (с) реклама шоколадки
[14:11:47] <slavazanko> :)
[14:11:57] <slavazanko> мы не завидуем. мы уважаем
[14:12:15] <Yury V. Zaytsev> slavazanko: ладно, пойду поем. я там ещё некоторое количество зла увидел в твоих конфигах ngnix но надо пообедать сначала. вернее приготовить обед, а пото мего съесть
[14:12:40] <slavazanko> спасибо. И приятного. Я тоже домой собираюсь
[14:17:40] smind вышел из конференции
[14:27:19] slavazanko вышел из конференции
[15:05:04] monkey вышел из конференции
[16:04:48] andrew_b зашёл в конференцию
[16:21:35] slavazanko/h зашёл в конференцию
[16:35:15] <slavazanko/h> гм, у меня одного m-c.o резолситься перестал?
dig @8.8.8.8 midnight-commander.org
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;midnight-commander.org. IN A

;; Query time: 66 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon May 20 19:34:32 2013
;; MSG SIZE rcvd: 51
[16:37:12] slavazanko/h вышел из конференции
[16:37:20] slavazanko/h зашёл в конференцию
[16:41:37] <Yury V. Zaytsev> slavazanko/h: я сейчас кофиг nginx ломаю, dns не ломал
[16:42:42] <Yury V. Zaytsev> slavazanko/h: у меня через 8.8.8.8 резольвится
[16:43:15] <Yury V. Zaytsev> slavazanko/h: меня вот огорчает, что я сломал логин (получается редирект луп), но пока не пойму почему
[16:44:51] <slavazanko/h> а как было? git показывает?
[16:46:38] <Yury V. Zaytsev> slavazanko/h: да, показывает, но непонятно какое из измненений к этому привело, слишком много я там переписал =(
[16:46:57] <Yury V. Zaytsev> slavazanko/h: сейчас буду wireshark'ом выяснять
[16:47:27] <slavazanko/h> можешь сейчас выйти из mc и набрать screen -x
[16:47:49] <Yury V. Zaytsev> ыыы, я в скрине
[16:48:12] <Yury V. Zaytsev> ты имеешь в виду залезть в рутовский скрин?
[16:48:16] <slavazanko/h> в смысле, ты под своим пользователем скрин запустил?
[16:48:26] <Yury V. Zaytsev> ну да
[16:48:27] <slavazanko/h> да, sido su - и потом screen -x
[16:48:43] <Yury V. Zaytsev> slavazanko/h: вижу
[16:48:52] <slavazanko/h> я обычно под рутом скрин оставляю, чтобы можно было потом нескольким перцам совместно работать
[16:49:03] <Yury V. Zaytsev> ах вот ты какой хитрый =)
[16:49:16] <slavazanko/h> атто :)
[16:50:17] <Yury V. Zaytsev> ладно, сейчас я отключу редирект на https и выясню чего там происходит, ок?
[16:50:23] <slavazanko/h> ок
[16:51:20] <slavazanko/h> я отдетачился
[16:51:25] <slavazanko/h> чтобы не мешать
[16:59:48] andrew_b вышел из конференции
[17:29:23] andrew_b зашёл в конференцию
[17:41:50] <Yury V. Zaytsev> slavazanko/h: ну я просек фишку (полчаса назад, правда), там трак не любит когда укзаывают PATH_INFO и SCRIPT_NAME по спецификации.
[17:42:43] <slavazanko/h> не любит?
[17:44:16] <Yury V. Zaytsev> slavazanko/h: не любит, совсем. так вроде работает, а аутентификация глючит. теперь я понял почему так раньше было в твоих конфигах сделано и вернул назад.
[17:45:05] <Yury V. Zaytsev> slavazanko/h: а у меня ещё вопрос, почему у вас так сложно сделана синхронизация с гитхабом? разве просто fetch недостаточно?
[17:46:06] <slavazanko/h> я не помню. Там какие-то траблы были. Типа, после ребайза оно там начинало в рассинхрон уходить полный
[17:47:00] <slavazanko/h> короче, тоже свои траблы. Мирроринг нормально не работает. Может. уже не актуально и поправили, я не знаю
[17:48:11] <Yury V. Zaytsev> а сейчас эта штука по триггеру вызывается или ты в крон как-нибудь добавил
[17:49:54] <slavazanko/h> триггер. Гитхаб дёргает что-то вроде m-c.o/github/github-hooks/update.php
а на самом деле идет редирект при вызове этого УРЛ на http://localhost:8090
на на этом порту висит xinetd (/etc/xinetd), который при обращении на порт и запускает обновлялку репы
[17:50:31] <Yury V. Zaytsev> спалил урл =) всё, я понял, это xinetd
[17:51:06] <Yury V. Zaytsev> Вообще к php никакого отношения не имеет
[17:51:07] <slavazanko/h> да ладно, спалил... он в настройках nginx светиццо :)
[17:51:13] <slavazanko/h> нет. не имеет
[17:51:18] <slavazanko/h> маскировка, ёпт :)
[17:51:47] <Yury V. Zaytsev> slavazanko/h: ну настройки в чатлогах не видно =)
[17:52:02] <Yury V. Zaytsev> slavazanko/h: так и что же оно крутится тогда как сумашедшее каждые 20 секунд
[17:52:09] <Yury V. Zaytsev> slavazanko/h: это вы так часто коммитите?
[17:52:17] <slavazanko/h> хз. Наверное, гитхаб так дёргает.
[17:52:34] <slavazanko/h> можно в логах посмотреть
[17:52:42] <slavazanko/h> /github/repo-hook-handler/update.php
[17:53:15] <slavazanko/h> # grep -R '/github/repo-hook-handler/update.php' ./
./access.log:204.232.175.75 - - [20/May/2013:11:37:29 +0000] "POST /github/repo-hook-handler/update.php HTTP/1.1" 499 0 "-" "GitHub Hookshot 99884c8" "-"
./access.log:204.232.175.75 - - [20/May/2013:11:39:16 +0000] "POST /github/repo-hook-handler/update.php HTTP/1.1" 499 0 "-" "GitHub Hookshot 99884c8" "-"
./access.log-20130520:204.232.175.75 - - [19/May/2013:05:18:16 +0000] "POST /github/repo-hook-handler/update.php HTTP/1.1" 499 0 "-" "GitHub Hookshot 99884c8" "-"
[17:53:23] <Yury V. Zaytsev> Ну вот
[17:53:31] <slavazanko/h> гм... может, сам nginx опрашивает, жив бэкенд или нет?
[17:53:34] <Yury V. Zaytsev> А теперь посмотри на лог этой своей аццкой машины
[17:53:43] <slavazanko/h> вот блин
[17:53:47] <Yury V. Zaytsev> slavazanko/h: а вот это вполне может быть
[17:54:02] <slavazanko/h> вот скотинка.
[17:54:08] <Yury V. Zaytsev> slavazanko/h: разоблачения интриги расследования!!!
[17:54:19] <slavazanko/h> ща подумаю, как это дело разрулить
[17:54:22] <slavazanko/h> атто
[17:54:23] <Yury V. Zaytsev> токо давай сначала подумаем =)
[17:54:51] <Yury V. Zaytsev> вот он секрет злой нагрузки
[18:02:04] <Yury V. Zaytsev> slavazanko/h: если у тебя не пришло умных мыслей могу попробовать через upstream похитрить
[18:03:04] <slavazanko/h> я сейчас ищу, как получить path, который запрашивается... для nginx этто будет типа /
а для гитхаба полный путь. /github/repo-hook-handler/update.php
[18:03:15] <slavazanko/h> оно должно передаваться...
[18:03:27] <slavazanko/h> если. конечно, сам nginx не сжирает его
[18:03:41] <slavazanko/h> а upstream - это как? в nginx?
[18:03:47] <Yury V. Zaytsev> аша
[18:03:52] <Yury V. Zaytsev> http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive
[18:04:18] <slavazanko/h> гм... можно попробовать
[18:04:37] <Yury V. Zaytsev> Ты можешь в принципе через заголовок просто его получать. Ну давай сначала upstream попробуем
[18:06:07] <slavazanko/h> ок, давай
[18:11:41] <Yury V. Zaytsev> slavazanko/h: не даёт гад поставить keepalive в 0 :(
[18:12:42] <andrew_b> Шо-то юзеры, зарегистрировавшиеся на m-c.o после восстановления, больно на боты похожи. Имена какие-то странные.
[18:13:13] <slavazanko/h> кстати, нам бы анонимный постинг рашрешить бы... с каптчей
[18:13:30] <slavazanko/h> Юра, поставь побольше тогда. пусть раз в месяц дёргает. Или раз в сутки
[18:15:09] <Yury V. Zaytsev> slavazanko/h: не настраивается, я думал просто вообще вырубить, но, видишь, тоже не прокатило
[18:16:04] <andrew_b> slavazanko/h: я против анонимов.
[18:16:14] <slavazanko/h> почему против?
[18:17:13] <andrew_b> Ибо нефиг.
[18:18:24] <slavazanko/h> да ладно. Пусть постят, лишь бы не спам
[18:18:57] <andrew_b> Во-во, будет спам.
[18:19:07] <slavazanko/h> с каптчей?
[18:19:21] <andrew_b> Да.
[18:19:41] <Yury V. Zaytsev> slavazanko/h: так а зачем это зеркало вообще нужно?
[18:19:50] <Yury V. Zaytsev> slavazanko/h: для трака?
[18:19:55] <slavazanko/h> да
[18:20:00] <andrew_b> timeline
[18:20:03] <slavazanko/h> чтобы в timeline были коммиты
[18:20:59] <Yury V. Zaytsev> slavazanko/h: так это, может тогда просто в cron повесить каждый 15 минут? вот тут так советуют делать: http://stackoverflow.com/questions/1251713/backup-of-github-repo
[18:22:08] <andrew_b> 15 много
[18:23:14] <slavazanko/h> я сейчас параллельно пытаюсь всё-таки узнать path... если получится, то буду просто игнорить кип-аливы
[18:23:49] andrew_b вышел из конференции
[18:24:14] <Yury V. Zaytsev> slavazanko/h: а что ты под этим понимаешь
[18:24:40] <Yury V. Zaytsev> slavazanko/h: ты же понимаешь, что я могу установить любой заголовок для прокси
[18:24:51] <Yury V. Zaytsev> slavazanko/h: и у кипалайва его не будет
[18:24:52] <slavazanko/h> read SSS
while [ ${#SSS} -ne 1 ]; do
[ $(echo "$SSS"| grep -c '^GET') -eq 1 ] && GET=$(echo $SSS|sed -r -e 's@^GET @@' -e 's@\s*HTTP.*$@@')
[ $(echo "$SSS"| grep -c '^Authorization: Basic ') -eq 1 ] && AUTH=$(echo $SSS|sed -r -e 's@^Authorization:\s*Basic\s*@@')
read -t 1 SSS
done
[18:25:03] <Yury V. Zaytsev> ААА что это
[18:25:18] <slavazanko/h> я надеюсь, что nginx передаёт скрипту строку
GET /github/...
[18:25:22] <slavazanko/h> в заголовке
[18:25:37] <Yury V. Zaytsev> Так не важно, я могу тебе любую строку на stdin засунуть
[18:25:52] <slavazanko/h> гм... давай попробуем
[18:28:20] <Yury V. Zaytsev> slavazanko/h: у тебя должен появиться заголовок OriginIsTrigger true
[18:28:48] <Yury V. Zaytsev> Можно по OriginIsTrigger пытаться отличить. У кипалайвов их быть не должно
[18:30:25] <slavazanko/h> ща
[18:32:52] <slavazanko/h> херня в логах
/srv/git/syn_mc_from_github.sh: line 24: read: read error: 0: Transport endpoint is not connected
[18:34:34] <Yury V. Zaytsev> slavazanko/h: а ты уверен, что тебе с такими настройками вообще что-либо пойдет на stdin?
[18:35:06] <Yury V. Zaytsev> slavazanko/h: может xinetd можно как-нибудь настроить чтобы он дергал скрипт только если передается информация а не при коннекте?
[18:35:18] <slavazanko/h> я не знаю как
[18:37:35] <Yury V. Zaytsev> slavazanko/h: слушай, а может с другой стороны подойти к вопросу?
[18:37:41] <slavazanko/h> ?
[18:37:56] <Yury V. Zaytsev> slavazanko/h: например я могу заставить nginx писать вызовы этого url в отдельный лог
[18:38:06] <slavazanko/h> и по крону?
[18:38:22] <Yury V. Zaytsev> slavazanko/h: а ты можешь читать из этого лога и если там появляется повая строчка дергать обновление
[18:38:49] <slavazanko/h> я сейчас что-то реализовал... надо только проверить. Ща дёрну вручную URL
[18:39:34] <Yury V. Zaytsev> slavazanko/h: а почему у тебя там лишняя буква T?
[18:39:41] <Yury V. Zaytsev> ^OriginIsTriggerT
[18:40:26] <slavazanko/h> $ wget midnight-commander.net/github/repo-hook-handler/update.php
--2013-05-20 21:39:56-- http://midnight-commander.net/github/repo-hook-handler/update.php
Распознаётся midnight-commander.net (midnight-commander.net)... 140.211.15.12
Подключение к midnight-commander.net (midnight-commander.net)|140.211.15.12|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 502 Bad Gateway
2013-05-20 21:40:07 ОШИБКА 502: Bad Gateway.
[18:40:29] <slavazanko/h> странно
[18:41:24] <Yury V. Zaytsev> slavazanko/h: ничего странного
[18:41:39] <Yury V. Zaytsev> slavazanko/h: # wget 127.0.0.1:8090
--2013-05-20 18:41:14-- http://127.0.0.1:8090/
Connecting to 127.0.0.1:8090... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
[18:42:22] <Yury V. Zaytsev> slavazanko/h: тебе мой вариант с чтением из файла не нравится?
[18:42:45] <slavazanko/h> хз. я ещё чуток помучаю...
[18:46:52] <slavazanko/h> заработало кажись
[18:47:54] monkey зашёл в конференцию
[18:47:59] <Yury V. Zaytsev> slavazanko/h: мда :) ? что-то не вижу разницы
[18:48:08] <slavazanko/h> мда... как и раньше
[18:48:24] <Yury V. Zaytsev> ты можешь просто stdin в файл распечатать?
[18:48:34] <Yury V. Zaytsev> мне непонятно, что оно вообще на вход получает
[18:50:24] <slavazanko/h> GET /github/repo-hook-handler/update.php HTTP/1.0
OriginIsTrigger: true
Host: github
Connection: close
User-Agent: curl/7.27.0
Accept: */*
[18:50:43] <Yury V. Zaytsev> круто!!!
[18:51:19] <Yury V. Zaytsev> slavazanko/h: и это всё время?
[18:51:32] <Yury V. Zaytsev> или только с хука
[18:56:03] <Yury V. Zaytsev> slavazanko/h: а что ты по строчкам то не прочитаешь, типа while read LINE; do echo ${LINE}; done <--- у тебя там сложно всё
[18:57:05] <Yury V. Zaytsev> slavazanko/h: wait = no, это ты зря
[18:57:57] <slavazanko/h> зря. Сейчас взад исправлю.
[18:58:05] <slavazanko/h> это я для теста
[18:59:40] <slavazanko/h> если делать while read... то там дополнительный субпроцесс шелла пускается... в принципе, не критично
[18:59:46] <slavazanko/h> можно и упростить
[19:00:03] <Yury V. Zaytsev> а, понял
[19:02:16] <slavazanko/h> <body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
<p>If you are the system administrator of this resource then you should check
the <a href="http://nginx.org/r/error_log">error log</a> for details.</p>
<p><em>Faithfully yours, nginx.</em></p>
[19:05:10] <Yury V. Zaytsev> slavazanko/h: короче ты понимаешь эту тему?
[19:05:23] <Yury V. Zaytsev> slavazanko/h: почему там y в логе плодятся?
[19:05:53] <slavazanko/h> не, не понимаю пока
[19:06:05] <Yury V. Zaytsev> slavazanko/h: по моим понятиям там должен быть один раз y
[19:06:13] <Yury V. Zaytsev> оно же не в циле
[19:06:44] <slavazanko/h> ну да
[19:08:06] <Yury V. Zaytsev> slavazanko/h: ах вот наверное как, надо сразу заголовки отдать. давай попробую
[19:09:58] <Yury V. Zaytsev> slavazanko/h: всё сломалось :-(
[19:10:20] <slavazanko/h> шеф, всё пропало... а пока малых кормлю, отойду
[19:11:03] <Yury V. Zaytsev> slavazanko/h: знаешь что, давай лучше на tailf напишем
[19:14:55] <slavazanko/h> :) ну давай
[19:22:11] slavazanko/h вышел из конференции
[19:30:07] slavazanko/h зашёл в конференцию
[19:31:17] <Yury V. Zaytsev> slavazanko/h: ну че, все готово вроде
[19:31:43] <Yury V. Zaytsev> slavazanko/h: я убил xinetd и сделал сервис upstart
[19:32:49] <Yury V. Zaytsev> slavazanko/h: он запускает синхронизатор от имени трака, и апдейт делается только если в файле появляются новые строчки, причем tailf вроде на нотификациях работает, так что большую часть времени должна спать
[19:35:02] <slavazanko/h> гуд
[19:35:26] <Yury V. Zaytsev> проверил? заценил?
[19:35:41] <slavazanko/h> пока нет, у меня инет пропадал
[19:37:03] <slavazanko/h> гм, работает вроде
[19:37:56] <slavazanko/h> спасибо
[19:38:36] <Yury V. Zaytsev> slavazanko/h: видал какое гениальное решение? я так уже полгода как в продакшоне вывожу из nginx триггеры =)
[19:39:03] <Yury V. Zaytsev> slavazanko/h: что интересно, загрузка упала ;-)
[19:39:42] <slavazanko/h> да, вижу. неплохо. Возьму на заметку
[19:40:35] <slavazanko/h> круто, чо уж...
[19:47:29] <Yury V. Zaytsev> slavazanko/h: так, я ещё накрутил nginx
[19:47:40] <slavazanko/h> ?
[19:47:51] <Yury V. Zaytsev> slavazanko/h: должно стать совсем бытро :)
[19:48:53] <slavazanko/h> херассе.
[19:48:57] <slavazanko/h> в куда уж
[19:50:06] <Yury V. Zaytsev> slavazanko/h: у меня ещё вопрос был
[19:50:15] <Yury V. Zaytsev> slavazanko/h: по каноническим редиректам
[19:50:23] <slavazanko/h> какой?
[19:50:45] <Yury V. Zaytsev> slavazanko/h: вам таки какой основной домен больше нравится? я бы тогда сделал редирект
[19:51:13] <Yury V. Zaytsev> slavazanko/h: а то сейчас и без www и с www работает, и в одном логинишься, а в другом незалогинен
[19:53:04] <slavazanko/h> ну... мы несколько имён вроде как для повышения доступности делали
[19:53:31] <slavazanko/h> типа, проблемы с DNS - мы по другому адресу смогём
[19:53:51] <Yury V. Zaytsev> ну это хорошо, я могу без проблем оставить osuosl имя и ваш net домен
[19:53:58] <Yury V. Zaytsev> но это не относитеся к вопросу с www или без
[19:54:16] <slavazanko/h> да пофиг. пусть только для m-c.o так работает
[19:55:13] <slavazanko/h> о, блин, у меня m-c.o начал резолвиться. С полчаса назад 8.8.8.8 не мог отрезолвить.... наверное, у них там DNS зонально по странам раздаёт...
[19:55:32] <Yury V. Zaytsev> slavazanko/h: ладно давай сделаю с www каноническим
[19:56:08] <slavazanko/h> о!
$ host www.midnight-commander.org <http://www.midnight-commander.org>
www.midnight-commander.org <http://www.midnight-commander.org> is an alias for midnight-commander.org.
midnight-commander.org has address 140.211.15.12
slavaz@linux-station ~/work/mc-devel/git/lib/vfs 1_smbfs$ host midnight-commander.org
Host midnight-commander.org not found: 2(SERVFAIL)

www.m-c.o <http://www.m-c.o> резолвится, а просто m-c.o - нет. Чудеса
[20:01:50] monkey вышел из конференции
[20:04:52] <Yury V. Zaytsev> slavazanko/h: сделал, теперь если набираешь без www будет на www кидать
[20:05:12] <slavazanko/h> гуд.
[20:08:09] <Yury V. Zaytsev> slavazanko/h: всё, на сегодня я готов
[20:08:25] <slavazanko/h> :)
спасибо за помощь
[20:12:52] <Yury V. Zaytsev> slavazanko/h: почини мне баг с compare directories, забулькает :)
[20:13:32] <slavazanko/h> ага. Вот только самбу дочину... вернее, перепишу нафиг. Прямо сейчас занимаюсь
[21:32:05] Yury V. Zaytsev вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!