jasp-stats / jasp-issues

This repository is solely meant for reporting of bugs, feature requests and other issues in JASP.
59 stars 29 forks source link

JASP freezes upon pressing "Browse" button. #466

Closed divanosport closed 4 years ago

divanosport commented 5 years ago

I am using Voidlinux, tested with kernels both 4.19 and 5.2. I installed jasp 0.10.2 with flatpak and also built it from source.

The problem is the same regardless of which of the two I use. When I want to open a file, and I use the 'Browse' button, JASP freezes and can't be interacted with anymore. I can only kill it manually.

Opening files from the Data Library works. OSF wasn't tested. Toggling 'Safe Graphics' on and off has no effect.

JorisGoosen commented 5 years ago

So you built JASP from source and there the browse button freezes JASP?

divanosport commented 5 years ago

I built it from source and also tested the flatpak version. Both the built and flatpak versions freeze after pressing the Browse button or one the 'recent folders'.

divanosport commented 5 years ago

By the way, the same happens with the "install module" dialog, with the result shown in the attached file. JASP becomes non interactable.

So it is possibly a problem with accessing files? What does JASP do when opening a file dialog?

2019-09-10-102404_1248x746_scrot

JorisGoosen commented 5 years ago

Well JASP uses the default filebrowsing dialog that is included with Qt. And it seems that this is broken on your computer for some reason...

Maybe you could try out a tiny Qt project to see if the filedialog works without all the whistles and bells of JASP?

JorisGoosen commented 5 years ago

The code we use to open these dialogs is basically:


QString MessageForwarder::browseOpenFile(QString caption, QString browsePath, QString filter)
{
    return  QFileDialog::getOpenFileName(nullptr, caption, browsePath, filter);
}

QString MessageForwarder::browseSaveFile(QString caption, QString browsePath, QString filter, QString * selectedFilter)
{
    return  QFileDialog::getSaveFileName(nullptr, caption, browsePath, filter, selectedFilter);
}

QString MessageForwarder::browseOpenFolder(QString caption, QString browsePath)
{
    return QFileDialog::getExistingDirectory(nullptr, caption, browsePath, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
}
divanosport commented 5 years ago

Well I use a lot of KDE apps which are developed in QT, and none are giving me this problem, so I wouldn't be too hasty in closing this issue as a personal problem. I also saw a chromeos user with the same problem.

I am not a developer but I can install an IDE and paste and run some code if it helps. Would the code that you pasted be enough?

JorisGoosen commented 5 years ago

Well, you built JASP using Qt Creator?

Because tomorrow I can make a little project for you that should compile and can help us figure out where the problem lies. Maybe it is in some interaction between QML and the system file browser.. Kind of hard to guess for me now.

If other KDE apps do work though (and they use this file browser) then that at least shows that Qt should be able to do it on your pc.

divanosport commented 5 years ago

I did, but the problem is the same with the flatpak version. And if I understand correctly, flatpak distributes its own libraries for the most part. However I will gladly compile and test the code that you send me.

JorisGoosen commented 5 years ago

Yeah you understood correctly, flatpak uses it's own distribution of Qt (and KDE).

That is why it is interesting (and annoying) that browsing also freezes when you compile it yourself...

JorisGoosen commented 5 years ago

So could you try FileBrowseTest.zip?

divanosport commented 5 years ago

I compiled it successfully without installing anything new, and all three buttons open a QT file dialog. I recall I didn't have this problem in the 0.9 series. I might downgrade with flatpak to see when the problem started, if it's possible. Or I can build and test earlier versions.

2019-09-11-113618_1366x768_scrot 2019-09-11-113628_1366x768_scrot 2019-09-11-113608_1366x768_scrot

JorisGoosen commented 5 years ago

Well, it is good but dissappointing to know that the problem is somewhere in JASP.

You could try to build https://github.com/jasp-stats/jasp-desktop/commit/ab3d52c8d8398135aa99062ee8ecb86a2b8ec942 (v0.10.0.0) because that is the first version where we switched to the new GUI.

In the meanwhile I will take a look as to what might be interfering with the browsing dialog in JASP on your system...

JorisGoosen commented 5 years ago

Ooh and by the way, if you run JASP and choose browse. What output do you get? (If you run from terminal for instance?)

And which desktop environment do you use? KDE? Gnome? Or some other GTK environment?

JorisGoosen commented 5 years ago

Aah and one more thing to try: If you choose "Browse" and JASP freezes: Does pressing Escape make JASP unfreeze?

divanosport commented 5 years ago

Hello! I have tested Jasp under KDE and awesomewm. Awesome is a minimal window manager and doesn't do much. The bug is the same under both environments.

When I open jasp a lot of warnings are spouted out:

'libGL error: MESA-LOADER: failed to retrieve device information libGL error: image driver extension not found libGL error: failed to load driver: radeon libGL error: failed to open drm device: File o directory non esistente libGL error: failed to load driver: radeonsi qrc:/components/JASP/Widgets/ComputeColumnWindow.qml:330:2: QML Dialog: Binding loop detected for property "implicitWidth" qrc:/components/JASP/Widgets/ComputeColumnWindow.qml:330:2: QML Dialog: Binding loop detected for property "implicitWidth" qrc:/components/JASP/Widgets/FilterWindow.qml:362:4: QML Dialog: Binding loop detected for property "implicitWidth" qrc:/components/JASP/Widgets/FilterWindow.qml:362:4: QML Dialog: Binding loop detected for property "implicitWidth" qrc:/components/JASP/Widgets/FilterWindow.qml:112:4: QML Dialog: Binding loop detected for property "implicitWidth" qrc:/components/JASP/Widgets/FilterWindow.qml:112:4: QML Dialog: Binding loop detected for property "implicitWidth" Property 'data'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickRootItem' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle 'mode', use qRegisterMetaType to register it. Don't know how to handle 'format', use qRegisterMetaType to register it. Don't know how to handle 'mirroring', use qRegisterMetaType to register it. Don't know how to handle '', use qRegisterMetaType to register it. Property 'data'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it. Property 'data'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'data'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'SplitView_QMLTYPE_177_QML_188' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it. Property 'data'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickItem' has no notify signal and is not constant, value updates in HTML will be broken! Property 'data'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Property 'gradient'' of object 'QQuickRectangle' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it. Property 'data'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Property 'userScripts'' of object 'QQuickWebEngineProfile' has no notify signal and is not constant, value updates in HTML will be broken! Property 'data'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickWebEngineHistory' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it. Property 'transports'' of object 'QQmlWebChannel' has no notify signal and is not constant, value updates in HTML will be broken! Property 'registeredObjects'' of object 'QQmlWebChannel' has no notify signal and is not constant, value updates in HTML will be broken! Property 'userScripts'' of object 'QQuickWebEngineView' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it. Property 'data'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Property 'resources'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Property 'states'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transitions'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transformOriginPoint'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Property 'transform'' of object 'QQuickItem_QML_190' has no notify signal and is not constant, value updates in HTML will be broken! Don't know how to handle '', use qRegisterMetaType to register it.'

But when trying to browse only this comes out:

'R_HOME: /app/lib64/R/ R_HOME: /app/lib64/R/ R_HOME: /app/lib64/R/ R_HOME: /app/lib64/R/'

Escape or any other key or mouse click has no effect. It's probably the first thing I tried when I encountered the bug.

I have been trying to build JASP again but with no success. QTcreator simply fails after giving thousands of warning messages, using the command line as per instructions doesn't work properly. By fumbling I finally got a working JASP binary without the freezing bug, but whatever I do just crashes after less than a minute. I feel like the building instructions are incomplete or wrong somehow. The errors do not seem to be due to missing libraries, as I think those gave me errors at config time, not at build time. I will try something different as soon as I have time.

JorisGoosen commented 5 years ago

Hmm, yeah those warnings while buildings are annoying and I hope one day we will get the time to remove them all. But for now I usually just hide them in Qt Creator. It's the errors that give the most valuable information in practice..

What I do see at the top of the log is some stuff about OpenGL not loading properly (radeon and radeonsi). Maybe you could try to install the xf86-video-amdgpu driver for your amd card instead?

And I just took a look at the build instructions and I must admit that the linux part could be clearer. If you get into trouble don't hesitate to ask me for help!

divanosport commented 5 years ago

It is installed and I don't know why I'm getting those warnings myself. I will see if there is something wrong with my setup and report.

JorisGoosen commented 5 years ago

So that isn't it then. It's kind of weird that the small demo project has no problem opening the filebrowser while it manages to freeze JASP...

I'll have to see what different thing JASP does extra as compared to the FileBrowseTest, maybe the directory it uses or something.

divanosport commented 5 years ago

Yep, I've tried installing Jamovi and Steam's flatpaks and neither give me the gl warnings in the terminal. Indeed it seems that Steam comes packed with its own GL libraries... so maybe JASP should too?

JorisGoosen commented 5 years ago

Yeah, that was actually something I wanted to look at today. flatpak has some special support for OpenGL but apparently it needs to request some special permission to access the driver directly. And the current buildsetup doesn't use this yet.

I will try to see if I can add this and I'll let you know when I've setup a debug-repo for it so that you can test it and see if it makes a difference.

JorisGoosen commented 5 years ago

@divanosport could you try this version of flatpak: http://static.jasp-stats.org/flatpak/JASP-Test.flatpakref ? It is a test version of the upcoming release.

I'm curious if it works better for you and if the OpenGL errors are gone?

divanosport commented 5 years ago

Hello! Freezes same way as before, but it seems to start faster and the OpenGL errors are gone. The other warning and outputs seem to be identical.

I can open datasheets through the terminal (flatpak run org.jaspstats.JASP filename), but I guess it's a bit annoying for everyday usage.

JorisGoosen commented 5 years ago

Hmm, well good it starts faster and it doesn't complain about GL anymore!

Too bad those things seem to be unrelated to the problem at hand...

I'll have to see if I can better pinpoint what goes wrong where..

JorisGoosen commented 4 years ago

@divanosport if you lookd at this page under "Publish beta releases" you see some commands to add a "beta" branch of flathub.

I've pushed a version of JASP there that you can (after installing it) run as flatpak run --branch=beta org.jaspstats.JASP which has a special option under "Preferences -> Interface -> Use Native Filedialogs".

If you disable that, maybe you can just open files again?

divanosport commented 4 years ago

Hello,

sorry for the delay. I can't access that blog post right now but I'll try again later. If you have the command to install the beta branch I will do it as soon as I see your response.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, March 2, 2020 11:51 AM, Joris Goosen notifications@github.com wrote:

@divanosport if you lookd at this page under "Publish beta releases" you see some commands to add a "beta" branch of flathub.

I've pushed a version of JASP there that you can (after installing it) run as flatpak run --branch=beta org.jaspstats.JASP which has a special option under "Preferences -> Interface -> Use Native Filedialogs".

If you disable that, maybe you can just open files again?

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

JorisGoosen commented 4 years ago

Aah yeah the site seems to be down...

What you do is: flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo flatpak install flathub-beta org.jaspstats.JASP and then to run it: flatpak run --branch=beta org.jaspstats.JASP

I think it then remembers that you want that version, so to go back to the "real" released JASP, which will of course be quite useful after we release 0.12 you can do: flatpak run --branch=stable org.jaspstats.JASP

divanosport commented 4 years ago

Same problem...

opening a file via CLI still works luckily ( flatpak run --branch=beta org.jaspstats.JASP whatever.ods), so I will still be enjoying JASP (v 0.12 looks great). Maybe you were right in the beginning, it could be some general QT problem in my distro or specific to my installation. The other day I couldn't make a graph with Julia and it gave me a qt-related error. I might try to install a Fedora or Debian vm and see if I get the same problem there.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Friday, March 20, 2020 5:49 PM, Joris Goosen notifications@github.com wrote:

Aah yeah the site seems to be down...

What you do is: flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo flatpak install flathub-beta org.jaspstats.JASP and then to run it: flatpak run --branch=beta org.jaspstats.JASP

I think it then remembers that you want that version, so to go back to the "real" released JASP, which will of course be quite useful after we release 0.12 you can do: flatpak run --branch=stable org.jaspstats.JASP

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

JorisGoosen commented 4 years ago

And you really did uncheck the native dialog box? In that case it definitely sounds like a qt problem... Although not one I've encountered before.

divanosport commented 4 years ago

Oops, I did not. :P

And that solved the problem, so thank you for your work!

Sent from ProtonMail mobile

-------- Original Message -------- On Mar 20, 2020, 7:31 PM, Joris Goosen wrote:

And you really did uncheck the native dialog box?

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