minecraft-linux / mcpelauncher-ui-manifest

Manifest for the Qt launcher part, which lets you download and manage Minecraft versions and can assist in troubleshooting.
https://minecraft-linux.github.io
26 stars 8 forks source link

Editing/creating profile causes launcher crash #62

Closed PhobosAnomaly14 closed 8 months ago

PhobosAnomaly14 commented 9 months ago

Describe the bug: The launcher crashes when attempting to edit the default profile or create a new one.

Terminal output:

[richie@Richie-Nobara ~]$ mcpelauncher-ui-qt -v
qrc:/qml/main.qml:248:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/qml/main.qml:234:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/qml/main.qml:225:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/qml/GameLogWindow.qml:153:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/qml/LauncherSettingsAbout.qml:52:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qrc:/qml/LauncherBase.qml:214:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
Loading gamepad mappings: /usr/share/mcpelauncher/gamecontrollerdb.txt
Loading gamepad mappings: /usr/share/mcpelauncher/gamecontrollerdb.txt
qrc:/qml/LauncherBase.qml:214:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
qt.gui.icc: fromIccProfile: failed minimal tag size sanity
Segmentation fault (core dumped)
[richie@Richie-Nobara ~]$ 

Extra info:

REmerald commented 8 months ago

@ChristopherHX The exact thing (#50) happend again, I haven't played bedrock for a long time, so I'm not sure what caused it; the only thing I can think of is qt6-base update yesterday [2023-12-28T01:18:14+0300] [ALPM] upgraded qt6-base (6.6.1-2 -> 6.6.1-3). Logs: mcpelauncher-ui-qt-v-d.txt gdb-mcpelauncher-ui-qt.txt

REmerald commented 8 months ago

More logs: valgrind-definite_indirect_possible-mcpelauncher-ui-qt.txt (valgrind --show-leak-kinds=definite,indirect,possible, 16074 lines) valgrind-all-mcpelauncher-ui-qt.txt.gz (valgrind --show-leak-kinds=all, 414613 lines, 36MiB)

ChristopherHX commented 8 months ago

@REmerald If you want to help please try to get the qml stacktrace https://doc.qt.io/qtcreator/creator-stack-view.html#loading-qml-stack

REmerald commented 8 months ago

@ChristopherHX I not a C++ or Qt dev, so I'm not sure what exactly I'm supposed to do.

I installed Qt Creator, and tried to debug /usr/bin/mcpelauncher-ui-qt here, but it's basically the wrapper for gdb. Right Click -> Load QML Stack doesn't do anything. image

ChristopherHX commented 8 months ago

/usr/bin/mcpelauncher-ui-qt probably doesn't have debug information, the binaries I provide doesn't have them.

-DCMAKE_BUILD_TYPE=Debug when you would compile this locally could help.

I'm not shure that you would want to go that far. (qt6 branch)

To be honest I backed up all folders of mcpelauncher to reclaim the space, some months ago. So I currently don't have a dev setup for mcpelauncher to debug anything.

Using an old linux distro preserves me from seeing strage qt bugs

REmerald commented 8 months ago

@ChristopherHX I modified the flag in the PKGBUILD of the AUR package, but now it doesn't build:

[ 46%] Linking CXX executable gplaydl
/usr/bin/ld: CMakeFiles/gplaydl.dir/src/gplaydl.cpp.o: undefined reference to symbol '_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc'
/usr/bin/ld: /usr/lib/libabsl_log_internal_check_op.so.2308.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [google-play-api/CMakeFiles/gplaydl.dir/build.make:133: google-play-api/gplaydl] Error 1
make[1]: *** [CMakeFiles/Makefile2:483: google-play-api/CMakeFiles/gplaydl.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

I have no idea what it needs.

It built successfully with the default value of the -DCMAKE_BUILD_TYPE.

UPD: Related to this issue?

ChristopherHX commented 8 months ago

I have no idea what it needs

Me too. archlinux moment, this error is non existent in ubuntu 22.04.

You could compile protobuf manually in debug mode and link to it.

Under windows c++ are debug and release protobuf not compatible

ChristopherHX commented 8 months ago

On archlinux, the AUR should actually statically link protobuf anyway

There are a couple of bug reports claiming a protobuf version mismatch is the fault of this app

Tony3339 commented 8 months ago

U need to reinput the qml code it should be 55:5

On Thursday, December 7, 2023, Richie @.***> wrote:

Describe the bug: The launcher crashes when attempting to edit the default profile or create a new one.

Terminal output:

@. ~]$ mcpelauncher-ui-qt -v qrc:/qml/main.qml:248:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qrc:/qml/main.qml:234:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qrc:/qml/main.qml:225:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qrc:/qml/GameLogWindow.qml:153:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qrc:/qml/LauncherSettingsAbout.qml:52:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qrc:/qml/LauncherBase.qml:214:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } Loading gamepad mappings: /usr/share/mcpelauncher/gamecontrollerdb.txt Loading gamepad mappings: /usr/share/mcpelauncher/gamecontrollerdb.txt qrc:/qml/LauncherBase.qml:214:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity qt.gui.icc: fromIccProfile: failed minimal tag size sanity Segmentation fault (core dumped) @. ~]$

Extra info:

  • OS: Nobara Linux 38
  • Kernel: 6.6.4-201.fsync.fc38.x86_64
  • Launcher version: 0.12.1.6896419289.1 (build 6896419289)
  • Installation method: Fedora repo

— Reply to this email directly, view it on GitHub https://github.com/minecraft-linux/mcpelauncher-ui-manifest/issues/62, or unsubscribe https://github.com/notifications/unsubscribe-auth/APMNQZLZQACMHZTY4TNYQGTYIJT4PAVCNFSM6AAAAABAL6IV6SVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAZTCNZXG4YTQOI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

REmerald commented 8 months ago

@ChristopherHX I successfully built the protobuf library that has the symbol, but I can't figure out how to properly link it, it always gives me the same error no matter what I try. I'm new to cmake, so maybe I'm doing something wrong?

[remorin@chuwawa:0 mcpelauncher-ui-git]$ strings /home/remorin/Downloads/protobuf/pkg/protobuf/usr/lib/libprotobufd.so.25.1.0 | grep '_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc'
_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc
[remorin@chuwawa:0 mcpelauncher-ui-git]$
ChristopherHX commented 8 months ago

@REmerald These cmake options could help you

https://github.com/minecraft-linux/mcpelauncher-updates/blob/main/.github/workflows/cmake.yml

"-DProtobuf_SRC_ROOT_FOLDER=${{github.workspace}}/protobuf/src" "-DProtobuf_INCLUDE_DIR=${{github.workspace}}/protobuf/src" "-DProtobuf_PROTOC_EXECUTABLE=${{github.workspace}}/buildprotobufhost/protoc" "-DProtobuf_LIBRARY=${{github.workspace}}/buildprotobuf/libprotobuf.a"

Also change the paths to match your system

These are from android cross compiling

Maybe compile protobuf statically, like I have done it.

ChristopherHX commented 8 months ago

I have restored my project, I can confirm the crash using qt6.7.0

Setting the currentIndex of the versions combobox in setProfile seem to cause a crash.

QtCreator doesn't provide me any qml stacktrace once the app dies.

ChristopherHX commented 8 months ago

Fixed https://github.com/minecraft-linux/mcpelauncher-ui-qt/commit/d1d9c20c8f87bc0898d59599b25d1fee9f9bdbb8

Deployment in the next update