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

Comments

@khorevaa
Copy link
Collaborator

commented Jan 15, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Jan 15, 2017

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

@artbear artbear added the question label Jan 16, 2017

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

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

This comment has been minimized.

Copy link
Collaborator Author

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

This comment has been minimized.

Copy link
Collaborator

commented Jan 17, 2017

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

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 17, 2017

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

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 17, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Jan 17, 2017

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

@nixel2007

This comment has been minimized.

Copy link
Collaborator

commented Jan 17, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Jan 17, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Jan 17, 2017

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

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 17, 2017

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

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 17, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Jan 18, 2017

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

@artbear artbear modified the milestone: 0.8 Jan 25, 2017

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 26, 2017

Добрый день, прогнал еще раз указнные куски кода.. Они являются корректными с точки зрения зависания. Так же на 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

This comment has been minimized.

Copy link
Collaborator Author

commented Jan 26, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Feb 7, 2017

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

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

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

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

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

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

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

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

@nixel2007

This comment has been minimized.

Copy link
Collaborator

commented Feb 7, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Feb 8, 2017

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

@khorevaa

This comment has been minimized.

Copy link
Collaborator Author

commented Feb 10, 2017

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

@artbear

This comment has been minimized.

Copy link
Owner

commented Feb 11, 2017

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

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

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

@artbear artbear closed this Feb 11, 2017

@artbear artbear modified the milestones: 0.8, 0.9 Feb 11, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.