Я похоже в 8.0-RELEASE-p2 наступил на грабли, описанные в kern/104406.
Симптомы совпадают: наблюдается множество процессов, застрявших
в состоянии ufs. Однако те процессы, которые успели открыть свои файлы
раньше, продолжают работать.
Hаходил кто-нибудь решение проблемы или workaround?
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/49@fidonet http://vas.tomsk.ru/
VS> О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
VS> О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ 8.0-RELEASE-p2 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ kern/104406.
VS> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫: О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
VS> О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ufs. О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
VS> О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
HО©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫
ps axl
procstat -kka
О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ddb
О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ pr :-).
VS> HО©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ workaround?
HО©╫ О©╫О©╫О©╫ kib@ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫...
--
Mikolaj Golub
VS> � ������ � 8.0-RELEASE-p2 �������� �� ������, ��������� � kern/104406.
VS> �������� ���������: ����������� ��������� ���������, ����������
VS> � ��������� ufs. ������ �� ��������, ������� ������ ������� ���� �����
VS> ������, ���������� ��������.
VS> H������ ���-������ ������� �������� ��� workaround?
������� �� ����, �� ���� ����� ����� ����� ������������� ����������
� ����� ���������: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/107439
�������� �� 6.2, �������� � �� ��������� 8.0-STABLE.
Eugene
--
��� ��� ���� ����� �������� �����, ����������������� �������,
"���������� ��������� � ������������ ���������".
> VS> Я похоже в 8.0-RELEASE-p2 наступил на грабли, описанные в kern/104406.
> VS> Симптомы совпадают: наблюдается множество процессов, застрявших
> VS> в состоянии ufs. Однако те процессы, которые успели открыть свои файлы
> VS> раньше, продолжают работать.
> Hе помешало бы
> ps axl
> procstat -kka
"procstat -kka" опубликую, как только опять подвиснет и будет время.
Что касается ps, в нём наблюдалось огромное количество подвисших
newsyslog, save-entropy и т.п.
> А еще бы лучше собрать со всевозможными отладочными опциями и получить ddb
> вывод как в том pr :-).
И много это помогло тому pr? :(
> VS> Hаходил кто-нибудь решение проблемы или workaround?
> Hу там kib@ написал, что в том случае похоже проблемы либо с
> контроллером либо с драйвером контроллера...
В том случае нечто экзотическое типа mly(4), а у меня обычный IDE.
И судя по результатам поиска в гугле, проблема с замерзанием процессов в
ufs встречается у разных людей и на разном железе.
Пока попробую собрать ядро без SMP, вдруг поможет.
> VS> Я похоже в 8.0-RELEASE-p2 наступил на грабли, описанные в kern/104406.
> VS> Симптомы совпадают: наблюдается множество процессов, застрявших
> VS> в состоянии ufs. Однако те процессы, которые успели открыть свои файлы
> VS> раньше, продолжают работать.
> VS> Hаходил кто-нибудь решение проблемы или workaround?
> Решения не знаю, но знаю метод очень легко воспроизвести блокировку
> в таком состоянии: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/107439
> Работало на 6.2, работает и на январской 8.0-STABLE.
И как эта блокировка выглядит? Так же, как в kern/104406?
VS> Mikolaj Golub wrote:
>> VS> Я похоже в 8.0-RELEASE-p2 наступил на грабли, описанные в kern/104406.
>> VS> Симптомы совпадают: наблюдается множество процессов, застрявших
>> VS> в состоянии ufs. Однако те процессы, которые успели открыть свои файлы
>> VS> раньше, продолжают работать.
>> Hе помешало бы
>> ps axl
>> procstat -kka
VS> "procstat -kka" опубликую, как только опять подвиснет и будет время.
VS> Что касается ps, в нём наблюдалось огромное количество подвисших
VS> newsyslog, save-entropy и т.п.
Вывод ps тут желателен просто чтоб проще было искать интересные процессы,
которые уже потом более детально изучать в выводе procstat.
>> А еще бы лучше собрать со всевозможными отладочными опциями и получить ddb
>> вывод как в том pr :-).
VS> И много это помогло тому pr? :(
По крайней мере чтоб можно было сравнить действительно ли это похожие случаи.
>> VS> Hаходил кто-нибудь решение проблемы или workaround?
>> Hу там kib@ написал, что в том случае похоже проблемы либо с
>> контроллером либо с драйвером контроллера...
VS> В том случае нечто экзотическое типа mly(4), а у меня обычный IDE.
VS> И судя по результатам поиска в гугле, проблема с замерзанием процессов в
VS> ufs встречается у разных людей и на разном железе.
Hу и разное железо может глючить... А вообще причины могут быть совсем разные
в разных случаях..
VS> Пока попробую собрать ядро без SMP, вдруг поможет.
Лучше таки с отладкой ;-) и запостить потом инфу в freebsd-fs@. Думаю больше
шансов починить чем пересбором без SMP.
--
Mikolaj Golub
> >> VS> � ������ � 8.0-RELEASE-p2 �������� �� ������, ��������� � kern/104406.
> >> VS> �������� ���������: ����������� ��������� ���������, ����������
> >> VS> � ��������� ufs. ������ �� ��������, ������� ������ ������� ���� �����
> >> VS> ������, ���������� ��������.
> >> H� �������� ��
> >> ps axl
> >> procstat -kka
> VS> "procstat -kka" ���������, ��� ������ ����� ��������� � ����� �����.
> VS> ��� �������� ps, � � ����������� �������� ���������� ���������
> VS> newsyslog, save-entropy � �.�.
> ����� ps ��� ��������� ������ ���� ����� ���� ������ ���������� ��������,
> ������� ��� ����� ����� �������� ������� � ������ procstat.
> >> � ��� �� ����� ������� �� ������������� ����������� ������� �
> >> �������� ddb ����� ��� � ��� pr :-).
> VS> � ����� ��� ������� ���� pr? :(
> �� ������� ���� ���� ����� ���� �������� ������������� �� ��� ������� ������.
������� ������� ���������� �����?
include GENERIC
options INVARIANTS
options INVARIANT_SUPPORT
options WITNESS
options DEBUG_LOCKS
options DEBUG_VFS_LOCKS
options DIAGNOSTIC
> >> VS> H������ ���-������ ������� �������� ��� workaround?
> >> H� ��� kib@ �������, ��� � ��� ������ ������ �������� ���� �
> >> ������������ ���� � ��������� �����������...
> VS> � ��� ������ ����� ������������ ���� mly(4), � � ���� ������� IDE.
> VS> � ���� �� ����������� ������ � �����, �������� � ����������� ��������� �
> VS> ufs ����������� � ������ ����� � �� ������ ������.
> H� � ������ ������ ����� �������... � ������ ������� ����� ����
> ������ ������ � ������ �������..
���������� ���� ���� �� ������ ATA-����� ����������, ��������.
>> ������� �� ����, �� ���� ����� ����� ����� ������������� ����������
>> � ����� ���������: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/107439
>> �������� �� 6.2, �������� � �� ��������� 8.0-STABLE.
VS> � ��� ��� ���������� ��������? ��� ��, ��� � kern/104406?
��, � ��������� [ufs] �������� ������.
Eugene
--
��������� ����� ������������� �������������; ����������, �������� � ���;
���� �� ����� �����; ����, ���������� �����; ���� �� ������; ���� �������,
���������� ������������, � �������, �������� ��� �����. (������)
VS> Столько отладки достаточно будет?
VS> include GENERIC
VS> options INVARIANTS
VS> options INVARIANT_SUPPORT
VS> options WITNESS
VS> options DEBUG_LOCKS
VS> options DEBUG_VFS_LOCKS
VS> options DIAGNOSTIC
Hу и сам ddb:
options KDB
options DDB
И потом когда появятся зависшие процессы, можно сделать так:
1) Включить дамп девайс:
dumpdev="AUTO" в /etc/rc.conf и
/etc/rc.d/dumpon start
2) увеличить ddb capture буфер на всякий случай:
debug.ddb.capture.bufsize=5242880
3) установить скрипт, чтоб не вводить команды вручную в дебургере:
ddb script kdb.enter.break='capture on; show pcpu; show allpcpu; bt; ps; show locks; show alllocks; show lockedvnods; alltrace; call doadump; reset'
4) В консоли зайти в ddb нажав Ctr-Alt-ESC
Дальше он автоматом всю информацию соберет в capture буфер, сбросит дамп и
перегрузится. После перезагрузки содержимое буфера выводится командой:
ddb capture -M /var/crach/vmcore.0 print > capture.0
Hо по идее там crashino(8) при запуске стартонет и сам соберет в /var/crash/core.txt.0.
Если же не хочется перегружать комп с дампом. То из скрипта убрать
"call doadump; reset" и в загрузчике когда он выполнет все команды выполнить команду
c
(продолжить). И вытащить содержимое capture буфера из живой системы:
ddb capture print > capture.txt
--
Mikolaj Golub
MG> О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫
MG> "call doadump; reset" О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
--
Mikolaj Golub
VS>> Я похоже в 8.0-RELEASE-p2 наступил на грабли, описанные в kern/104406.
VS>> Симптомы совпадают: наблюдается множество процессов, застрявших
VS>> в состоянии ufs. Однако те процессы, которые успели открыть свои файлы
VS>> раньше, продолжают работать.
VS>> Hаходил кто-нибудь решение проблемы или workaround?
>> Решения не знаю, но знаю метод очень легко воспроизвести блокировку
>> в таком состоянии: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/107439
>> Работало на 6.2, работает и на январской 8.0-STABLE.
VS> И как эта блокировка выглядит? Так же, как в kern/104406?
Мой PR kib@ при помощи Mikolaj Golub закрыл, исправив проблему
в CURRENT и 8-STABLE. Hо у тебя, судя по всему, другое?
Помогло отключение FLOWTABLE? А кстати, что это такое? :-)
Eugene
--
Всегда, везде и всюду - Смерть и Свет, они растут и убывают, спешат и ждут;
они внутри и снаружи Грезы Безымянного, каковая - мир; и выжигают они в
сансаре слова, чтобы создать, быть может, нечто дивно прекрасное.
> VS>> � ������ � 8.0-RELEASE-p2 �������� �� ������, ��������� � kern/104406.
> VS>> �������� ���������: ����������� ��������� ���������, ����������
> VS>> � ��������� ufs. ������ �� ��������, ������� ������ ������� ���� �����
> VS>> ������, ���������� ��������.
> VS>> H������ ���-������ ������� �������� ��� workaround?
> >> ������� �� ����, �� ���� ����� ����� ����� ������������� ����������
> >> � ����� ���������: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/107439
> >> �������� �� 6.2, �������� � �� ��������� 8.0-STABLE.
> VS> � ��� ��� ���������� ��������? ��� ��, ��� � kern/104406?
> ��� PR kib@ ��� ������ Mikolaj Golub ������, �������� ��������
> � CURRENT � 8-STABLE. H� � ����, ���� �� �����, ������?
> ������� ���������� FLOWTABLE?
����� ������������ � net.inet.flowtable.enable=0 �������� ��� 8 ����
��� ���������. H� ��� �����������, ��� ��� �� ����������, ������ ��� �
�ݣ cron �������� (�.�. ��� ������������� ������ �� ���� ��
/usr/libexec/save-entropy � �.�.). ����� ������ ����, ������.
> � ������, ��� ��� �����? :-)
��� � �����, ��� ������� ������� ����� ����� cef.
EG> Помогло отключение FLOWTABLE? А кстати, что это такое? :-)
http://conferences.sigcomm.org/sigcomm/2009/workshops/presto/papers/p37.pdf
--
Mikolaj Golub
EG>> Помогло отключение FLOWTABLE? А кстати, что это такое? :-)
MG> http://conferences.sigcomm.org/sigcomm/2009/workshops/presto/papers/p37.pdf
Спасибо, очень интересно. И достигнутое ускорение роутинга очень впечатляет.
Eugene
--
Муки совести переносимы.
>>>> � ������ � 8.0-RELEASE-p2 �������� �� ������, ��������� � kern/104406.
>>>> �������� ���������: ����������� ��������� ���������, ����������
>>>> � ��������� ufs. ������ �� ��������, ������� ������ ������� ���� �����
>>>> ������, ���������� ��������.
> >> H� �������� ��
> >> ps axl
> >> procstat -kka
> VS> "procstat -kka" ���������, ��� ������ ����� ��������� � ����� �����.
> VS> ��� �������� ps, � � ����������� �������� ���������� ���������
> VS> newsyslog, save-entropy � �.�.
> ����� ps ��� ��������� ������ ���� ����� ���� ������ ���������� ��������,
> ������� ��� ����� ����� �������� ������� � ������ procstat.
> >> � ��� �� ����� ������� �� ������������� ����������� ������� �
> >> �������� ddb ����� ��� � ��� pr :-).
> VS> � ����� ��� ������� ���� pr? :(
> �� ������� ���� ���� ����� ���� �������� ������������� �� ���
> ������� ������.
> >> VS> H������ ���-������ ������� �������� ��� workaround?
> >> H� ��� kib@ �������, ��� � ��� ������ ������ �������� ���� �
> >> ������������ ���� � ��������� �����������...
> > � ��� ������ ����� ������������ ���� mly(4), � � ���� ������� IDE.
> > � ���� �� ����������� ������ � �����, �������� � ����������� ��������� �
> > ufs ����������� � ������ ����� � �� ������ ������.
> H� � ������ ������ ����� �������... � ������ ������� ����� ����
> ������ ������ � ������ �������..
���� �� ����, ��� ��� net.inet.flowtable.enable=0 ��� ����� ��������
�� SMP ���������� ��������� � ��� ����������, ���� ���� �� �
����������� ��� �������� �����������. H� ����, ����� ����� �����
net.inet.flowtable.enable � ����������� ��������� � ��������� ufs, ��
����� workaround ���� ������������ ����������.
02 May 10 11:34, you wrote to Mikolaj Golub:
>> > ufs ����������� � ������ ����� � �� ������ ������.
>> H� � ������ ������ ����� �������... � ������ ������� ����� ����
>> ������ ������ � ������ �������..
VS> ���� �� ����, ��� ��� net.inet.flowtable.enable=0 ��� ����� ��������
VS> �� SMP ���������� ��������� � ��� ����������, ���� ���� �� �
VS> ����������� ��� �������� �����������. H� ����, ����� ����� �����
VS> net.inet.flowtable.enable � ����������� ��������� � ��������� ufs, ��
VS> ����� workaround ���� ������������ ����������.
406491 [ 11751 ] ������ / [:||||:] / �� ������ / ���������� 2010-04-25 � 08:11
xxx: ������ ������ �� ����������, ������� ������ ������, �������������� ����
�����, ���������� ��������� ��������
Vova
VS> ���� �� ����, ��� ��� net.inet.flowtable.enable=0 ��� ����� ��������
VS> �� SMP ���������� ��������� � ��� ����������, ���� ���� �� �
VS> ����������� ��� �������� �����������. H� ����, ����� ����� �����
VS> net.inet.flowtable.enable � ����������� ��������� � ��������� ufs, ��
VS> ����� workaround ���� ������������ ����������.
lock leak �������, ���� �����.
Eugene
--
����� ����� � ������������ ������� ����������� - ��� ���� ������������,
� ���� ����������.