Имя: Пароль:
IT
Админ
1с УТ --> bitrix обмен ошибка
,
0 mortnes
 
26.05.19
18:59
Добрый день. При обмене данными между 1с и битриксом, постоянно вываливается ошибка:

{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(1516)}: Ошибка при вызове конструктора (ЧтениеТекста)
        ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаОтвета, лКодировка);          
по причине:
Ошибка совместного доступа к файлу '/home/usr1cv8/tmp/v8_mWVbFi_10c8.tmp'

Конфигурация 11 (11.3.4.103), платформа 8.3.10.2505, модуль битрикса 7.0.1.6. От версии модуля битрикса не зависит. 1с клиент-сервер, сервер установлен на debian. В прочем, когда-то он был и на windows эта ошибка тоже присутствовала, но обмен проходил без ошибок 1 раз из 5 примерно. Сейчас проходит так же, 1 раз и 5. Может упасть через 5 минут, может через час, но падает в любом случае. В чём проблема может-быть?

Сервер 1c запускается от юзера usr1cv8, права на папку /opt/1C ему даны, он владелец, я даже дал ему права на tmp. Поменял umask на 0002. Я уже не знаю куда копать, помогите пожалуйста!!!!
1 mortnes
 
26.05.19
19:01
Во время падения обмена с этой ошибкой, в tmp файл этот, который указан в ошибке присутствует, там простой ответ сервера "success"
2 mortnes
 
26.05.19
19:08
В последнее время заметил такое. Ребут сервера, делаю обмен - проходит нормально, повторный обмен и последующие уже падают в ошибку.
3 ДенисЧ
 
27.05.19
08:03
Возьми унлокер и посмотри, кто держит этот файл
4 Garykom
 
гуру
27.05.19
08:15
(0) Вы реально уже полгода с этой багой сидите?
https://forum.infostart.ru/forum86/topic204814/

Не проще уже нанять специалиста, за денежку естественно.
5 Garykom
 
гуру
27.05.19
08:16
https://toster.ru/q/544116

упс Вопрос задан 06 июля 2018
6 Garykom
 
гуру
27.05.19
08:17
7 Garykom
 
гуру
27.05.19
08:17
"Кэш почисти"  ))
http://1clancer.ru/offer/taskId=41796
8 marty0701
 
27.05.19
08:20
Да 1С и держит этот файл, прост времени на завершение походу не хватает и он следом обмен стартует.
9 Garykom
 
гуру
27.05.19
08:27
В смысле периодичность обмена слишком малый интервал и стартует новое фоновое когда еще старое не закончило?
10 marty0701
 
27.05.19
08:33
С вероятностью 146%
11 mortnes
 
27.05.19
10:06
На тостере и лансере не я писал=)

Посмотрел я код модуля, там чёт таймаутов не нашёл. Почему же у других всё успевает?
12 Garykom
 
гуру
27.05.19
10:21
(11) https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=131&LESSON_ID=10197

Глянь какая у тебя настройка автообмена
13 mortnes
 
27.05.19
10:29
Автообмен я выключил давно, стартую в ручном режиме(
14 mortnes
 
27.05.19
10:30
Сервер хороший на ssd, чего он там не успевает блин
15 mortnes
 
27.05.19
10:36
Регламентные операции я тоже вырубил, касательные обмена. Обмен идёт, но в какой-то момент, совершенно рандомно он падает. И падает не на больших данных, а именно на ответах сервера в 1кб и единственной строчкой "success", при чём он может перед падением этот "success" обработать 10 раз, а на 11 упасть
16 mortnes
 
27.05.19
11:00
Во время старта обмена, в сеансах 2 сеанса, один от сервера фоновое задание (сам обмен) второй от меня (клиента)
17 Garykom
 
гуру
27.05.19
11:01
А ты разбирался как этот обмен то устроен?

Эту проблему решить можно но бесплатно вряд ли кто будет ковыряться, так что или тем кто продал в поддержку или нанимайте за денежку.
18 mortnes
 
27.05.19
11:03
Да принцип простой. Начало обмена>аторизация на сайте>ответ от сайта>1с начинает выгружать данные и отправлять на сайт>сайт их принял и обработал>посылает 1ске ответ "success">1с переходит к следующему шагу и так по кругу
19 mortnes
 
27.05.19
11:06
Вряд ли в платформе дело?
20 Garykom
 
гуру
27.05.19
11:17
(18) "Ошибка совместного доступа к файлу была из-за прав на папку /tmp на debian сервере, где 1с. Нужно было не 777 права выставлять, а 1777"

"Сегодня sticky bit используется в основном для каталогов, чтобы защитить в них файлы. В такой каталог может писать ЛЮБОЙ пользователь. Из такой директории пользователь может удалить только те файлы, владельцем которых он является. Примером может служить директория /tmp, в которой запись открыта для всех пользователей, но нежелательно удаление чужих файлов."

У того похоже сторонний процесс папку /tmp чистил не вовремя
21 Garykom
 
гуру
27.05.19
11:19
Проверь возможно тоже самое права 1777 на /home/usr1cv8/tmp/ сделай
22 Garykom
 
гуру
27.05.19
11:21
(21)+ Хотя если сама 1С и удаляет временный файл раньше времени то не поможет.

Еще глянуть если ли там распаковка zip архива например.

Или если все время тот же самый файл читает то у 1С глюки с не отпусканием файла.
23 mortnes
 
27.05.19
11:34
Она эти темпы создаёт постоянно и всегда одинаковые, меняется лишь име временного файла и вот она нормально читает и отпускает их, но на каком-то вдруг падает, причём этот "какой-то" вообще ничем не отличается от пред идущих
24 mortnes
 
27.05.19
11:35
1777 было сделано первым делом, я даж usr1cv8 делал рутом
25 Garykom
 
гуру
27.05.19
11:51
Ну значит ошибка в этом "ОбщийМодуль.Б_ОбменССайтомСервер"

Эта хрень она типовая из УТ11 а от битрикса встраивается, вот трясите саппорт битрикса кто писал этот модуль.
Да проблема в 1С - но в модуле который предоставляется для интеграции битриксом, для встраивания в конфу.
26 Garykom
 
гуру
27.05.19
11:52
(25) *хрень НЕ типовая из УТ11
27 mortnes
 
27.05.19
11:56
Попробуем конечно, смущает только, что всё-таки у большинства то работает эта хрень
28 mortnes
 
27.05.19
11:56
Да и поддержка битрикса, это 7 кругов ада
29 mortnes
 
28.05.19
11:29
Начал мониторить процессы, вопрос, почему на 1 файл 2 процесса, это нормально для 1ски?

https://cdn1.radikalno.ru/uploads/2019/5/28/8761eb117ded898d9125c50439997c7b-full.jpg
30 Garykom
 
гуру
28.05.19
11:47
(29) Это значит у тебя два фоновых сеанса одновременно обмен ведут.

Проверяй в чем проблема, может две базы 1С или еще что
31 mortnes
 
28.05.19
11:52
Т.е проблема походу в этом? Оно запускает 2 одновременных обмена?
32 lodger
 
28.05.19
12:02
(29) ут11 любит фоновые операции, а они могут под другим процессом работать.
надо чтобы запускающий фоновую операцию код отпускал файл на время работы фонового.
33 mortnes
 
28.05.19
13:43
Вот кусок кода, где падает обмен, что тут необычного?

// Функция - получает информацию от сайта процесс загрузки файла
//
// Параметры:
//  ПараметрыОбмена     -      Настройки узла обмена  
//  ПолноеИмяФайла     -      Полное имя к выгружаемому файлу
//  Соединение         -      Http соединение к сайту
//  ПараметрыЗапроса -      Параметры http запроса
//  Заголовки         -      Заголовки http запроса
// Возвращаемое значение:
//   Ответ сайта
Функция ПолучитьРезультатОтправкиФайлаНаСервер(ПараметрыОбмена,ПолноеИмяФайла, Соединение, ПараметрыЗапроса="", Заголовки="")
    
    ОтветСервера = Неопределено;
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
    
    Попытка
        
        HTTPОтвет = Соединение.ОтправитьДляОбработки(ПолноеИмяФайла, СокрЛП(ПараметрыЗапроса), ИмяФайлаОтвета, СокрЛП(Заголовки));
        ContentType = HTTPОтвет.Заголовки.Получить("Content-Type");
        лКодировка     = Прав(ContentType, СтрДлина(ContentType) - (Найти(ContentType, "charset=")+7));
        
    Исключение
        
        СообщитьПодробно(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПараметрыОбмена, Истина, Истина);    
    КонецПопытки;
    
    ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
    
    Если ФайлОтвета.Существует() Тогда
        
        ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаОтвета, лКодировка);          
        ТекстОтвета = ЧтениеТекста.Прочитать();
        
        Если НЕ ПустаяСтрока(ТекстОтвета) Тогда
            ОтветСервера = ТекстОтвета;
        Иначе
            СообщитьПодробно("Получение данных с сервера: Получен пустой ответ сервера.", ПараметрыОбмена, Истина, Истина);    

        КонецЕсли;
        
    Иначе
        
        СообщитьПодробно("Отправка файла на сервер: Ответ сервера не получен.", ПараметрыОбмена, Истина, Истина);    
        
    КонецЕсли;
    
    Попытка
        УдалитьФайлы(КаталогВременныхФайлов(), ИмяФайлаОтвета);
    Исключение
    КонецПопытки;
    
    Возврат ОтветСервера;
    
КонецФункции