Логи с Макса.

alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Логи с Макса.

Сообщение alexinc »

Есть вопрос к разработчикам: а как запрашиваются логи с макса? А афанасии в блоке тасков есть output - по идее туда сбрасываются логи. У меня при запуске 3dsmaxcmd логи не идут. Вопрос: не может ли это быть связанно с тем, что я пробрасываю задание через интернет?
Точнее - Retrieving running task output from render... и все - больше запросов нет. Все остальные машины - они находятся в локальной сети, включая виндовые с cinema4d отдают логи нормально.
Версия 2.2.3 (Render -Windows, Сервер - lInux deb). Просмотр - через web-afanasy. Причет при запросе номера Output - веб-сервер подвисает почти наглухо. Если нужно, могу подкинуть файлы, которые он пытается открыть (я их нашел в системе). Там очень странная кодировка
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Логи с Макса.

Сообщение Timur »

Логи никак не запрашиваются.
Макс или любой другой софт\команда - не важно.
Команда (дочерний процесс) запускаются афрендером с редиректом stdout и stderr в pipe, содержимое которого каждую секунду сохраняется в памяти афрендера.
После завершения процесса, афрендер отправляет весь аутпут серверу. Тот его сохраняет в файл.
При запросе аутпута из гуёв, если таск выполнился, сервер посылает содержимое файла с его аутпутом. Если таск выполняется, сервер запрашивает текущий аутпут у рендера.
Такого понятия как "кодировка" в тут нету. Что вышло то и сохраняется, то и отправляется.
Винда+макс всегда страдает чертовщиной в аутпуте, не используйте везде только ascii, и ENG винду.
То, что афрендер находится "далеко" может повлиять на этот процесс. Например, если айтпут очень большой, он будет его долго пересылать.
А так по идее, всё равно где находится афрендер.
Но может тут ещё какой баг зарылся, надо тестить.
Может действительно отображение странной кодировки вводит браузер в ступор.
Тогда надо узнать зависит ли это только от кодировки.
Может все нелокальные винды русские? Или китайские?
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Логи с Макса.

Сообщение alexinc »

Нелокальные винды - русские. Будем менять их. Посмотрим.
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Логи с Макса.

Сообщение alexinc »

Нет, от английской винды не зависит.
Все одно.
Параметры: Windows 7 64 - bit, Max 2016 64 -bit, CGRU - 2.2.3
В файле вместо пробелов и точек символы:
COMPUTERNAME=W-RENDER2
0^@9^@.^@0^@1^@.^@2^@0^@1^@8^@ ^@1^@5^@:^@4^@4^@:^@1^@2^@;^@ ^@ ^@P^@a^@r^@s^@i$
^@
И как с этим бороться - не ясно.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Логи с Макса.

Сообщение Timur »

А что там написано?
Что если команду просто в cmd.exe запустить на том же компе и от того же пользователя?
Даю 90% что это

Код: Выделить всё

"command" is not recognized as an internal or external command, operable program or batch file.
И если это так, то даю 90% что это из-за какого-нибудь пробела не в кавычках ))
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Логи с Макса.

Сообщение alexinc »

Если присмотреться :) и удалить все эти ^@, то можно увидеть лог:
09.01.2018 15:44:12; Parsi
В cmd оно съедается, в просмотре в линуксе - просто пробелы, а в редактировании - в nano - вот такая кракозябра.
Причем, если взять и каким-нибудь Notepad++ насильно приобразовать в ANSI и обратно подсунуть серверу афанасия -то все будет отлично открываться.
Теперь осталось догадаться откуда ноги растут: От операционки, От 3dsmax, от компонента .Net, который макс поставил... или еще откуда
И судя по всему - python эти самые пробелы и не нравятся. Как-то он их не так видит.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Логи с Макса.

Сообщение Timur »

Попробуйте поковыряться тут:
https://github.com/CGRU/cgru/blob/maste ... er.py#L135
https://github.com/CGRU/cgru/blob/maste ... max.py#L21
https://github.com/CGRU/cgru/blob/maste ... ls.py#L385
Может если там "странная" кодировка, то эти ф-ии не работают.
Попробуйте там просто коментить код, что будет если в питоне вообще ничего не делать.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Логи с Макса.

Сообщение alexinc »

Спасибо, посмотрим. Только сначала попробуем определить - в чем же отдается файл. Уникод это или что.
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Логи с Макса.

Сообщение alexinc »

В общем, я так и не понял - что это за логи, в какой кодировке.
Может кто подскажет?
https://yadi.sk/i/uQBFNqkT3RfPW2
(В сообщение не смог вставить - говорит - неверное расширение.)
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Логи с Макса.

Сообщение paulwinex »

У меня аналогичная ерунда.
Windows 10 x64 ENG + CGRU 2.2.3
Запускается макс командой 3dsmaxcmd, которая на фоне использует backburner. Но формирует команду и запускает её python командой os.system или subprocess.call.
Если команду стартовать в терминале из кипера то аутпут на месте, если в афанасии, то в аутпуте только то то что было в скриптах до запуска основного python-файла и потом просто "0". Потом тишина.
В документации написано что макс использует формат UTF-8 BOM или UTF-16 BOM, но получается считать через ASCII
https://help.autodesk.com/view/3DSMAX/2 ... 8E89F5_htm

По коду вот что добавил
В этом файле
https://github.com/CGRU/cgru/blob/maste ... max.py#L28

Код: Выделить всё

import chardet
print(chardet.detect(data.encode('ascii')))
print(data.encode('ascii'))
Вывод такой примерно

Код: Выделить всё

{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
0 6 - M a y - 1 8   1 3 : 3 3 : 2 2 ;     E N D   F R A M E   0 ;   T A S K   1   O F   1 ;   ( C : \ U s e r s \ p a u l \ D e s k t o p \ r e n d e r 0 0 0   . p n g ) ;   0 . 0 9 4 s ;   2 4   f a c e s ;   M E M   7 1 5   M B ;
 0 6 - M a y - 1 8   1 3 : 3 3 : 2 2 ;     F r a m e   0   c o m p l e t e d ;   E l a p s e d   t i m e   0 0 : 0 0 : 0 1
 0 6 - M a y - 1 8   1 3 : 3 3 : 2 2 ;     J o b   C o m p l e t e   -   R e s u l t s   i n   C : \ U s e r s \ p a u l \ D e s k t o p \
 0 6 - M a y - 1 8   1 3 : 3 3 : 2 2 ;     S e n d   E n d   o f   J o b   c o m m a n d   t o   M a x
В результате текст читается почти верно, кроме лишних пробелов между всеми символами, но только тот аутпут который макс прсилал. То что пишет сприкт питона то без пробелов. В гугле пишут что это нулевые байты.
Что с этим делать далее я не нашел, нужно както это конвертнуть в utf-8.
Может у вас получится? Или может вопрос уже както иначе решили?

ps Пришлось на питон в cgru поставить модуль chardet
Последний раз редактировалось paulwinex Пн май 07, 2018 3:06 pm, всего редактировалось 1 раз.
Ответить