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 304736 - Opening WebDAV directory crashes in nautilus_bookmark_new()
Opening WebDAV directory crashes in nautilus_bookmark_new()
Status: RESOLVED OBSOLETE
Product: nautilus
Classification: Core
Component: Bookmarks
2.10.x
Other other
: High critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-05-19 07:23 UTC by Johann Glaser
Modified: 2007-11-30 19:59 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description Johann Glaser 2005-05-19 07:23:34 UTC
Distribution: Debian 3.1
Package: nautilus
Severity: normal
Version: GNOME2.10.1 2.10.1
Gnome-Distributor: Debian
Synopsis: Opening WebDAV directory crashes nautilus
Bugzilla-Product: nautilus
Bugzilla-Component: general
Bugzilla-Version: 2.10.1
BugBuddy-GnomeVersion: 2.0 (2.10.0)
Description:
Description of the crash:
Create a WebDAV link on your desktop and double click it. After typing
the password the directory is displayed. One second later Nautilus
crashes.

At the teminal window I stared nautilus it says:
(nautilus:11143): libgnomevfs-CRITICAL **:
gnome_vfs_mime_application_supports_uris: assertion `app != NULL'
failed

** (nautilus:11143): WARNING **: Keine Beschreibung für MIME-Type
»x-directory/webdav« gefunden (Datei ist »Gel%F6schte%20Dateien«),
teilen Sie dies der gnome-vfs-Mailingliste mit.

** ERROR **: file nautilus-bookmark.c: line 445
(nautilus_bookmark_connect_file): assertion failed:
(!nautilus_file_is_gone (bookmark->details->file))
aborting...



Debugging Information:

Backtrace was generated from '/usr/bin/nautilus'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its
symbols.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1225005376 (LWP 11143)]
[New Thread -1239680080 (LWP 11151)]
[New Thread -1239417936 (LWP 11150)]
[New Thread -1238037584 (LWP 11149)]
[New Thread -1237079120 (LWP 11148)]
[New Thread -1228543056 (LWP 11146)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xb7be85d1 in __waitpid_nocancel () from /lib/tls/libpthread.so.0

Thread 1 (Thread -1225005376 (LWP 11143))

  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 <signal handler called>
  • #3 raise
    from /lib/tls/libc.so.6
  • #4 abort
    from /lib/tls/libc.so.6
  • #5 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #6 g_log
    from /usr/lib/libglib-2.0.so.0
  • #7 g_assert_warning
    from /usr/lib/libglib-2.0.so.0
  • #8 nautilus_bookmark_new
    from /usr/lib/libnautilus-private.so.2
  • #9 nautilus_bookmark_set_name
    from /usr/lib/libnautilus-private.so.2
  • #10 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #15 nautilus_file_emit_changed
    from /usr/lib/libnautilus-private.so.2
  • #16 nautilus_file_changed
    from /usr/lib/libnautilus-private.so.2
  • #17 nautilus_directory_force_reload_internal
    from /usr/lib/libnautilus-private.so.2
  • #18 _gnome_vfs_job_complete
    from /usr/lib/libgnomevfs-2.so.0
  • #19 _gnome_vfs_job_complete
    from /usr/lib/libgnomevfs-2.so.0
  • #20 g_child_watch_add
    from /usr/lib/libglib-2.0.so.0
  • #21 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #22 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #23 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #24 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #25 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #26 main
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0




------- Bug moved to this database by unknown@bugzilla.gnome.org 2005-05-19 07:23 UTC -------


Unknown version 2.10.1 in product nautilus.  Setting version to "2.10.x".

Comment 1 Sebastien Bacher 2005-05-19 07:58:44 UTC
can you get a backtrace (http://live.gnome.org/GettingTraces) with
libglib2.0-0-dbg libgtk2.0-0-dbg nautilus-dbg installed?
Comment 2 Christian Kirbach 2005-07-19 11:08:23 UTC
The following trace is from  Sebastian Seifert (Bug 306322) and is very good

Confirming because of the duplicate


0xb7bc8561 in __waitpid_nocancel () from /lib/tls/libpthread.so.0

Thread 1 (Thread -1225255776 (LWP 6842))

  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 <signal handler called>
  • #3 raise
    from /lib/tls/libc.so.6
  • #4 abort
    from /lib/tls/libc.so.6
  • #5 IA__g_logv
  • #6 IA__g_log
    at gmessages.c line 512
  • #7 IA__g_assert_warning
  • #8 nautilus_bookmark_new
    from /usr/lib/libnautilus-private.so.
  • #9 nautilus_bookmark_set_name
    from /usr/lib/libnautilus-private.so.2
  • #10 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #11 IA__g_closure_invoke
    at gclosure.c line 437
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2488
  • #13 IA__g_signal_emit_valist
    at gsignal.c line 2247
  • #14 IA__g_signal_emit
    at gsignal.c line 2291
  • #15 nautilus_file_emit_changed
    from /usr/lib/libnautilus-private.so.2
  • #16 nautilus_file_changed
    from /usr/lib/libnautilus-private.so.
  • #17 nautilus_directory_force_reload_internal
    from /usr/lib/libnautilus-private.so.2
  • #18 dispatch_get_file_info_callback
    at gnome-vfs-job.c line 247
  • #19 dispatch_job_callback
    at gnome-vfs-job.c line 559
  • #20 g_idle_dispatch
    at gmain.c line 3812
  • #21 g_main_dispatch
    at gmain.c line 1933
  • #22 IA__g_main_context_dispatch
  • #23 g_main_context_iterate
    at gmain.c line 2564
  • #24 IA__g_main_loop_run
    at gmain.c line 2768
  • #25 IA__gtk_main
    at gtkmain.c line 974
  • #26 main
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0

Comment 3 Christian Kirbach 2005-07-19 11:12:27 UTC
seems to happen in nautilus_bookmark_new ()

setting component to Bookmarks.

looks like it crashes when nautilus attempts to create a bookmark for the
webdav share.
Comment 4 Sebastian Seifert 2005-07-19 11:47:31 UTC
I just installed nautilus-dbg (didnt's know it existed) and generated another
backtrace. The problem rather seems to happen in
nautilus_bookmark_connect_file() than in nautilus_bookmark_new().

Backtrace was generated from '/usr/bin/nautilus'

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1224960864 (LWP 15646)]
[New Thread -1237230672 (LWP 15659)]
[New Thread -1236968528 (LWP 15658)]
[New Thread -1236706384 (LWP 15657)]
[New Thread -1236444240 (LWP 15656)]
[New Thread -1236075600 (LWP 15653)]
[New Thread -1227424848 (LWP 15647)]
0xb7c10561 in __waitpid_nocancel () from /lib/tls/libpthread.so.0

Thread 1 (Thread -1224960864 (LWP 15646))

  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 <signal handler called>
  • #3 raise
    from /lib/tls/libc.so.6
  • #4 abort
    from /lib/tls/libc.so.6
  • #5 IA__g_logv
  • #6 IA__g_log
    at gmessages.c line 512
  • #7 IA__g_assert_warning
  • #8 nautilus_bookmark_connect_file
    at nautilus-bookmark.c line 445
  • #9 bookmark_file_changed_callback
    at nautilus-bookmark.c line 354
  • #10 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #11 IA__g_closure_invoke
    at gclosure.c line 437
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2488
  • #13 IA__g_signal_emit_valist
    at gsignal.c line 2247
  • #14 IA__g_signal_emit
    at gsignal.c line 2291
  • #15 nautilus_file_emit_changed
    at nautilus-file.c line 5404
  • #16 nautilus_file_changed
    at nautilus-file.c line 5345
  • #17 get_info_callback
    at nautilus-directory-async.c line 2812
  • #18 dispatch_get_file_info_callback
    at gnome-vfs-job.c line 247
  • #19 dispatch_job_callback
    at gnome-vfs-job.c line 559
  • #20 g_idle_dispatch
    at gmain.c line 3812
  • #21 g_main_dispatch
    at gmain.c line 1933
  • #22 IA__g_main_context_dispatch
    at gmain.c line 2483
  • #23 g_main_context_iterate
    at gmain.c line 2564
  • #24 IA__g_main_loop_run
    at gmain.c line 2768
  • #25 IA__gtk_main
    at gtkmain.c line 974
  • #26 main
    at nautilus-main.c line 432
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0

Comment 5 Sebastian Seifert 2005-07-19 12:10:03 UTC
Some more information obtained in the nautilus_bookmark_connect_file() frame,
maybe it is helpful:

(gdb) print *(bookmark->details)
$9 = {name = 0x8370490 "dav: mediacenter.gmx.net on mediacenter.gmx.net", 
  uri = 0x83700c8 "dav://570614@mediacenter.gmx.net", icon = 0x0, file =
0x835d498, scroll_file = 0x0}
(gdb) print *(bookmark->details->file->details)
$10 = {directory = 0x835d018, relative_uri = 0x835d2c8 "/", 
  cached_display_name = 0x83607d8 "dav: mediacenter.gmx.net",
display_name_collation_key = 0x0, 
  info = 0x0, get_info_error = GNOME_VFS_ERROR_NOT_FOUND, monitor = 0x0,
directory_count = 6, 
  deep_directory_count = 0, deep_file_count = 0, deep_unreadable_count = 0,
deep_size = 0, 
  mime_list = 0x8389650, top_left_text = 0x0, display_name = 0x0, custom_icon =
0x0, 
  activation_uri = 0x0, guessed_mime_type = 0x835db78 "x-directory/webdav",
operations_in_progress = 0x0, 
  compare_by_emblem_cache = 0x0, pending_info_providers = 0x0, extension_emblems
= 0x0, 
  pending_extension_emblems = 0x0, extension_attributes = 0x0,
pending_extension_attributes = 0x835d518, 
  unconfirmed = 0, is_gone = 1, loading_directory = 0, get_info_failed = 1,
file_info_is_up_to_date = 1, 
  got_slow_mime_type = 0, got_directory_count = 1, directory_count_failed = 0, 
  directory_count_is_up_to_date = 1, deep_counts_status = 0, got_mime_list = 1,
mime_list_failed = 0, 
  mime_list_is_up_to_date = 1, got_top_left_text = 0,
top_left_text_is_up_to_date = 0, got_link_info = 1, 
  link_info_is_up_to_date = 1, is_thumbnailing = 0, has_volume = 0, has_drive =
0, has_open_window = 1}
Comment 6 Sebastian Seifert 2005-07-19 12:33:14 UTC
I did some more experiments:
I executed nautilus in gdb and set a breakpoint on nautilus_file_changed.
Whenever that breakpoint was hit and file->details->is_gone was set to 1, I set
it to 0. That was only necessary twice. After the second time, the window opened
and no assertion failure :-))).
I could create a folder (named "new"), open this folder, create a text file on
my desktop (test.txt), move "test.txt" into "new", close "new" and reopen "new"
containing "test.txt" while hitting cont in gdb a few dozen times. Strangely,
somewhere inbetween, "new" changed its mime type from x-directory/webdav to
httpd/unix-directory, eliciting the following warning from nautilus:

** (nautilus:15774): WARNING **: No description found for mime type
"httpd/unix-directory" (file is "new"), please tell the gnome-vfs mailing list.
Is this a different bug? I guess so...

A newly created folder "test" on the webdav share has the type
x-directory/webdav, as have the preexisting folders. The preexisting folders
CANNOT be opened. One error I get is:

Couldn't display "dav://570614@mediacenter.gmx.net/Meine%20Dokumente".
The location is not a folder.

However, on those folders that have changed type to httpd/unix-directory, I now get:

Cannot open new

The filename "new" indicates that this file is of type "x-directory/webdav". The
contents of the file indicate that the file is of type "httpd/unix-directory".
If you open this file, the file might present a security risk to your system.

Do not open the file unless you created the file yourself, or received the file
from a trusted source. To open the file, rename the file to the correct
extension for "httpd/unix-directory", then open the file normally.
Alternatively, use the Open With menu to choose a specific application for the
file. 

But probably all of this is unrelated and should be filed in a separate bug once
the "is_gone==1" bug is fixed, right?
Comment 7 Sebastian Seifert 2005-07-19 17:31:23 UTC
I've played around a little, and before I forget, I'll write down what I found:
When the webdav icon is clicked, a NautilusDirectory (with a corresponding
NautilusFile) is created and gnome_vfs_async_get_file_info is eventually called
upon it with get_info_callback as the callback function. It is executed several
times, and there are even more calls of file_info_start which fail because there
is already an operation going on. When the async io completes, the result is
either GNOME_VFS_OK or GNOME_VFS_NOT_FOUND. Usually, it is OK at first but
NOT_FOUND on a later call. I believe there are different NautilusDirectory
objects created for the same URI - is this correct? 

If the result of the async io is GNOME_VFS_NOT_FOUND, the directory's
NautilusFile is marked as is_gone. That leads to the assertion failure of the
above stack trace later.

There are at least two bugs here, I think: the first bug causes the GNOME VFS to
return NOT_FOUND on some occasion, the other bug is the assertion failure in
Nautilus - since the file might have really disappeared before the bookmark
function is called, there seems to be a race.

Hope some of this helps and I'm not talking nonsense.
Comment 8 Christian Kellner 2005-11-30 23:17:53 UTC
That x-directory/webdav vs httpd/unix-directory could only happen if the server
says that the mime-type of a given resource is httpd/unix-directory but it
doesnt send the <collection> property as well because we foce the mime type to
be x-directory/webdav for collections. Its either something fishy going on in
the http method (need logs! See #153054) or its totally normal gmx webdav server
brokeness (which wouldnt suprise me in any way).
Comment 9 André Klapper 2007-11-30 19:59:12 UTC
closing this bug report as obsolete, please reopen if this still happens with a current version of nautilus, like 2.20.x.