Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Зависание при выполнени #14

Closed
khorevaa opened this issue Jan 15, 2017 · 20 comments
Closed

Зависание при выполнени #14

khorevaa opened this issue Jan 15, 2017 · 20 comments
Labels
Milestone

Comments

@khorevaa
Copy link
Collaborator

Дано: limux
Запуск: команды gitsync для хранилища
Зависание на 5 версии.
Видимо переполнение потока вывода т.к. выполнении тоже команды в консоле не приводит к зависанию

@artbear
Copy link
Owner

artbear commented Jan 15, 2017

Почему здесь ишуз заведен, а не в репо гитсинка?
Лог гитсинк приложи, плиз.

@khorevaa
Copy link
Collaborator Author

khorevaa commented Jan 17, 2017

Так выполение гитсинк не причем.
В частности вызов через ЗапуститьПриложение работает отлично
Через создание комманды(через библиотеку) и запуск зависат.
Это рабочий код.

ПутьКБиблиотекеСкриптов = ПолучитьЗначениеСистемнойНастройки("lib.system");
        
    ПутьКGitSync = ОбъединитьПути(ПутьКБиблиотекеСкриптов, "gitsync","src","gitsync.os") ;
    
    КомандаЗапуска.ДобавитьПараметр(""""+ПутьКGitSync +"""");

	ПутьПриложения = "oscript " + ПутьКGitSync;    
    
	МассивПараметров = Новый Массив;
	МассивПараметров.Добавить(ПутьКХранилищю1С);
	МассивПараметров.Добавить(URLРепозитория);
	МассивПараметров.Добавить(ПутьКРабочейКопии);
	МассивПараметров.Добавить(СтрШаблон("-branch ""%1""", ИмяВетки));
	МассивПараметров.Добавить(СтрШаблон("-debug %1",  Отладка));
	//МассивПараметров.Добавить(СтрШаблон("-push-every-n-commits %1",  ОтправкаИзмененийКаждыеNКоммитов));
	//МассивПараметров.Добавить(СтрШаблон("-use-auto-tags %1",  АвтоматическаяУстановкаМеток));
	//МассивПараметров.Добавить(СтрШаблон("-tmp-dir %1",  ВременныйКаталог));
	
	СтрокаЗапуска = "";

	Для Каждого Параметр Из МассивПараметров Цикл
        
        СтрокаЗапуска = СтрокаЗапуска + " " + Параметр;
            
    КонецЦикла;

	
	  Если ЭтоWindows = Ложь Тогда 
        СтрокаЗапуска = "sh -c '" + ПутьПриложения + СтрокаЗапуска + "'";
    Иначе
        СтрокаЗапуска = ПутьПриложения + СтрокаЗапуска;
    КонецЕсли;
	
	Лог.Отладка(СтрокаЗапуска);
	
	РезультатВыполнения = 1;

	ЗапуститьПриложение(СтрокаЗапуска, ПутьКРабочейКопии, Истина, РезультатВыполнения);
    
	Возврат РезультатВыполнения;

@khorevaa
Copy link
Collaborator Author

khorevaa commented Jan 17, 2017

Вот это не работает

КомандаЗапуска = Новый Команда;
	КомандаЗапуска.УстановитьКоманду("oscript");
	ПутьКБиблиотекеСкриптов = ПолучитьЗначениеСистемнойНастройки("lib.system");
	ПутьКGitSync = ОбъединитьПути(ПутьКБиблиотекеСкриптов, "gitsync","src","gitsync.os") ;
	КомандаЗапуска.ДобавитьПараметр(ПутьКGitSync);

	КомандаЗапуска.ДобавитьПараметр(ПутьКХранилищю1С);
	КомандаЗапуска.ДобавитьПараметр(URLРепозитория);
	КомандаЗапуска.ДобавитьПараметр(ПутьКРабочейКопии);
	
	КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-branch %1", ИмяВетки));
	КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-debug %1",  Отладка));
	КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-v8version %1", ВерсияПлатформы));
	КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-email can" ));
	//КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-tmp-dir %1", ВременныйКаталог));
	//КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-useautotags %1", АвтоматическаяУстановкаМеток));
	//КомандаЗапуска.ДобавитьПараметр(СтрШаблон("-push-every-n-commits %1", ОтправкаИзмененийКаждыеNКоммитов));
	РезультатВыполнения = КомандаЗапуска.Исполнить();
	
	Сообщить("Вывод команды выполнения Gitsync: " + КомандаЗапуска.ПолучитьВывод());
	Возврат РезультатВыполнения;

@nixel2007
Copy link
Collaborator

ты уверен что оно именно зависает? Сейчас 1commands накапливает в себе вывод, а потом выводит его через единое сообщить().

@khorevaa
Copy link
Collaborator Author

Да 99% зависает. Ждал около 2-х часов ...

@khorevaa
Copy link
Collaborator Author

хранилище маленькое 18 версий (изменения мелочевные) Через запуск приложения проходит за 1 минуту примерно

@artbear
Copy link
Owner

artbear commented Jan 17, 2017

PS @khorevaa Я поправил твой коммент #14 (comment)
Исправил расцветку кода.
Посмотри, плиз, на будущее, как оформлять куски 1С/Os кода

@nixel2007
Copy link
Collaborator

@artbear видимо, ты хотел пингануть не меня, а @khorevaa

@artbear
Copy link
Owner

artbear commented Jan 17, 2017

Ага, опечатался.

@artbear
Copy link
Owner

artbear commented Jan 17, 2017

@khorevaa Навскидку вижу разницу в 2х запусках.
Для вариант ЗапуститьПриложение - указан запуск в каталоге ПутьКРабочейКопии
+ЗапуститьПриложение(СтрокаЗапуска, ПутьКРабочейКопии, Истина, РезультатВыполнения);
А через команду нет подобного указания.

@khorevaa
Copy link
Collaborator Author

Значит кусок кода копировал не корректно! -) в общем вроде как все должно быть одинаково..

@khorevaa
Copy link
Collaborator Author

@artbear Спасибо за помощь по подсветке.. А то самого бесило.... Несколько раз пытался сделать корректно! теперь буду знать)

@artbear
Copy link
Owner

artbear commented Jan 18, 2017

@khorevaa Можешь привести 2 точных примера кода, один из которых зависает, а второй работает?

@artbear artbear modified the milestone: 0.8 Jan 25, 2017
@khorevaa
Copy link
Collaborator Author

Добрый день, прогнал еще раз указнные куски кода.. Они являются корректными с точки зрения зависания. Так же на ubuntu диагностировал спам от 1С следующего характара

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «pixmap»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «murrine»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «pixmap»,

(1cv8s:2474): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «pixmap»,

@khorevaa
Copy link
Collaborator Author

Видимо спам от 1С переполяет буфер потока вывода...

@artbear
Copy link
Owner

artbear commented Feb 7, 2017

Совместно с @ret-Phoenix исследовали проблему зависания.
Подтвердили, что баг с участием 1commands для гитсинка есть :(

Происходит зависание все-таки в момент показа множества сообщений при включенном режиме core.autocrlf=true

Но смогли найти вариант обхода :)

Нужно для репозиториев гит включать режим core.autocrlf=false !! Локально или глобально.

В этом случае git add не генерит кучу сообщений о неверных переводах строк и успешно выполняет свою работу.

@ret-Phoenix проблему своего зависания решил.

@khorevaa Сможешь у себя проверить такое решение?

Я получил сценарий точного срабатывания бага и буду пытаться его исправить.
@nixel2007 сможешь проверить гит-раннер для указанного сценария?

@nixel2007
Copy link
Collaborator

@artbear gitrunner не использует 1коммандс пока.
Какой именно сценарий нужно проверить? Саму способность работы и прохождение имеющихся тестов?

@artbear
Copy link
Owner

artbear commented Feb 8, 2017

@nixel2007 Нужно проверить поведение гитраннер "коммит и адд" через гитраннер в описанных условиях.

@khorevaa
Copy link
Collaborator Author

@artbear Конечно проверю с указанным условием. Но думаю не поможет т.к. конфигурация была минимальная для тестов т.к. 2 объекта всего. Я думаю тут больше проблема с буфером потока вывода.

@artbear
Copy link
Owner

artbear commented Feb 11, 2017

Реализовано поведение для обхода бага движка. #21

Конкретно по гитсинк - проблема актуальна только при включенном режиме git core.autocrlf=true
Без этого режима гитсинк работает правильно.

Задачу закрываю.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants