Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чат, тотальное зависание машины, зависание с удаленного клиента 
V
    Опции темы
Platon
Дата 24.5.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Здравствуйте, уважаемые.

Ни за что бы не подумал, что на Java можно схватить такой косяк.
Дело в том что все работало прекрасно до поры до времени, время шло, я тихонько расширял возможности и в какой то момент возникла проблема, при подключении удаленного клиента (т.е. не с локал-хоста, не со своего IP по локальной сети, или со своего глобального IP), а именно с чужой машины. Удивительно наблюдать картину, когда сервер виснет не как обычно подгружая процессор под 100% а просто остановив работу виндов напрочь, это что такое? неужели на Java ручками загребущими можно и до такого довести?

Проверял работу сервера на 2-х машинах из них обе jvm 1.6, 1 jvm 1.5.

Результаты всегда одинаковы, сервер благополучно проводит аутентификацию, а дальше виснет...
PM MAIL ICQ   Вверх
shimopus
Дата 24.5.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 25.8.2006

Репутация: нет
Всего: 1



вообще "виснуть" понятие растяжимое.... Что именно происходит? Чем поведение отличается от загрузки проца на 100%?

Это сообщение отредактировал(а) shimopus - 24.5.2007, 17:24
PM ICQ Skype GTalk   Вверх
Platon
Дата 24.5.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Вообще останавливается работа, можно сказать глобальный дед-лок, мышка никак не вращается, и экран застывает (может не так выразился) мышка не двигается совсем, никаких действий выполнить нельзя, все процессы останавливаются, только reset.

Добавлено @ 17:37
OS Windows XP

Это сообщение отредактировал(а) Platon - 24.5.2007, 18:39
PM MAIL ICQ   Вверх
Vurn
Дата 24.5.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.5.2007

Репутация: 1
Всего: 3



При работе всегда делай отдельный тред на GUI (via invokeLater) и отдельный тред сокет-слушателя (который будет notify тред-обработки сообщений)
Таким образом у тебя будет 3 треда как минимум - GUI, socket-listener, обработчик. И программа никогда не будет виснуть.
PM MAIL   Вверх
Platon
Дата 24.5.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Vurn
Извиняюсь конечно, но я уже писал, что у меня не виснет, а умирает вообще ОС.

2. ГУИ на сервере редко бывает, и у меня его нет.
3. и естественно что у меня каждое соединение клиентов уходит по тредам.

не пойму что может вызвать вывод из строя всю ОСку?

Добавлено @ 18:43
МОжет надо permssion policy прикрутить? Мало ли по умолчанию запрещен доступ с нелокальной машины, хотя повторюсь, до поры до времени работало.

Это сообщение отредактировал(а) Platon - 25.5.2007, 07:44
PM MAIL ICQ   Вверх
Platon
Дата 25.5.2007, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Новые подробности. Решил после зависания тачки на другом компе побаловаться, что он будет делать, мало ли серв не сдох, пишу, нет не работает, но самое что удивительное после 3 отправленных сообщений и клиент умер, причем умер так же как и сервер, т.е. парализовало всю ОС. вот те и на...
PM MAIL ICQ   Вверх
shimopus
Дата 25.5.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 25.8.2006

Репутация: нет
Всего: 1



Думаю, что Javа тут не при чем. Скорее всего создается слишком большое количество потоков, из за чего JVM вытягивает все ресурсы системы. На 90% ошибка в коде.
PM ICQ Skype GTalk   Вверх
Platon
Дата 26.5.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Цитата(shimopus @  25.5.2007,  12:16 Найти цитируемый пост)
На 90% ошибка в коде. 

К счастью я видать такой уникальный, что попадаю в 10 % ;)

Думаю что тему стоит вообще затереть, бесполезная ветка, прошу прощения.
Оказалось проблема была в ОС "виндовоз", после переустановки запускается отлично. 
Я сразу настаивал на вопросе "Может ли Java привести к тотальной остановке ОС?" не зависанию, а именно остановке.

Цитата(shimopus @  25.5.2007,  12:16 Найти цитируемый пост)
Скорее всего создается слишком большое количество потоков


Проверял на 3500 одновременных запросах провести авторизацию, вроде все отлично, НО конечно в данном случае скидка, что авторизация идет с локальной машины, но с другой стороны, это как минимум 7000 потоков.


PM MAIL ICQ   Вверх
shimopus
Дата 26.5.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 25.8.2006

Репутация: нет
Всего: 1



Цитата(Platon @  26.5.2007,  01:00 Найти цитируемый пост)
после переустановки запускается отлично. 

Интересно, а как же машина клиента, которая тоже беспросветно умирала? Или он тоже запускался на твоей машине? 
PM ICQ Skype GTalk   Вверх
Platon
Дата 28.5.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Тоже интересно, но скорее всего обе машины были инфицированы, больше вариантов не нахожу.
Вчера попробовал протестировать, попросил друзей в пределах города подключиться, целый день проболтали, все работало отлично.
PM MAIL ICQ   Вверх
Platon
Дата 29.5.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Мда, не прошло и 2-х дней та же история :( ну это же нереально! я не могу поверить что проблема в моем коде, слишком сильное влияние чата на ОС, такое полагаю можно сделать только на системном уровне, но никак не прикладном.
PM MAIL ICQ   Вверх
shimopus
Дата 29.5.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 25.8.2006

Репутация: нет
Всего: 1



А может это и делается на системном... JVM явно пользуется системными вызовами. Например для частичной реализации многопоточности...
PM ICQ Skype GTalk   Вверх
Platon
Дата 29.5.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Да, но я полагаю JVM бережет ОС от несанкционированных действий. А как же объяснить что 2 дня чат поработал и опять его заклинило? Что Java системно обращается скажем по четным дням к одним системным вызовам, по нечетным к другим? Обидно так получается, весело будет если я еще 2 дня подожду и опять заработает. я понимаю, когда сразу не работает, но через 2 дня?

Цитата(shimopus @  29.5.2007,  22:12 Найти цитируемый пост)
JVM явно пользуется системными вызовами

конечно не хочется сваливать, но это либо ОС либо JVM.
PM MAIL ICQ   Вверх
Ortega
Дата 30.5.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.11.2005
Где: Харьков, Украина

Репутация: нет
Всего: 6



Судя по симптоматике (особенно - зависание через двое суток работы) - имеет место быть дед-лок. Хотя не исключено, что плодятся неубиенные потоки. Но дед-лок вероятнее.
Java достаточно защищена от "дурака" (без обид, просто термин), но абсолютной защиты, как известно не существует. Посмотри внимательно на метки synchronized, скорее всего они где-то  перекрываются. Говорю из собственного опыта, в свое время убил не один час на поиски этой гадости.
--------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 30.5.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Цитата(Platon @  26.5.2007,  01:00 Найти цитируемый пост)
Проверял на 3500 одновременных запросах провести авторизацию, вроде все отлично, НО конечно в данном случае скидка, что авторизация идет с локальной машины, но с другой стороны, это как минимум 7000 потоков.

Ахренеть smile 
Неудивительно что ОС подвисала от такого количества потоков. Если в приложении создается больше 20-30 потоков, то это верный признак того, что оно неправильно спроектировано.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.