blinalexya рассказывал недавно, что на его работе ls падал в корку при обработке директорий с ~100'000'000 файлов. Не знаю, что за PohmelFS там использовалась, но учитывая тот факт, что ls сортирует имена файлов и пытается расставить их по нескольким колонкам — упасть, отожрав кучу памяти, оно действительно шансы имело.
Я же на днях наткнулся на другую смешную особенность коры утилит — seq работает с вещественными числами, а не с целыми, как может сложиться впечатление после сотни HOWTO, упоминающих код в духе $(seq 1 100). С целыми числами около нуля всё в порядке, но, если выйти за диапазон точности вещественного числа, начинают лезть артефакты, кстати, показывающие, что промежуточные вычисления делаются с точностью более высокой, чем double:
$ i=100000000000000000000; seq $i $(echo $i + 10 | bc) | uniq -c
5 100000000000000000000
7 100000000000000000008
$ i=1000000000000000000000; seq $i $(echo $i + 10 | bc) | uniq -c
33 1000000000000000000000
Уронить seq в core таким образом не получается, но загнать в бесконечный цикл — легко.
Да, и еще к вопросу о точности.
gasadov давненько провел чудный эксперимент и закодировал фотографию в mp3. Что я могу сказать — даже в 320kbps преобладает теплый ламповыйцветной электронойз.
Похоже, проведение своеобразного shutdown week в конце марта становится (не?)доброй традицией. На этот раз у меня отключился jabber (из-за DDoS на хостера), пару раз за неделю ломался доступ по RSA-ключам к тестовому серверу (до сих пор не работает), подглючивал смартфон, традиционно падал webstream и в довершение картины — заело часы на IBM ThinkPad.
Как выглядят заевшие часы на ноутбуке с Linux? Элементарно — вся временная ось сжимается в кольцо из пяти секунд и процесс обновления зависает примерно на такой стадии:
При этом еще наблюдается ряд не менее забавных артефактов. Например, time() всегда возвращает одну и ту же секунду с начала Эпохи UNIX, не смотря на то, что clock_gettime() и gettimeofday() возвращают целых 5 различных вариантов секунд.
К тому же после попытки сделать nanosleep() процесс от сна уже не пробуждается даже если в параметрах было всего 0 наносекунд, то же самое верно и для poll() с ненулевым таймаутом. Видимо, по этой же причине SysRq+S (он же emergency sync) никогда не завершается и, соответственно, данные из этих «вечных» пяти секунд на диск не записываются.
OpenNTPd, кстати, тоже отвисает где-то глубоко в ядре, судя по показаниям strace. При том работает «варварский» метод синхронизации времени...
$ sudo date --utc $(ssh remote-host "date --utc +%m%d%H%M%Y.%S")
выставляя начало пятисекундного кольца в актуальное положение.
Вообщем, судя по многолетним наблюдениям, весенняя shutdown week длится со дня весеннего равноденствия до перевода часов на летнее время. Т.е. она как раз предшествует неделе математики и постепенно перетекает обратно в shutdown day, который проходит 2го мая.
P.S.
$ uname -snrv
Linux thinkpad 2.6.27-gentoo-r8 #2 PREEMPT Mon Mar 16 09:34:47 OMST 2009
Когда очередной сервис или кусок софта начинает глючить у меня в руках, я нередко люблю повторять, что у меня «карма тестера» или что «я не совместим с Windows», если программа выпущена Mircosoft. Так вот, сегодня в очередной раз случился приступ Силы.
Точнее, началось всё еще вчера вечером, когда я подошел к серверу, который обеспечивает меня и соседей bluetooth-интернетом и музыкой, и через несколько секунд звук интернет-радио начал заикаться так, словно у сервера случился kernel panic. Правда, заметив нерегулярность мигания лампочки на BT-адаптере, я ssh-нулся на сервер, перезапустил плеер (mocp-2.5.0-alpha3) и продолжил пить чай, стоя у окна.
Но всё это было бы не так забавно, если бы не сегодняшний случай. Примерно в то же время вечера, я опять подошел к серверу, игравшему ту же радиостанцию (кстати, у Нашего радио сейчас чудесный новогодний эфир для ностальгической медитации), опять с кружкой чая... И плеер опять завис. Таким образом, баг воспроизвёлся и, соответственно, его стоило бы задокументировать... К счастью, mocp то ли не обзавёлся публичной багзиллой, то ли тщательно её скрывает — но этого нелепого рождественского багрепорта им не видать.
Если раньше все найденные баги сводились либо к более или менее очевидным проблемам и/или к несоответствию софта спецификациям, то сегодня я нашел ошибку в спецификации jabber-а, а точнее в его расширении, определяющем многопользовательские чаты.
Бага в описании работы с темой канала. Ошибка простая: никто однозначно не определяет, как тему конференции удалить, поэтому ejabberd/mod_muc с gajim-ом и ткаббером пошли одним путем, а Miranda, QIP Infinum, Psi и бомбус - другим.
Первые на стазну <message ...><subject/></message> тему удаляют, а вторые эту станзу игнорируют.
Интересно, как после удаления неоднозначности из XEP-а отреагируют разработчики квипа на багрепорт...
Тем временем Psi становится весьма популярным jabber-клиентом в России. Судя по отчету админа, наибольшая часть трафика приходит из РФ (трафик из .com и .net не учитывался, т.к. он географически не привязан по TLD).
UPD: Баг в спецификации исправлен: соответствующий пример добавлен.
Did you know that the following is valid HTTP?:GET / HTTP/1.1 Host: www.webserver.com
Проверил — апач, гуглевский gws на google.com, сысоевский nginx на rambler.ru знают, яндексевский lighttpd говорит на подобное 400 Bad Request, а джаноговский testserver вообще умирает с исключением. :)
Так вот, еще в прошлом году я опечатался и добавил запись в контакт-лист icq вместо msn... набрал account add 1 вместо account add 3.
И вот последствия – qip в контакт-листе показывает человека из msn и падает при попытке просмотра его профиля.

Вот такой чудный UIN. blablabla@hotmail.com
Из этого очевидным образом следует неиллюзорная необходимость наличия открытой спецификации протоколов обмена сообщениями и... :)
( как на icq.com похапе не настроили и предлагают скачать cmd.php )
А следовательно — ...
... надо эскейпить мета-символы оболочки.
Т.е. в понятную и простую, но не работающую команду
scp -r storage:"/storage/data/Music/Billy's band/2007 - Весенние обострения" .
следует накрутить бэкслеший до состояния
scp -r storage:"/storage/data/Music/Billy\'s\ band/2007\ -\ Весенние\ обострения" .
... нет смысла давать пользователям scp без шелла, т.к. они сделают просто
scp server:"/dev/null; screen -dmS session_name /bin/foobar" .
И я не исключаю возможность сделать это даже без screen, но по логике вещей (которую я не проверял) при освобождении tty всем, запущеннытм таким образом, прилетит SIGHUP и любое разумное приложение помрет.
То же самое справедливо и для rsync, если он работает через "remote shell"
Люди
Во время утренней пробежки по советскому парку увидал чудесное. Мужчина лет тридцати на каком-то ниссане проезжает по чему-то среднему между проезжей частью и тротуаром, останавливается, выходит... Достает из багажника санки и идет кататься на горку.Perl
Раз в год и кажущийся абсурдным assert стреляет.my $foo = "a+b";
die if ($foo !~ /$foo/);
Решение:
die if ($foo !~ /\Q$foo\E/);
bash.org.ru
В час дня отвалился ssh до одной из машин из-за того, что бесперебойник устал тянуть ADSL-модем после отключения питания.За 20 минут до того, как села батарейка на башорге подтвердили цитату
WinnorOkOmo: самый страшный звук в серверной - тишина...
Зайдем на сайт ЦИК РФ и изучим данные О текущих итогах голосования на 02.00 по московскому времени.
( и обнаружим, что система криво вычисляет проценты )
