LINUX.ORG.RU
ФорумTalks

Нужно срочно спасать удалённый сервер! :)


0

0

Сегодня утром просыпаюсь - web-сервер выдаёт 500-ю ошибку.

Попытка перезапустить web-сервер привела к завису процесса в момент старта.

Соединяюсь по SSH ещё раз. Запускаю mc - виснет на старте.

В dmesg длинный ряд ошибок (закину потом, а то форум не пущает):

...

Собираюсь отдать команду reboot, но вспоминаю, что в fstab не прописана проверка дисков на каждом перезапуске (они и так-то пару раз в год бывают...) Лезу прописывать. mcedit виснет, а вот nano открывает файл на ура. Сохраняю. nano на сохранении виснет.

Да, зависшие программы не убиваются по Ctrl-C/Ctrl-Z.

Лезу из очередной ssh-сессии и вижу, что в /etc fstab исчез. Вообще.

Соответственно, машину перезапускать нельзя.

И вот теперь в непонятнках, что делать. Сейчас попытаюсь создать новый файл. Но боюсь обломаться.

...

А ехать на колокейшн - история тяжёлая, однако. Там за сутки вперёд пропуск заказывать надо :)

★★★★★

WARNING: at kernel/exit.c:889 do_exit+0x69e/0x730()
Modules linked in: eeprom i2c_i801 i2c_core pcspkr thermal rtc processor button nfs lockd sunrpc scsi_transport_fc sx8 scsi_wait_scan
Pid: 17444, comm: mysqld Tainted: G      D  2.6.25-gentoo-r9 #2
 [<c012483f>] warn_on_slowpath+0x5f/0x90
 [<c013bd17>] atomic_notifier_call_chain+0x17/0x20
 [<c02d0a8d>] notify_update+0x1d/0x30
 [<c02d0d03>] vt_console_print+0x1f3/0x2d0
 [<c02d0b10>] vt_console_print+0x0/0x2d0
 [<c0124c5e>] __call_console_drivers+0x5e/0x70
 [<c0125201>] release_console_sem+0x1b1/0x1d0
 [<c013b3b7>] hrtimer_interrupt+0x157/0x190
 [<c0129bac>] irq_exit+0x3c/0x80
 [<c012831e>] do_exit+0x69e/0x730
 [<c0104640>] apic_timer_interrupt+0x28/0x30
 [<c012573b>] printk+0x1b/0x20
 [<c0105104>] die+0x164/0x170
 [<c0116d6f>] do_page_fault+0x27f/0x630
 [<c0116af0>] do_page_fault+0x0/0x630
 [<c03f3e82>] error_code+0x72/0x78
 [<c01c9512>] reiserfs_get_block+0x812/0x13a0
 [<c019e987>] ll_rw_block+0x77/0x110
 [<c019ee93>] __block_prepare_write+0x1f3/0x3d0
 [<c015a3d3>] add_to_page_cache+0x93/0xa0
 [<c019f105>] block_write_begin+0x55/0xf0
 [<c01c8d00>] reiserfs_get_block+0x0/0x13a0
 [<c01cb4e2>] reiserfs_write_begin+0x122/0x200
 [<c01c8d00>] reiserfs_get_block+0x0/0x13a0
 [<c015b115>] generic_file_buffered_write+0x115/0x640
 [<c0184415>] do_lookup+0x65/0x1a0
 [<c018403e>] permission+0x7e/0x160
 [<c018e02c>] dput+0x1c/0xd0
 [<c015b8bb>] __generic_file_aio_write_nolock+0x27b/0x540
 [<c0186948>] path_walk+0x88/0xa0
 [<c015bbd9>] generic_file_aio_write+0x59/0xd0
 [<c017c9f7>] do_sync_write+0xc7/0x110
 [<c0137b00>] autoremove_wake_function+0x0/0x50
 [<c01691e1>] handle_mm_fault+0x2b1/0x5b0
 [<c029562c>] security_file_permission+0xc/0x10
 [<c017cbb6>] rw_verify_area+0x66/0xd0
 [<c017d2e6>] vfs_write+0xa6/0x160
 [<c01cc2e0>] reiserfs_file_write+0x0/0xc0
 [<c017da21>] sys_write+0x41/0x70
 [<c0103b96>] sysenter_past_esp+0x5f/0x85
 [<c03f0000>] setup_local_APIC+0x120/0x2a0
 =======================
---[ end trace ffed7ba048a5f356 ]---
php-cgi[9887]: segfault at 1 ip 00000001 sp bf8ace9c error 4 in php-cgi[8048000+603000]

KRoN73 ★★★★★
() автор топика

Попытка создать новый файл в /etc - завис.

Попытка перемонтировать / в ro - завис.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Либо что-то очень мощно заглючило в ядре, либо проблема с железом (возможно - с оперативной памятью).

Deleted
()

Работа с другими разделами идёт, вроде, без проблем. В dmesg новых ошибок нет.

...

Чёрт, как бы починить активный корневой раздел? :) Говорила мне мама, раскидывай все компоненты системы по разным разделам... Домашнюю бы машину в таком состоянии раз плюнуть починил бы удалённо :-/

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Попробуй запустить что-то типа cat /dev/sdX > /dev/null. Если и так зависнет, то думаю что-либо сделать будет не реально.

Deleted
()
Ответ на: комментарий от KRoN73

Мне кажется с железом проблема...

В общем все плохо=)

delilen ★☆
()
Ответ на: комментарий от Deleted

>Либо что-то очень мощно заглючило в ядре, либо проблема с железом (возможно - с оперативной памятью).

Мне кажется, что это в FS сбой. Всё же, машина уже больше четырёх лет с непрерывным 24x365 io-wait работает. И в dmesg там куски reiserfs функций видны.

...

Хотя, конечно, мог и винт сдохнуть. Работающие разделы на другом лежат. А родной брат этого (IBM IC35L036UCD210-0) высыпал бэдблоками года два назад. Но, правда, не сдох, до сих пор там же размонтированный крутится и работоспособен.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

>Попробуй запустить что-то типа cat /dev/sdX > /dev/null

Попробовал. Ещё раз убедился, что с чтением всё отлично. Проблемы на записи возникают.

...

Кстати, странно тогда, что mc при запуске виснет. Он же пишет только в ~, но /home у меня на другом разделе и работает отлично.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от mky

Попытался глянуть, в каком состоянии зависший mc (хотя сессию с ним уже закрыл):

ps ax|grep mc

Получил вывод двух совпадающий по подстроке процессов (тот де meMCached и сам grep) и завис.

Другие разделы с reiserfs работают отлично (/home и /var).

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от mky

Гы. top виснет после первого цикла обновления. Раньше - не вис.

Походу, проблема должна быть в ядре.

KRoN73 ★★★★★
() автор топика

Блин, дёрнул меня чёрт fstab редактировать... Глядишь, и перегрузилась бы машина. В крайнем случае - техподдержка бы там перегрузила. А теперь - придётся выписывать пропуск и ехать... Возможно только завтра.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Наверное, пора заказывать пропуск, раньше закажешь, раньше получишь доступ :)

Похоже на проблемы с памятью. Ядро покорёжено, ИМХО, скоро все остальное зависнет.

mky ★★★★★
()

Jabber-сервер на том сервере работает :)

KRoN73 ★★★★★
() автор топика

>Лезу из очередной ssh-сессии и вижу, что в /etc fstab исчез. Вообще.

Предположение конечно бредовое, но такое возможно, если на разделе кончилось место.

madcore ★★★★★
()
Ответ на: комментарий от madcore

>такое возможно, если на разделе кончилось место

Я на это в первую очередь глянул, когда web-сервер стал 500-ю ошибку возвращать :) 3,7Гб свободно (из 33Гб).

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от madcore

а что за сервак? удаленно состояние винта посмотреть нельзя?
iLo там, или родные диаг. утилиты...

kott ★★★★★
()
Ответ на: комментарий от KRoN73

Да винт, ИМХО, уже не причём, top и ps виснуть не должны. Они же только /proc читают, значит чего-то прочитать не могут там, mc, возможно, тоже /proc читает.

mky ★★★★★
()
Ответ на: комментарий от kott

>а что за сервак?

SE7500WV2 SCSI

>удаленно состояние винта посмотреть нельзя?

Х.з. кроме sdparm ничего не было.

Сумел отправить в перезагрузку (reboot без sync, на sync висло). Но, похоже, с концами. А то была надежда, что модификация fstab не записалась :)

KRoN73 ★★★★★
() автор топика

скорее всего это память глючит. Я с таким уже сталкивался, когда чтение проходит нормально, а любая попытка записи подвешивает процесс. Причем подвешивались только новые процессы, старые, которые уже успели отхапать себе рабочие блоки памяти, работали нормально

JB ★★★★★
()
Ответ на: комментарий от JB

>а баг больше не воспроизводится?

Я поправил fstab на тему проверки HDD и отправил в рестарт.

А то четыре года непрерывной работы без проверки - это как-то экстремально, кажется :)

KRoN73 ★★★★★
() автор топика

>Собираюсь отдать команду reboot, но вспоминаю, что в fstab не прописана проверка дисков на каждом перезапуске (они и так-то пару раз в год бывают...)

я не знаю как у вас, но во многих дистрах при ретких ребутах пишется:

/dev/раздел был столько-то дней без проверки, check forced

kott ★★★★★
()
Ответ на: комментарий от KRoN73

Вторая перезагрузка прошла. Вроде, всё работает.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от kott

>во многих дистрах при ретких ребутах пишется

Да. Но я эту машину последний раз в глаза два года назад видел :) И перегружалась она последний раз полгода назад.

KRoN73 ★★★★★
() автор топика

В /tmp лежит несколько файлов вида /tmp/sess_47b5497ce5~916bf47f5a9a63b нулевой длины и нулевой (1.1.1970) даты. Не удаляются, не открываются :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Блин, как бы reiserfsck провести для корневого раздела удалённого сервера? Боюсь, что pass=1 в fstab нифига не помогает :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Не считая этих трёх файлов, всё остальное работает отлично. Онлайн сайта уже под сотню.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

> В /tmp лежит несколько файлов вида /tmp/sess_47b5497ce5~916bf47f5a9a63b нулевой длины и нулевой (1.1.1970) даты. Не удаляются, не открываются :)

На XFS, к примеру, такие глюки говорят об однозначных проблемах с железом. Или о перегреве. У меня недавно на одном сервере LVM вообще хомяк отстрелил - перегрев.

Darkman ★★★
()

Увлекательная история.

Очень увлекательная история. С нетерпением жду продолжения. Но всё же, что она делает в Talks?

Camel ★★★★★
()
Ответ на: комментарий от Ramen

>ССЗБ.

Только давайте флейм не разводить. ext3 у меня уже дважды умирала. А reiserfs - ещё ни разу. Так что для себя по поводу production давно уже всё решено :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Darkman

>На XFS, к примеру, такие глюки говорят об однозначных проблемах с железом. Или о перегреве.

Температура винтов сейчас 33-37 градусов.

Сбоев больше нет. Всё работает. Вот файлы нулевые - смущают :)

KRoN73 ★★★★★
() автор топика
Ответ на: Увлекательная история. от Camel

>Но всё же, что она делает в Talks?

Потому что тут уже упомянули reiserfs, gentoo... Скоро тут может быть очень шумно :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от mky

>Ну, наверное, можно перевести корень в ro и делать проверку.

Увы:

# mount /dev/sda3 -o ro,remount
mount: / занят

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

> Увы:
>

> # mount /dev/sda3 -o ro,remount

> mount: / занят


Думаю для этого надо сначала убить все процессы, у которых могут быть открыты файлы на запись.

Deleted
()
Ответ на: комментарий от KRoN73

Не, ну понятно, что нужно отстреливать все процессы. То есть сайт не будет работать во время проверки. На всякий случай запустить ещё одни sshd на другом порту в chroot'e на другом разделе или на tmpfs.

mky ★★★★★
()
Ответ на: комментарий от KRoN73

не пробовал :)
но по теории должен лечить

kott ★★★★★
()
Ответ на: комментарий от KRoN73

> Блин, как бы reiserfsck провести для корневого раздела удалённого сервера? Боюсь, что pass=1 в fstab нифига не помогает :)

touch /forcefsck ?

Или надо в реальном времени наблюдать по ssh за ходом проверки?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.