qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.5k stars 2.99k forks source link

Significant slowdowns at startup and when loading pages. #58851

Open JulpShady opened 3 weeks ago

JulpShady commented 3 weeks ago

What is the bug or the crash?

I am installing the QGIS software on a network of 900 machines. The users are not Root and use roaming profiles with their “/home” mounted on a remote server. The problem occurs across the entire network and for any user. However, there is no issue on the same machine with a local non-root user.

When launching QGIS, it is extremely slow (5/10 minutes). The same goes for opening “pages” like “Layer => Add Layer => Add Delimited Text Layer,” which takes more than 30 minutes to open. There is no performance issue with the PC, which does not use any particular resources. I ran an strace on the QGIS process:

default/qgis-auth.db-wal", 0x7fffd85b8730, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
newfstatat(38, "", {st_mode=S_IFREG|0644, st_size=45056, ...}, AT_EMPTY_PATH) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
statx(AT_FDCWD, "/home/p00000192533/.local/share/QGIS/QGIS3/profiles/default//themes/default/icons", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b9030) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
access("/usr/share/qgis/resources/themes/default/icons///mActionAddPointCloudLayer.svg", F_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, ".", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=STATX_ATTR_MOUNT_ROOT, stx_mode=S_IFDIR|0771, stx_size=4096, ...}) = 0
statx(AT_FDCWD, "/home/p00000192533/.local/share/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0700, stx_size=292, ...}) = 0
statx(AT_FDCWD, "/usr/share/xfce4/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/xubuntu/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/gnome/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/home/p00000192533/.local/share/flatpak/exports/share/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/var/lib/flatpak/exports/share/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
statx(AT_FDCWD, "/usr/local/share/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
statx(AT_FDCWD, "/var/lib/snapd/desktop/mime", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8890) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
access("/home/p00000192533/.local/share/mime/packages/freedesktop.org.xml", F_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
access("/var/lib/flatpak/exports/share/mime/packages/freedesktop.org.xml", F_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
access("/usr/share/mime/packages/freedesktop.org.xml", F_OK) = 0
statx(AT_FDCWD, "/home/p00000192533/.local/share/mime/mime.cache", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=532, ...}) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
statx(AT_FDCWD, "/var/lib/flatpak/exports/share/mime/mime.cache", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=784, ...}) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
statx(AT_FDCWD, "/usr/share/mime/mime.cache", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=173000, ...}) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2962, ...}, 0) = 0
statx(AT_FDCWD, "/home/p00000192533/.local/share/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/xfce4/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/xubuntu/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/gnome/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/home/p00000192533/.local/share/flatpak/exports/share/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/var/lib/flatpak/exports/share/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/local/share/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
statx(AT_FDCWD, "/usr/share/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=2544, ...}) = 0
statx(AT_FDCWD, "/var/lib/snapd/desktop/mime/inode/directory.xml", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffd85b8990) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/usr/share/mime/inode/directory.xml", O_RDONLY|O_CLOEXEC) = 26
statx(26, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=2544, ...}) = 0
statx(26, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=2544, ...}) = 0
getcwd("/home/p00000192533", 4096)      = 19
openat(AT_FDCWD, "/home/p00000192533", O_RDONLY|O_CLOEXEC) = 26
statx(26, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=STATX_ATTR_MOUNT_ROOT, stx_mode=S_IFDIR|0771, stx_size=4096, ...}) = 0
openat(AT_FDCWD, "/home/p00000192533.bmp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.cur", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.gif", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.icns", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.ico", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.jpeg", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.jpg", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.mng", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.pbm", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
openat(AT_FDCWD, "/home/p00000192533.pdf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)

Thank you in advance for your advice and solutions.

Steps to reproduce the issue

for exemple : Layer => Add Layer => Add Delimited Text Layer which takes more than 30 minutes to open

Versions

3.38 (Grenoble)

Supported QGIS version

New profile

Additional context

No response

agiudiceandrea commented 3 weeks ago

@JulpShady, thanks for reporting. Please provide the full version info as requested in the issue report form ("In the QGIS Help menu -> About, click in the table, Ctrl+A and then Ctrl+C. Finally paste here. Do not make a screenshot.").

JulpShady commented 3 weeks ago

Sorry for this oversight : Version de QGIS 3.38.3-Grenoble Révision du code 37f9e6efeec Version de Qt 5.15.3 Version de Python 3.10.12 Version de GDAL/OGR 3.4.1 Version de Proj 8.2.1 Version de la base de données du registre EPSG v10.041 (2021-12-03) Version de GEOS 3.10.2-CAPI-1.16.0 Version de SQLite 3.37.2 Version de PDAL 2.3.0 Version du client PostgreSQL 14.13 (Ubuntu 14.13-0ubuntu0.22.04.1) Version de SpatiaLite 5.0.1 Version de QWT 6.1.4 Version de QScintilla2 2.11.6 Version de l'OS Ubuntu 22.04.5 LTS

Extensions Python actives grassprovider 2.12.99 MetaSearch 0.3.6 processing 2.12.99 db_manager 0.1.20

Thank

troopa81 commented 3 weeks ago

Could you test with the profile stored on a non-remote folder ?

How do you install QGIS ? Are you sure your QGIS is not installed in a remote folder ?

You can also enable the Debugging/Development tool panel  and under the clock tab, select the category Startup than can give you some hint on what's going on at startup. You can also share it here.

The same goes for opening “pages” like “Layer => Add Layer => Add Delimited Text Layer,” which takes more than 30 minutes to open.

Just opening the menu and dialog takes 30 minutes, not even adding the delimited text layer? That's weird, TBH there is higher chances that it comes from your system or the way you installed QGIS than QGIS itself (but we never know)

JulpShady commented 2 weeks ago

Hello,

I tested on a local “standard” profile and everything works very well.

I installed QGIS with ANSIBLE locally on the machine.

How can I enable this debugging option?

Yes, it indeed takes 30 minutes to open the “delimited text” window, but it’s the same for the “settings” window, for example. However, once the windows are open, navigation inside them works perfectly fine.

troopa81 commented 2 weeks ago

How can I enable this debugging option?

You just have to make visible the pane. To do so Right click on the toolbar, select Debugging/Development Tools panel, and follow my previous message instructions.

Yes, it indeed takes 30 minutes to open the “delimited text” window, but it’s the same for the “settings” window, for example. However, once the windows are open, navigation inside them works perfectly fine.

It's possible, however I'm not sure, that we read a few settings. If those are stored on a remote folder it may be slow depending on your network (though 30 minutes seems really slow).

If everything works nicely with a local profile, it probably comes from network profile file slow read access.