Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Error SYXCDX/1001 DOS ERROR 106

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Технический форум БЭСТ-4
View previous topic :: View next topic  
Author Message
Vladimir



Joined: 19 Jan 2002
Posts: 106
Location: Мальцев Владимир Львович
Occupation: Тюменская ГАСА
Interests: Тюмень

PostPosted: 15 Mar 2004 18:02    Post subject: Error SYXCDX/1001 DOS ERROR 106 Reply with quote

Помогите, пожалуйста, горим!
Отлетает на открытии баз в малоценке, в зарплате в ошибку 106, в ошибку 4 и в ошибку 5.
Переставили сервак, ключ - и поехало.
Конфигурация такая.
Файл-сервер Линух 2.4.20+ MARS-NWE.
Сервер ключа - отдельный, Netware 3.12. Ключ - Rainbow
Клиентские тачки разные, от Win98 до Win XP
БЭСТ 10.2 без заплаток, CMOD
FILES - 240, BUFFERS - 80, SET CLIPPER - F180
_default.pif прописан согласно рекомендациям ИС (best4w2k)
_________________
Владимир Л. Мальцев
mailto: maltsev@tumgasa.ru
Back to top
View user's profile Send private message
gennady



Joined: 06 Feb 2002
Posts: 193



PostPosted: 15 Mar 2004 20:33    Post subject: Re: Error SYXCDX/1001 DOS ERROR 106 Reply with quote

Vladimir wrote:
Помогите, пожалуйста, горим!
Отлетает на открытии баз в малоценке, в зарплате в ошибку 106, в ошибку 4 и в ошибку 5.
Переставили сервак, ключ - и поехало.
Конфигурация такая.
Файл-сервер Линух 2.4.20+ MARS-NWE.
Сервер ключа - отдельный, Netware 3.12. Ключ - Rainbow
Клиентские тачки разные, от Win98 до Win XP
БЭСТ 10.2 без заплаток, CMOD
FILES - 240, BUFFERS - 80, SET CLIPPER - F180
_default.pif прописан согласно рекомендациям ИС (best4w2k)


Если дело в серваке, то вернуться назад, а потом экспериментировать.
ну а теперь главное
Subject : samba & kernel - MAX_OPEN_FILES

Dis is 0neHalf, Dmitry!

Итак, повесть "Как я открыл в Linux 2000 файлов". Всем, кто любит 1C
посвящается. Привожу детальное описание действий по шагам. Hеобходимо:

1. Обнаружить что 1024 файлов на процесс для эксплуатации этого
угребища маловато.


> Вообще-то 1С открывает где-то 380 - 400 ф-лов,
возможно, что данный процесс открывае еще какие-то дескрипторы, типа логов, сомнительно, чтобы это было так, но приводимая цифра слишком внушительна. <

2. Прочитать /usr/src/linux/Documentation/proc.txt возле волшебного
слова file-max. Обнаружить, что для изменения лимита per-process
надо изменить NR_OPEN в limits.h и fs.h находящихся в
/usr/src/include/linux.
3. Поменять их скажем на 2048.
4. сказать make zImage && make modules && make modules_install
5. прописать в lilo новое ядро, сказать lilo и перегрузиться.
6. обнаружить вопль get_unused_fd: тра-ля-ля и нежелание грузиться
7. Hажать Reset, загрузить старое ядро.
8. Вместо того, чтобы запускать newsreader и ныть в ru.linux что
звиздец эхотагу и флеймить о его пригодности для той или иной
задачи, зайти в /usr/src/linux/.
9. сказать rgrep get_unused_fd *.
10. Обнаружить эту функцию в fs/open.c
11. Обнаружить в ней следующий код:
=== struct files_struct * files = current->files;
int fd, error;

error = -EMFILE;
fd = find_first_zero_bit(&files->open_fds, NR_OPEN);
=== 12. Исследовать include/asm на предмет current и обнаружить что это
struct task_state
13. Исследовать include/linux/sched.h на предмет struct task_state и
увидеть что ее поле files представляет собой struct file_struct
14. Обнаружить, что поле open_fds в struct file_struct представляет
собой fd_set, что есть ни что иное, как __kernel_fd_set.
Последняя в свою очередь определена в include/linux/posix_types.h.
15. Обнаружить в include/linux/posix_types.h такой кусок кода:
===#undef __NFDBITS
#define __NFDBITS (8 * sizeof(unsigned long))

#undef __FD_SETSIZE
#define __FD_SETSIZE 1024

#undef __FDSET_LONGS
#define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS)

#undef __FDELT
#define __FDELT(d) ((d) / __NFDBITS)

#undef __FDMASK
#define __FDMASK(d) (1UL << ((d) % __NFDBITS))

typedef struct {
unsigned long fds_bits [__FDSET_LONGS];
} __kernel_fd_set;
=== 16. Применив /dev/head сообразить, что стоило бы поставить
FD_SETSIZE >= NR_OPEN, например 2048.
17. Повторить шаги 4 и 5.
18. Сказать ulimit -n и увидеть 2048
19. Если еще не верится - скомпилить нижеприведенный суперпрограм:
===#include <stdio.h>

main ()
{
FILE *fp;
int i;
char name[100];

mkdir("testdir");

for(i = 0; i < 2000; i++) {
sprintf(name, "testdir/%d", i);
if ( (fp = fopen(name, "wb")) == NULL)
break;
}
printf("%d", i);
}
=== 20. Запустить ее и увидеть что в testdir - 2000 файлов.


Все это заняло у меня 40 минут, включая 2 компиляции ядра.

Примечания: 1) от шага 3 можно сразу перейти к шагу 16
2) передайте тем, кто заведует proc.txt и posix_types.h что не
помешало бы сделать __FD_SETSIZE зависимым от NR_OPEN или
хотябы это описать.
3) Внесите это в FAQ
4) В эксперименте принимали участие: ядро - 2.2.10, без ac-XXX ,
glibc-2.0.7-13, SysVinit-2.76-1. Дистрибутив - RH 5.1

Мораль сей басни такова: чем устраивать многодневный флейм по поводу
того нужны ли в MC часы и где им положено быть, проще взять исходники и
потратить полчаса максимум на добавление этих часов.

Это письмо написал грязный, волосатый, небритый му$@#к, в миру Kolya Nesterov
Press <Del> <Enter> [Team VT Dept]
==============================================================================--
Best regards -- /Peter
mailto: peter@digger.org.ru
--- Gnus/5.0803 (Gnus v5.8.3) XEmacs/21.1 (Bryce Canyon)
* Origin: Juggernout News Server (2:5020/1309.332)
Back to top
View user's profile Send private message Send e-mail
SantechNik



Joined: 31 Dec 2001
Posts: 1696
Location: Гусев Михаил

Interests: Москва

PostPosted: 16 Mar 2004 10:08    Post subject: Reply with quote

Quote:
Файл-сервер Линух 2.4.20+ MARS-NWE.

Я понимаю, что своим нытьем делу не помогаю. Но вот он прекрасный пример того, что называется - "вам шашечки или ехать?"
Для БЭСТа нужен сервер Novell Netware, а не Samba/Mamba и т.д.

А тут у человека вместо того чтобы спокойно работать в БЭСТе на нелюбимом всеми Нетвари идет битва с сервером на Линухе. Зато модно, аж жуть.
_________________
http://santech.chat.ru/bro.zip - удобный броузер/редактор БД
Back to top
View user's profile Send private message Send e-mail
Magistr



Joined: 19 Aug 2002
Posts: 1264
Location: Петрунин Д.Н.
Occupation: Инженер-программист
Interests: Н.Новгород

PostPosted: 16 Mar 2004 10:36    Post subject: Re: Error SYXCDX/1001 DOS ERROR 106 Reply with quote

gennady wrote:
Если дело в серваке, то вернуться назад, а потом экспериментировать. ну а теперь главное ...


Это, конечно все очень интересно (может и пригодится для 1С), но вот только зачем для сессии, в которой работает Б4 так много открытых файлов? ИС то говорит, что вообще ~250 достаточно, а вы тут > 1024 предлагае
_________________
http://v32.ru - печать и экспорт в Excel отчетов БЕСТ4.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
gennady



Joined: 06 Feb 2002
Posts: 193



PostPosted: 16 Mar 2004 14:16    Post subject: Re: Error SYXCDX/1001 DOS ERROR 106 Reply with quote

Magistr wrote:
gennady wrote:
Если дело в серваке, то вернуться назад, а потом экспериментировать. ну а теперь главное ...


Это, конечно все очень интересно (может и пригодится для 1С), но вот только зачем для сессии, в которой работает Б4 так много открытых файлов? ИС то говорит, что вообще ~250 достаточно, а вы тут > 1024 предлагаете.


Вообще-то, я предлагаю откатиться, а приводимый пример предлагает некий путь поиска проблемы, причем я отметил, что на самом деле 1С
открывает около 400 файлов, это данные экспериментально проверялись на сервере NW4.11, поставил я однажды туда 1С и не смог запустить, пришлось поиграть сетами на сервере и настроить клиента не поумочанию.
Суть проблемы очень похожа на описаную.
В linux глубоко я не лазил, работает он у меня маршрутизатором с файеволом, очень удобно на хилой машине. Каждому зверю свое место, обжегся я однажды на ДЕМОСе, работало великолепно и даже на дисках, которые другие ОС считали убитыми, но когда рухнуло мало не показалось Только паранойя спасла
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Технический форум БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru