New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

GD не запускается при большом количестве словарей

Сообщаем о найденных ошибках сюда

GD не запускается при большом количестве словарей

Postby lexxion » Mon May 25, 2009 6:10 pm

Понимаю, что это экстрим :-) Но все же.
Когда количество словарей стало приближаться к 500, программа перестала запускаться. Если удалить несколько словарей (любых), работоспособность восстанавливается.
При этом более ранняя rev 273 такое и большее количество словарей обрабатывает нормально.
В ревизиях в промежутке 283-312 процесс исчезает через несколько секунд после запуска.
В 315 и более поздних (включая 0.9) пропадает GUI, а процесс остается в диспетчере задач. :-(

Надеюсь, можно что-нибудь с этим сделать? :roll:

Система Windows XP SP3. На других проверить сейчас возможности нет.
lexxion
 
Posts: 12
Joined: Thu May 21, 2009 4:14 pm

Re: GD не запускается при большом количестве словарей

Postby ikm » Mon May 25, 2009 6:25 pm

Обычно это связано либо с тем, что 1) закончились файловые дескрипторы, либо с тем, что 2) закончилось виртуальное адресное пространство. По 1) - как увеличить кол-во дескрипторов в Windows я не знаю, хотя и уверен, что это можно как-то сделать, по 2) - имеет смысл пожать все dsl-словари и stardict-словари dictzip'ом.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: GD не запускается при большом количестве словарей

Postby lexxion » Mon May 25, 2009 6:35 pm

Словари все уже пожаты, так что проблема не в этом.
И еще раз подчеркну - ведь в 273 ревизии проблема отсутствует. Отчего такое может наблюдаться?
lexxion
 
Posts: 12
Joined: Thu May 21, 2009 4:14 pm

Re: GD не запускается при большом количестве словарей

Postby ikm » Mon May 25, 2009 6:45 pm

Добавьте еще большее количество словарей - и 273я должна загнуться. Скорее всего, в новых ревизиях используется больше файловых дескрипторов под другие нужды. Точно не знаю, но я не вижу ничего сверхъестественного, что было в тех 11 ревизиях, что отделяют 273 от 284.

Короче, попробуйте для начала найти, как увеличить количество дескрипторов в windows. Думаю, это решит проблему. Ежели однако хочется заняться поиском истины, могу только лишь предложить установить точно, в какой ревизии наблюдается регрессия методом половинного деления.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: GD не запускается при большом количестве словарей

Postby lexxion » Tue May 26, 2009 2:14 pm

Насчет дескрипторов.. Вот это на что-нибудь похоже?
http://www-01.ibm.com/support/docview.w ... ss=PUSHFWK
Или совсем не то? Вообще мне довольно сложно такое искать: я в этом очень мало понимаю.
ikm wrote:Добавьте еще большее количество словарей - и 273я должна загнуться.

Подтверждаю, она все-таки "загнулась". Кстати, заметил, что работала она за счет того, что по достижении определенного количества словарей переставала их подхватывать, их и в общем списке не было.
Больше пока ничего сказать не могу :-(

И еще вопрос - я правильно понял, что под линуксом такой проблемы быть не должно? Стоит проверять?
lexxion
 
Posts: 12
Joined: Thu May 21, 2009 4:14 pm

Re: GD не запускается при большом количестве словарей

Postby ikm » Tue May 26, 2009 3:14 pm

Под линуксом будет то же самое. Но вот только под линуксом-то это можно изменить в /etc/security/limits.conf (для debian как минимум). А вот как изменить это в виндовс - неизвестно. Кто-то пишет, что под windows имеется жесткий предел в 2048 дескрипторов. И что надо использовать родное api типа CreateFile чтобы обойти это ограничение. Для файлов данных dsl/stardict оно там как раз и используется. А вот для файлов индекса используется обычный fopen. В общем, поди там пойми, сколько и каких дескрипторов там есть, и сколько их разрешено.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: GD не запускается при большом количестве словарей

Postby ikm » Tue May 26, 2009 3:37 pm

Разобрался. По дефолту с помощью fopen под windows можно открыть до 512 файловых дескрипторов. Однако этот предел каждая программа может поднять себе до 2048, что теперь и делается. Это изменение ушло в SVN.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: GD не запускается при большом количестве словарей

Postby lexxion » Tue May 26, 2009 4:34 pm

:D Огромное спасибо!
lexxion
 
Posts: 12
Joined: Thu May 21, 2009 4:14 pm

Re: GD не запускается при большом количестве словарей

Postby niccolo » Sun May 31, 2009 1:28 pm

Подтверждаю вышеописанную проблему на 351 и XP SP2 64-bit. Причём гнётся просто на папке с порядка 200 словарей. ГУИ исчезает а программа перестаёт индексировать и просто остаётся висеть в процессах. Псоледнее происходит даже просто при попытке свернуть программу.
niccolo
 
Posts: 25
Joined: Tue May 05, 2009 3:32 pm

Re: GD не запускается при большом количестве словарей

Postby ikm » Sun May 31, 2009 3:49 pm

2lexicon: что-то изменилось с тех пор как было повышено количество дескрипторов?
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Next

Return to Ошибки

Who is online

Users browsing this forum: Google [Bot], Majestic-12 [Bot] and 19 guests