mhoeher / opentodolist

A simple Todo and task management application - Mirror of https://gitlab.com/rpdev/opentodolist
https://opentodolist.rpdev.net
GNU General Public License v3.0
168 stars 13 forks source link

i965: Failed to submit batchbuffer: No space left on device #20

Closed gerroon closed 4 years ago

gerroon commented 4 years ago

Debian Testing Fluxbox, using the latest .appimage

It locks the device for sometime then crashes.

OpenTodoList.Translator: Successfully loaded translation for UI languages ("en-US")
qml: Loaded font Font Awesome 5 Free
qml: Loaded font Font Awesome 5 Free Solid
qml: Loaded font Font Awesome 5 Brands
OpenTodoList.Application: Loading libraries...
System ABI: "x86_64-little_endian-lp64"
Build CPU Architecture: "x86_64"
Current CPU Architecture: "x86_64"
Kernel Type: "linux"
Kernel Version: "5.3.0-3-amd64"
Product Name: "Debian GNU/Linux bullseye/sid"
OpenSSL version Qt was built against: "OpenSSL 1.1.1b  26 Feb 2019"
OpenSSL version loaded: "OpenSSL 1.1.1d  10 Sep 2019"
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
i965: Failed to submit batchbuffer: No space left on device
QObject::~QObject: Timers cannot be stopped from another thread
QObject::~QObject: Timers cannot be stopped from another thread

[1]+  Exit 1                  ./OpenTodoList-x86_64.AppImage
gerroon commented 4 years ago

I was able to install and run the snap version however , it crashed when I tried to resize the window. Now that has the same issue I reported above.

Here is how it crashed when I tried to resize byu dragging from the corners.

QOpenGLFramebufferObject: Framebuffer incomplete attachment.                                                                                                              
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.                                                                                                     
QOpenGLFramebufferObject: Framebuffer incomplete attachment.                                                                                                              
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
OpenTodoList: ../src/mesa/drivers/dri/i965/intel_screen.c:735: intel_create_image_common: Assertion `ok' failed.
Aborted
mhoeher commented 4 years ago

Thanks for reporting this issue.

I just released a new version (3.18) - did you already use this one (note: Both the Flathub repository as well as Snapcraft.io are probably not yet up to date, but you should be able to download the most recent AppImage).

From the errors I would guess this is something about OpenGL on your system. Are you able to use other OpenGL apps (e.g. glxgears)? In the app, nothing fancy is done (it is a pretty standard Qt/QML application) so right now I have no clue what might cause these crashes :-(

gerroon commented 4 years ago

I can use glxgears fine no problem. I am able run opengl apps like Blender as well.

I already tested 3.18 appimage, the logs from the first post is from that version.

gerroon commented 4 years ago

Here is glxinfo

https://paste.debian.net/hidden/e6cf90a1/

gerroon commented 4 years ago

One anomoly thing I saw was that when I tried to reize the windows(from bottom right), it tried to resize pass beyond the screensize suddenly like in a glitchy fashion, this happened just when I start dragging.

I am guesssing that action creates a huge window? Maybe that explain the opengl buffer crashing.

I do not have this issue with any other app, though this is the only QT app I tried. And since then it crashes constantly.

mhoeher commented 4 years ago

Hm... if resizing (for some reason) creates - even temporarily - an abnormally huge window, this might very well explain the issues: As Qt uses OpenGL, this probably causes some graphic buffers to be allocated which won't fit into your available graphics RAM.

The issue is: I somehow feel innocent in this regard :o At least I am not aware about anything the app does which could cause such an issue.

What could be an issue is the following: Both Snap and AppImage rely on the app to be build in a somewhat "ancient" environment (the AppImage is build on Ubuntu Xenial, the Snap in Ubuntu Bionic). The resulting app binaries as well as dependencies are packaged and distributed. I could imagine that this might - especially on Debian Testing - trigger some issues due to some incompatibilities between e.g. the included quite old client libraries and the drivers and graphics stack available via the host environment. Ideally, running such "older" libraries on a more recent host works, but there is no guarantee.

Could you do me a favor and try the following:

gerroon commented 4 years ago

I think the screen was huge because I was not able to see the right hand side of the corners of the window at all. It was way pass beyond the screen.

This is clearly a QT issue but not sure how to fix.

I have qmlscene opne but but do not know where any .qml file is.

I probably wont be able to try another wm for a while since I need to install a new one and logout.

gerroon commented 4 years ago

Ok apperantly there were some in the systems. I opened it and resized it no problem.

I think this is about OTL using soem fancy drawings, if you can tell me how I cna disable that fancy borders etc, maybe that might fixt it.

See

https://i.imgur.com/gO8BvAY.png

qmlscene --verbose /opt/Qt5.7.0/Examples/Qt-5.7/quickcontrols/controls/basiclayouts/main.qml
Qt 5.12.5 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.2.1 20191008)
Vendor  : Intel Open Source Technology Center
Renderer: Mesa DRI Intel(R) Ivybridge Mobile 
Version : 3.0 Mesa 19.2.6
Language: 1.30
mhoeher commented 4 years ago

Hm... your Qt version is quite old (5.7). The one used by the app is 5.13.2 IIRC. Maybe the issue was introduced in some version after 5.7.

What you could also try is to use the Flatpak version of the app (it uses a slightly different runtime I think).

Last but not least: It should be relatively easy to build and install OpenTodoList locally. All you need is a (recent) Qt version (I guess 5.12 should be sufficient, maybe even some earlier versions could work). Basically, you could clone the app and then run the following in the app folder:

mkdir build
cd build
/path/to/qmake INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install

This should install the app to /usr/local. If such a build of the app would work, this could point to an issue with AppImage/Snap itself.

gerroon commented 4 years ago

My version is I think 5.12, it is just that I was using the test file from an older version.

I already used the Flatpak version, it has the exact same issue. I am pretty sure this is about that fancy borderless thing not working well with Fluxbox.

I will try to build it I guess.

mhoeher commented 4 years ago

Okay, good luck! I am quite curious about the outcome, to be honest :-o

gerroon commented 4 years ago

Not much success

make 
cd 3rdparty/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /tmp/opentodolist/3rdparty/3rdparty.pro INSTALL_PREFIX=/usr/local ) && make -f Makefile 
make[1]: Entering directory '/tmp/opentodolist/build/3rdparty'
cd qlmdb/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /tmp/opentodolist/3rdparty/qlmdb/qlmdb.pro INSTALL_PREFIX=/usr/local ) && make -f Makefile 
Cannot find file: /tmp/opentodolist/3rdparty/qlmdb/qlmdb.pro.
make[1]: *** [Makefile:47: sub-qlmdb-make_first] Error 2
make[1]: Leaving directory '/tmp/opentodolist/build/3rdparty'
make: *** [Makefile:100: sub-3rdparty-make_first] Error 2
gerroon commented 4 years ago

Ok passed that, appearantly qitlab was blocked here. Built it successfully, and installed it

OpenTodoList: error while loading shared libraries: libopentodolist-core.so.1: cannot open shared object file: No such file or directory

gerroon commented 4 years ago

I do not get it, they are installled

/usr/local/lib# ls -alh libopen*
-rw-r--r-- 1 root staff  547 Jan  4 16:43 libopentodolist-core.prl
lrwxrwxrwx 1 root staff   29 Jan  4 17:07 libopentodolist-core.so -> libopentodolist-core.so.1.0.0
lrwxrwxrwx 1 root staff   29 Jan  4 17:07 libopentodolist-core.so.1 -> libopentodolist-core.so.1.0.0
lrwxrwxrwx 1 root staff   29 Jan  4 17:07 libopentodolist-core.so.1.0 -> libopentodolist-core.so.1.0.0
-rwxr-xr-x 1 root staff 1.2M Jan  4 17:07 libopentodolist-core.so.1.0.0
file libopentodolist-core.so.1.0.0
libopentodolist-core.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=2f3feaa3f8000eae0e8a6333348d5ad98522a43b, stripped
mhoeher commented 4 years ago

The project uses git submodules, so you need to run git submodule update --init after a clone/pull to make sure everything is in place.Afterwards, building should work.On 4 Jan 2020 23:40, gerroon notifications@github.com wrote:Not much success make cd 3rdparty/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /tmp/opentodolist/3rdparty/3rdparty.pro INSTALL_PREFIX=/usr/local ) && make -f Makefile make[1]: Entering directory '/tmp/opentodolist/build/3rdparty' cd qlmdb/ && ( test -e Makefile || /usr/local/bin/qmake -o Makefile /tmp/opentodolist/3rdparty/qlmdb/qlmdb.pro INSTALL_PREFIX=/usr/local ) && make -f Makefile Cannot find file: /tmp/opentodolist/3rdparty/qlmdb/qlmdb.pro. make[1]: [Makefile:47: sub-qlmdb-make_first] Error 2 make[1]: Leaving directory '/tmp/opentodolist/build/3rdparty' make: [Makefile:100: sub-3rdparty-make_first] Error 2

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

mhoeher commented 4 years ago

Forget about the last comment, did not see your other updates (first noticed them on my mobile).

Maybe the path to the libraries (/usr/local/lib) is not in the library search path. You could try to run the following:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
/usr/local/bin/OpenTodoList

If the app still does not load, the output of

ldd /usr/local/bin/OpenTodoList
ldd /usr/local/lib/libopentodolist-core.so

would be interesting.

gerroon commented 4 years ago

Thanks that was helpful

I run the app but no window ius visible at all

OpenTodoList
OpenTodoList.Translator: "/home/USER/.config/RPdev/OpenTodoList.conf"
OpenTodoList.Translator: Successfully loaded translation for UI languages ("en-US")
QQmlApplicationEngine failed to load component
qrc:/main.qml:4 Type MainWindow unavailable
qrc:/Windows/MainWindow.qml:16 Type ApplicationWindow unavailable
qrc:/Components/ApplicationWindow.qml:-1 Type Colors unavailable
qrc:/Utils/Colors.qml:6 module "Qt.labs.settings" is not installed

System ABI: "x86_64-little_endian-lp64"
Build CPU Architecture: "x86_64"
Current CPU Architecture: "x86_64"
Kernel Type: "linux"
Kernel Version: "5.3.0-3-amd64"
Product Name: "Debian GNU/Linux bullseye/sid"
OpenSSL version Qt was built against: "OpenSSL 1.1.1d  10 Sep 2019"
OpenSSL version loaded: "OpenSSL 1.1.1d  10 Sep 2019"
mhoeher commented 4 years ago

Seems to be due to the Qt version: It is probably to old and does not provide version 1.1 of the settings module. However, I think you could try to run the following in the source directory:

find . -name \*.qml -exec sed -i -e 's/import Qt.labs.settings 1.1/import Qt.labs.settings 1.0/g' {} \;

Afterwards, just run make && sudo make install again.

gerroon commented 4 years ago

Hi

That did not help :(

OpenTodoList.Translator: "/home/USER/.config/RPdev/OpenTodoList.conf"
OpenTodoList.Translator: Successfully loaded translation for UI languages ("en-US")
QQmlApplicationEngine failed to load component
qrc:/main.qml:4 Type MainWindow unavailable
qrc:/Windows/MainWindow.qml:16 Type ApplicationWindow unavailable
qrc:/Components/ApplicationWindow.qml:-1 Type Colors unavailable
qrc:/Utils/Colors.qml:6 module "Qt.labs.settings" is not installed

System ABI: "x86_64-little_endian-lp64"
Build CPU Architecture: "x86_64"
Current CPU Architecture: "x86_64"
Kernel Type: "linux"
Kernel Version: "5.3.0-3-amd64"
Product Name: "Debian GNU/Linux bullseye/sid"
OpenSSL version Qt was built against: "OpenSSL 1.1.1d  10 Sep 2019"
OpenSSL version loaded: "OpenSSL 1.1.1d  10 Sep 2019"
mhoeher commented 4 years ago

Is the Qt version you use complete? I assume you built against the system Qt (unless you set your PATH to point to another Qt installation's qmake or you used an absolute path to such a qmake executable).

In this case, make sure all the Qt packages are installed - in particular, if I interpret this correctly, you need to explicitly install the package qml-module-qt-labs-settings on Debian.

gerroon commented 4 years ago

Thanks that was it. I compiled and ran it but stil same issue. Please see the screenshot, as you see the window title bar that is flattened and passes beyond the screen space, after I tried to resize it.

https://i.imgur.com/z5MkrXB.png

However if I maximize the window, I can use it. I guess building it localy was progress, since at least during that resizeing it does not crash anymore.

mhoeher commented 4 years ago

From this forum post I would conclude that the errors could really be caused by you running out of (V)RAM, which in turn could well be due to an abnormally huge window size.

What you could try is to manually reset the window size. When you run the app "un-sandboxed" (i.e. the version you built on your own), first close the app. Then you can edit the file $HOME/.config/RPdev/OpenTodoList.ini and remove the width and height parameters from the ApplicationSettings section:

[ApplicationSettings]
# Remove these two lines from the config:
height=362
width=627

Afterwards, start the app again.

If the problem still persists, I would really check your Window manager. By default, the app starts up with a default width and height (IIRC 800x600 pixels). If it comes up with that strange width, something "outside" must force it - my first suspect would be the Window Manager.

mhoeher commented 4 years ago

Closing this issue for now. I think there is little that can be done on the side of the app.

If the issue still occurs (and is not reproducible with other apps), feel free to reopen ;-)