[НЕ РЕШЕНО] Unity3D "Gtk-CRITICAL" GTK_IS_CONTAINER GTK_IS_WIDGET

Привет всем.
Я уже не знаю, что делать. Я ломаю голову уже третий день.
Мне нравится Arch, но я пока новичок в нем, и многих банальностей могу не знать.

Я хочу запустить Unity на Arch.
Unityhub и сам Unity установлены - никаких проблем при установке, не было.
Но при запуске готового проекта или при создании нового, происходит сбой Unity.
После сбоя появляется сообщение об отправке отчета об ошибке разработчикам.
Бывают редкие ситуации, когда проект запущен, и кажется, что в нем можно работать. Но как только я тяну вкладку "scene" или любую другую вкладку, unity снова крашится, и проект больше не запускается.

Ранее на этом оборудовании (только на системе Linux Mint Cinnamon) unity запускался и работал без проблем. Так что проблема не в оборудовании.
unityhub установлен отсюда
pacman -Qi unityhub: тык
Unity был загружен через unityhub. Сейчас стоит версия 2019.4.34f1 LTS
Используемое окружение: Xfce 4

Что я пытался сделать?
1) Устанавливал этот пакет. Это не помогло.
2) Устанавливал другие версии Unity. 2020.3.25f1(LTS) и 2021.2.8f1. Это не помогло. Ошибки одни и те же
3) Устанавливал другие версии unityhub. Также, не помогло.
4) Я нашел похожую проблему здесь (пункт "Unity crashes when trying to load project" там где "GTK_IM_MODULE")
Но, перейдя по ссылке, я так и не понял, как воспользоваться этим решением(

Логи: Editor.log
тык
Во первых, если испольуешь приложения из AUR или сторонние приложения, то делаешь это на свой страх и риск … и с большой степенью вероятности готовься к возможным проблемам. И если выбрал это путь, то готовься и к решению этих проблем, что требует и знаний по решению возникших проблем.

ANNAKIN
4) Я нашел похожую проблему здесь (пункт "Unity crashes when trying to load project" там где "GTK_IM_MODULE")
Но, перейдя по ссылке, я так и не понял, как воспользоваться этим решением(
Есть такой факт, как пишут
Unity падает при попытке загрузить проект - отключение GTK_IM_MODULE предотвращет сбой
Но уверен, что причина в задействовании GTK_IM_MODULE? - если причина в них, то в логах должна быть ругань на эти модули.
И не плохо для начала проверить, а задействованы ли эти модули? - можно просто посмотреть вывод env | grep -i gtk, но может и не показать, тогда смотреть где они прописаны в конфигах.

А вообще обычно советую получить как можно больше информации о проблеме.
В данном случае можно попробовать и режим отладки: или просто логи G_MESSAGES_DEBUG=all или с отладкой GTK_DEBUG=all, что не так уж и просто и если никогда не использовал, то и не рекомендую
PS - хотя возможно и не прав в части отладочных логов, так как не совсем понимаю, что запускаешь ... имел ввиду обычное приложение, а в твоем случае это скорее всего и не приложение ...
Ошибки не исчезают с опытом - они просто умнеют
В тех случаях когда проект запускается, в логах всё равно пишет
Gtk-CRITICAL **: 18:38:59.639: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed
Это значит, не в этом проблема. Во всяком случае, это не основная проблема

А вот когда я тяну вкладку, то в логах появляются строки новые строки (с 690 до 718).
Возможно краш происходит из-за строки 690.
[0104/184211:ERROR:browser_main_loop.cc(207)] Gtk: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed

А используя вашу подсказку
vasek
или с отладкой GTK_DEBUG=all,
Получилось найти этот параметр, на который ругается строка 690
Вот скрин

Его, как видно, нельзя изменить. Предполагаю, из-за того что он заблокирован, Unity крашится.
Вопрос: как его изменить, чтобы проверить?
ANNAKIN
Его, как видно, нельзя изменить. Предполагаю, из-за того что он заблокирован, Unity крашится.
Не факт что из за этого крашится.

Для gtk3 https://wiki.archlinux.org/title/HiDPI#GDK_3_(GTK_3)
В gtk2 не поддерживается, хаб у вас на гтк2, влияет ли это не знаю но можете попробовать поставить новую версию хаба на ттретьем https://github.com/hunabku94/unityhub/blob/main/PKGBUILD
ANNAKIN
Я нашел похожую проблему здесь (пункт "Unity crashes when trying to load project" там где "GTK_IM_MODULE")
Но, перейдя по ссылке, я так и не понял, как воспользоваться этим решением(

проверить переменные
env |grep GTK

удалить если прописана переменная
смотрите
https://wiki.archlinux.org/title/IBus#Integration
https://wiki.archlinux.org/title/Environment_variables
vs220
проверить переменные

env |grep GTK
Выводит :

GTK_IM_MODULE=none
GTK_IS_CONTAINER=none
GTK_IS_WIDGET=none
GTK_MODULES=canberra-gtk-module:canberra-gtk-module
GTK3_MODULES=xapp-gtk3-module:xapp-gtk3-module
где,
GTK_IM_MODULE,
GTK_IS_CONTAINER,
GTK_IS_WIDGET - это уже мои эксперименты. Их там не было.
При различных вариациях, где я что-то отключаю, а что-то включаю, или где всё отключаю - не даёт никакого эффекта.

А зачем ibus?
vs220
https://wiki.archlinux.org/title/IBus#Integration
У меня раскладка и так отлично работает без ibus.

Предположил, если проблема глобальная, то скорее всего эта ошибка появится в других приложениях.
Немного погуглив, увидел похожую проблему, связанную с использованием виджетов в PyQt.
Накидал из примеров простенький скрипт на Python, чтобы проверить.
Никаких ошибок. Делал и другие скрипты, но результат - отрицательный.
Значит проблема не глобальная, хотя это только косвенный признак. Надо проверить чем-нибудь дополнительно.

vs220
Для gtk3 https://wiki.archlinux.org/title/HiDPI#GDK_3_(GTK_3)
В gtk2 не поддерживается, хаб у вас на гтк2, влияет ли это не знаю но можете попробовать поставить новую версию хаба на ттретьем https://github.com/hunabku94/unityhub/blob/main/PKGBUILD
Я загружал ранее третью версию unityhub - не помогло. Ваш вариант попробую на днях, может поможет. Но у меня есть сомнения(

!!! Есть мысль. Есть ли способ отслеживать поэтапно куда приложение обращается?
Типо завернуть его в какую-нибудь оболочку, а она будет отслеживать запросы Unity (тот же дебаг в любой IDE).

!!! А может сменить окружение? не XFCE, а например Cinnamon или тот же MATE.
Стоит ли оно того?
Пару дней назад отправил ошибку разработчикам Unity.
Сегодня получил ответ
Hi,

Upon having an additional look at the stack trace we recognized the crash to be related to a known existing bug related to newer Mesa graphics driver versions (21.0.0 and above). More specifically, 21.2.1 in your case.

Updates to the issue can be seen on the following unity IssueTracker page:
https://issuetracker.unity3d.com/product/unity/issues/guid/1375312

Currently, our developers are still looking into fixing the issue. Thus at the moment, you have these options:
- Waiting for the fix to land;
- Switching to an OS that does not reproduce this issue (macOS and Windows);
- Installing a dedicated GPU on your system (not possible if you are using a laptop, unfortunately);
- Downgrading Mesa drivers to be older than version 21.0.0.

I am aware that none of these options are appealing or easy fixes and I personally want to say sorry that this situation has occurred. I hope this bug gets resolved quickly. Thank you for your patience.

Best wishes,
Darius
Customer QA Team
Судя этому сообщению, вероятным решением будет понижение версии Mesa. Я попробую на днях, и отпишу результат
.
.
ANNAKIN
!!! Есть мысль. Есть ли способ отслеживать поэтапно куда приложение обращается?
Типо завернуть его в какую-нибудь оболочку, а она будет отслеживать запросы Unity (тот же дебаг в любой IDE).
Походу, вот это называется трассировка стека. То что использовали разработчики, для выявлении проблемы
ANNAKIN
Есть ли способ отслеживать поэтапно куда приложение обращается?
strace, же
такие дела.
Ну что же.
Я попробовал понизить версию mesa .... если говорить мягко, то у меня не хватает терпения и опыта, чтобы это ковырять, и сделать по-человечески.
Поэтому, вариант с понижением версии mesa больше прорабатывать не буду.

Вчера, накатил виртуалку в virtualbox. А именно облегчённую ubunty 18.04. И на неё поставил unity. Все работает как часы, но с одним НО. 1 кадр в 5 секунд, на пустом проекте.
Поэтому, с моим железом, виртуалку не получится минимально комфортно использовать.

На днях попробую "изощрённые альтернативные способы" установки/запуска unity, но это к теме уже не относится.
Буду ждать пока разрабы выпустят баг-фикс.
 
Зарегистрироваться или войдите чтобы оставить сообщение.