After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 622066 - device_recurse: assertion failed: (depth < 100)
device_recurse: assertion failed: (depth < 100)
Status: RESOLVED OBSOLETE
Product: gnome-disk-utility
Classification: Core
Component: Disks UI
2.30.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-disk-utility-maint
gnome-disk-utility-maint
: 585711 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-06-19 11:41 UTC by yellowhat
Modified: 2012-11-12 21:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
strace /usr/lib/gvfs/gvfs-gdu-volume-monitor >/tmp/gvfs-gdu-volume-monitor.strace 2>&1 (84.45 KB, text/plain)
2011-05-11 04:41 UTC, Ross Patterson
Details

Description yellowhat 2010-06-19 11:41:16 UTC
I am using Gentoo Testing and gnome 2.30 from portage tree. It doesn't automount external devices, if I try to run palimpsest, I get:

**
libgdu:ERROR:gdu-pool.c:2369:device_recurse: assertion failed: (depth < 100)
Abortito

[ebuild   R   ] sys-fs/udisks-1.0.1  USE="nls -bash-completion -debug -doc -remote-access" 698 kB
[ebuild   R   ] gnome-base/nautilus-2.30.1-r1  USE="gnome -doc -test -xmp" 0 kB
[ebuild   R   ] sys-apps/gnome-disk-utility-2.30.1  USE="nautilus -avahi -doc -fat -remote-access" 0 kB

Reproducible: Always

Steps to Reproduce:
1. emerge sys-apps/gnome-disk-utility
2. palimpsest
3.

Link to bugs.gentoo: http://bugs.gentoo.org/show_bug.cgi?id=321971
Comment 1 Pacho Ramos 2010-07-13 15:33:21 UTC
From https://bugs.launchpad.net/ubuntu/+source/gnome-disk-utility/+bug/571038

"This is from affected user in gentoo:

# fdisk -l
omitting empty partition (5)

Disco /dev/sda: 150.0 GB, 150039945216 byte

255 testine, 63 settori/tracce, 18241 cilindri, totale 293046768 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x104f104e

Dispositivo Boot Start End Blocks Id System
/dev/sda1 63 2104514 1052226 6 FAT16
/dev/sda2 2104515 149565149 73730317+ c W95 FAT32 (LBA)
/dev/sda3 149565150 159814619 5124735 c W95 FAT32 (LBA)
/dev/sda4 159814620 293046767 66616074 f W95 Esteso (LBA)
/dev/sda5 159814683 164023649 2104483+ b W95 FAT32
/dev/sda6 164023713 293046767 64511527+ b W95 FAT32

Disco /dev/sdb: 320.1 GB, 320072933376 byte

255 testine, 63 settori/tracce, 38913 cilindri, totale 625142448 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0xa8ec58b5

Dispositivo Boot Start End Blocks Id System
/dev/sdb1 * 63 625137344 312568641 7 HPFS/NTFS"

From https://bugs.launchpad.net/ubuntu/+source/gnome-disk-utility/+bug/571038/comments/6 :
"The error comes from here:
gdu-pool.c (libgdu0)
--
(...)
static void
device_recurse (GduPool *pool, GduDevice *device, GList **ret, guint depth)
{
        gboolean insert_after;

        /* cycle "detection" */
        g_assert (depth < 100); <--- HERE

        insert_after = FALSE;

        if (gdu_device_is_partition (device)) {
                const gchar *partition_table_object_path;
                GduDevice *partition_table;
(...)
---

It goes over the partition tables and starts to parse them, increments 'depth' on several occasions:
---
(...)
                /* we want the partition table to come before any partition */
                if (partition_table != NULL)
                        device_recurse (pool, partition_table, ret, depth + 1);
(...)
or
(...)
                       /* logical MSDOS partition, ensure that the extended partition comes before us */
                        extended_partition = find_extended_partition (pool, partition_table_object_path);
                        if (extended_partition != NULL) {
                                device_recurse (pool, extended_partition, ret, depth + 1);
                        }

(...)
---

So it seem that somehow while reading and composing the tree it exceeds the 100 levels.
I'd say the next steps now would be to determine what device is triggering it and determine why.

But again it's the first time I'm looking into this code so I may be saying a big mistake. :)"
Comment 2 yellowhat 2010-09-04 06:40:32 UTC
Hi, I am the gentoo user that have this problem. This is my situation:
I have 3 hard disk: WD 320 GB 2.5 Backup (connected directly on mainboard), WD
Raptor 150GB Gentoo (connected through an Enermax Mobil Rack), Seagate 320GB
3.5 Win7(connected through an Enermax Mobil Rack).
Now for high temperature I use only WDs because on Seagate I have only Windows
7.
WD raptor has always been connect to a rack (the upper one), but I have tried to
connect WD Raptor to the other one and automount works. So I decided to
return to previous configuration and gives me no automount and same palimpsest
error.
Both rack are connect to the red Sata ports, while HDD Backup and DVD-RW to the
black ones.

Thanks
Comment 3 yellowhat 2010-09-04 06:41:31 UTC
I have 3 hard disk: WD 320 GB 2.5 Backup (connected directly on mainboard), WD
Raptor 150GB Gentoo (connected through an Enermax Mobil Rack), Seagate 320GB
3.5 Win7(connected through an Enermax Mobil Rack).
Now for high temperature I use only WDs because on Seagate I have only Windows
7.
WD raptor has always been connect to a rack (the upper one), but I have tried to
connect WD Raptor to the other one and automount works. So I decided to
return to previous configuration and gives me no automount and same palimpsest
error.
Both rack are connect to the red Sata ports, while HDD Backup and DVD-RW to the
black ones.

Thanks
Comment 4 Omer Akram 2010-11-25 16:53:25 UTC
if my ipod is connected gdu does not start with:

libgdu:ERROR:gdu-pool.c:2369:device_recurse: assertion failed: (depth < 100)
Comment 5 Ross Patterson 2011-05-11 04:41:43 UTC
Created attachment 187605 [details]
strace /usr/lib/gvfs/gvfs-gdu-volume-monitor >/tmp/gvfs-gdu-volume-monitor.strace 2>&1

This affects only one of my two Ubuntu Natty systems. The same removable drive automounts on one but not the other. With no removable drive, the broken one gives the following:

    $ /usr/lib/gvfs/gvfs-gdu-volume-monitor
    **
    libgdu:ERROR:gdu-pool.c:2369:device_recurse: assertion failed: (depth < 100)
    Aborted

While on the working one the command starts up just fine.

The broken system has been having automount problems since at least lucid, but until just recently, I could get automount to work by logging out and logging back in. IOW, automount was broken on the first login after boot, but subsequent logins worked. Now it never works and I have to use pmount to mount removable drives.

Attached is the output of:

    $ strace /usr/lib/gvfs/gvfs-gdu-volume-monitor >/tmp/gvfs-gdu-volume-monitor.strace 2>&1
Comment 6 Mikhail Titov 2011-07-28 13:37:12 UTC
A patch has been proposed that solved an issue for me https://bugs.launchpad.net/ubuntu/+source/gnome-disk-utility/+bug/571038
Comment 7 Martin Pitt 2012-03-28 10:48:23 UTC
*** Bug 585711 has been marked as a duplicate of this bug. ***
Comment 8 Martin Pitt 2012-03-28 13:32:26 UTC
https://bugs.freedesktop.org/show_bug.cgi?id=39603 is the underlying bug in udisks. However, the recursion here could be made more robust as well:

                        extended_partition = find_extended_partition (pool,
partition_table_object_path);
                        if (extended_partition != NULL) {

E. g. find_extended_partition could check that the result is not equal to the original argument.
Comment 9 David Zeuthen (not reading bugmail) 2012-11-12 21:48:28 UTC
As of gnome-disk-utility 3.4 everything was rewritten to use udisks2 and GDBus.

Thanks for taking the time to report this bug.
However, you are using a version that is too old and not supported anymore. GNOME developers are no longer working on that version, so unfortunately there will not be any bug fixes for the version that you use.

By upgrading to a newer version of GNOME you could receive bug fixes and new functionality. You may need to upgrade your Linux distribution to obtain a newer version of GNOME.
Please feel free to reopen this bug if the problem still occurs with a newer version of GNOME.