2shady4u / godot-sqlite

GDExtension wrapper for SQLite (Godot 4.x+)
MIT License
895 stars 79 forks source link

Crash with beta 17 #127

Closed git2013vb closed 1 year ago

git2013vb commented 1 year ago

Environment: Debian 11 Godot 4 beta 17

Issue description: with beta 17 godot won't start

Steps to reproduce: try to open it with godot beta 17

Minimal reproduction project: I have but is just an empty project with the addon copied from a beta 16 project TestBeta17.zip

2shady4u commented 1 year ago

Hi @git2013vb

This is most likely because the godot-cpp submodule has to be updated to the Beta 17 commit (f2b97528c1369a6c40f3749817d00e4633afc43e)

2shady4u commented 1 year ago

@git2013vb I've updated the godot-cpp submodule to the Godot 4.0 beta 18 commit and the new binaries should be available in the Actions-tab

git2013vb commented 1 year ago

Thanks :) It work like a charm :)

git2013vb commented 1 year ago

@2shady4u I tried to update it to rc1 following these steps:

and this is the crash:

(base) vale@debianace:~/godotdev/forks/plugins/godot-sqlite/demo$ /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64  -e
ERROR: Index p_type_b = 3568229248 is out of bounds (Variant::VARIANT_MAX = 38).
   at: get_ptr_operator_evaluator (core/variant/variant_op.cpp:1055)
ERROR: Index p_type_b = 3568229344 is out of bounds (Variant::VARIANT_MAX = 38).
   at: get_ptr_operator_evaluator (core/variant/variant_op.cpp:1055)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.rc1.official (8843d9ad347e5c3be5130153aeecdf48e4fe5a14)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x38d60) [0x7f73d4956d60] (??:0)
[2] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x451a8fa] (??:0)
[3] godot::StringName::init_bindings() (??:0)
[4] godot::Variant::init_bindings() (??:0)
[5] godot::GDExtensionBinding::init(GDExtensionInterface const*, void*, GDExtensionInitialization*) (??:0)
[6] /home/vale/godotdev/forks/plugins/godot-sqlite/demo/addons/godot-sqlite/bin/libgdsqlite.linux.template_debug.x86_64.so(sqlite_library_init+0x49) [0x7f73cfa051d9] (??:0)
[7] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x4543bf1] (??:0)
[8] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x459db94] (??:0)
[9] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x42ee235] (??:0)
[10] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x42ee867] (??:0)
[11] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x43079bf] (??:0)
[12] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0x455c3e6] (??:0)
[13] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0xdf3181] (??:0)
[14] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f73d4941d0a] (??:0)
[15] /home/vale/Downloads/godot_normal/Godot_v4.0-rc1_linux.x86_64() [0xe1234e] (??:0)
-- END OF BACKTRACE --
================================================================
Aborted
(base) vale@debianace:~/godotdev/forks/plugins/godot-sqlite/demo$ 

What I'm missing? I'm not an expert but I would like to be able to compile it by myself instead to ask each time a new godot version come out the it have to be compiled :)

Thanks.

2shady4u commented 1 year ago

Hi @git2013vb

I don't see anything wrong with your method so I'm not really sure what went wrong here 😕 Did you update the godot-cpp submodule to the correct commit? (516fad14e45d341211121832bb3daa172aebd6e1)

Meanwhile, I've updated the main repository to Godot 4.0 rc 1 😄 You can always download the new binaries in the Actions tab on this page.

git2013vb commented 1 year ago

I didn't see that commit in my local. So I suppose I have to check if the commit is the right one. How I can do that? How you know if is the right commit? Is the latest one in general?

Its possible when I do git submodule update --init I download your submodule (that was not updated)?

Thanks btw.

2shady4u commented 1 year ago

Let's assume this is the current situation:

image

Basically you have to find the commit with the message "Sync with upstream commit ### (4.0-rc1)". In the case above, I'm not using the correct commit; as a result I have to do the following:

image

So I first pull from the remote master branch, then I locate the commit hash of the sync commit of Godot 4.0 rc1. And as a last step I checkout that commit.

git2013vb commented 1 year ago

Ok. But we I was talking the instruction that are in the readme file. what you posted now is another path to resolve the problem.

2shady4u commented 1 year ago

I didn't see that commit in my local. So I suppose I have to check if the commit is the right one. How I can do that? How you know if is the right commit? Is the latest one in general?

Its possible when I do git submodule update --init I download your submodule (that was not updated)?

Thanks btw.

Yes, simply initializing and/or updating the submodule will use the commit for godot-cpp that is stored in the repository. In this case that would be the commit that coincides with Godot 4.0 Beta 17 and NOT the latest commit of godot-cpp itself.

2shady4u commented 1 year ago

Ok. But we I was talking the instruction that are in the readme file. what you posted now is another path to resolve the problem.

The instructions in the README.md are supposed to be used in cases where the godot-cpp submodule doesn't need to be updated.

git2013vb commented 1 year ago

I didn't see that commit in my local. So I suppose I have to check if the commit is the right one. How I can do that? How you know if is the right commit? Is the latest one in general? Its possible when I do git submodule update --init I download your submodule (that was not updated)? Thanks btw.

Yes, simply initializing and/or updating the submodule will use the commit for godot-cpp that is stored in the repository. In this case that would be the commit that coincides with Godot 4.0 Beta 17 and NOT the latest commit of godot-cpp itself.

OK now is clear :). So I have to get godot-cpp from the source if I want it to work :) thanks again

The instructions in the README.md are supposed to be used in cases where the godot-cpp submodule doesn't need to be updated.

Got it :)