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 666418 - Looping and crashes when viewing dir with circular symbolic links
Looping and crashes when viewing dir with circular symbolic links
Status: RESOLVED OBSOLETE
Product: nautilus
Classification: Core
Component: Navigation
3.4.x
Other Linux
: High critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-12-17 20:46 UTC by uiop
Modified: 2012-12-08 03:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
stack trace part 1 (39.31 KB, text/plain)
2011-12-18 22:54 UTC, uiop
Details
stack trace part 2 (34.61 KB, text/plain)
2011-12-18 22:55 UTC, uiop
Details
stack trace part 3 (40.89 KB, text/plain)
2011-12-19 04:18 UTC, uiop
Details
stack trace part 4 (37.82 KB, text/plain)
2011-12-19 04:18 UTC, uiop
Details
Valgrind Log (904.20 KB, text/x-log)
2011-12-19 13:46 UTC, Fabio Durán Verdugo
Details

Description uiop 2011-12-17 20:46:42 UTC
From the command line, put a couple circular symbolic links into a dir:
$ ln -s link2 link1
$ ln -s link1 link2

Then start nautilus and navigate to that dir; nautilus crashes:
It disappears from the screen, but apparently restarts itself according to:
$ ps -e | grep nautilu[s]
So one can restart nautilus and use it.

This crash happens
in nautilus 3.2.1  (in Linux Mint 12 main-GNOME and Linux Mint 12 MATE) and
in nautilus 2.30.1 (in Linux Mint 9  main-GNOME).

It does not happen in Caja 2011.11.10 (in Linux Mint 12 MATE).

It does not happen (in any version above) if the link is self-circular (one link file):
$ ln -s linkself linkself
In this case, nautilus (and caja) will describe the type properly as:
link (broken)

Originally discovered when navigating to a dir with a circular set of 4 links (plus some other files).
Comment 1 André Klapper 2011-12-18 16:32:03 UTC
Thanks for taking the time to report this bug.
Without a stack trace from the crash it's very hard to determine what caused it.
Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 2 uiop 2011-12-18 22:54:40 UTC
Created attachment 203808 [details]
stack trace part 1
Comment 3 uiop 2011-12-18 22:55:23 UTC
Created attachment 203809 [details]
stack trace part 2
Comment 4 uiop 2011-12-18 23:13:49 UTC
I did the best I could re the stack trace.  Attached are two files created using the Ubuntu wiki's DebuggingProgramCrash/Backtrace instructions.

These traces were done on Linux Mint 9 main-GNOME with nautilus 2.30.1.

Both files are truncated since letting gdb run caused very large files (a few megs when I finally decided to close the terminal).

The first ends with the "backtrace full" that the wiki suggests.  The second ends with the last command (before quit) that the wiki suggests, "thread apply all backtrace."  Otherwise all the commands in the wiki were run.

I used the pid from the non-defunct nautilus listed in ps.  (This seems logical as apparently the current pid takes over from a newly run nautilus, which is listed as <defunct> in ps.  Also gdb didn't give relevant info with the defunct one--no surprise.)

Valgrind was not run (as wiki suggests it could be), but I'd be glad to run it if you need its log file.

May I ask, Is nautilus supposed to work with such circular links?  AFAICT, the gdb output suggests nautilus is following these two links back and forth until a SIGSEGV.
Comment 5 Fabio Durán Verdugo 2011-12-19 03:11:20 UTC
can you install  libglib debug package?
Comment 6 uiop 2011-12-19 04:18:27 UTC
Created attachment 203833 [details]
stack trace part 3
Comment 7 uiop 2011-12-19 04:18:55 UTC
Created attachment 203834 [details]
stack trace part 4
Comment 8 uiop 2011-12-19 04:20:07 UTC
Fabio, yes.  And re-run the gdb tests?  See stack traces 3 & 4.
Comment 9 Fabio Durán Verdugo 2011-12-19 12:49:05 UTC
post it here the attach BT

(gdb) thread apply all backtrace

Thread 1 (Thread 0xb77db760 (LWP 2249))

  • #0 pthread_getspecific
    from /lib/tls/i686/cmov/libpthread.so.0
  • #1 g_private_get_posix_impl
    at /build/buildd/glib2.0-2.24.1/gthread/gthread-posix.c line 290
  • #2 thread_memory_from_self
    at /build/buildd/glib2.0-2.24.1/glib/gslice.c line 435
  • #3 IA__g_slice_alloc
    at /build/buildd/glib2.0-2.24.1/glib/gslice.c line 819
  • #4 IA__g_slice_alloc0
    at /build/buildd/glib2.0-2.24.1/glib/gslice.c line 845
  • #5 IA__g_type_create_instance
    at /build/buildd/glib2.0-2.24.1/gobject/gtype.c line 1865
  • #6 g_object_constructor
    at /build/buildd/glib2.0-2.24.1/gobject/gobject.c line 1396
  • #7 IA__g_object_newv
    at /build/buildd/glib2.0-2.24.1/gobject/gobject.c line 1180
  • #8 IA__g_object_new
    at /build/buildd/glib2.0-2.24.1/gobject/gobject.c line 1092
  • #9 _g_local_file_new
    at /build/buildd/glib2.0-2.24.1/gio/glocalfile.c line 316
  • #10 g_local_file_resolve_relative_path
    at /build/buildd/glib2.0-2.24.1/gio/glocalfile.c line 567
  • #11 IA__g_file_resolve_relative_path
    at /build/buildd/glib2.0-2.24.1/gio/gfile.c line 816
  • #12 nautilus_file_get_location
    at nautilus-file.c line 1591
  • #13 nautilus_file_get_uri
    at nautilus-file.c line 1603
  • #14 get_link_files
    at nautilus-file.c line 2023
  • #15 nautilus_file_emit_changed
    at nautilus-file.c line 7123
  • #16 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #17 nautilus_file_changed
    at nautilus-file.c line 7066
  • #18 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #19 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #20 nautilus_file_changed
    at nautilus-file.c line 7066
  • #21 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #22 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #23 nautilus_file_changed
    at nautilus-file.c line 7066
  • #24 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #25 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #26 nautilus_file_changed
    at nautilus-file.c line 7066
  • #27 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #28 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #29 nautilus_file_changed
    at nautilus-file.c line 7066
  • #30 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #31 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #32 nautilus_file_changed
    at nautilus-file.c line 7066
  • #33 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #34 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #35 nautilus_file_changed
    at nautilus-file.c line 7066
  • #36 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #37 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #38 nautilus_file_changed
    at nautilus-file.c line 7066
  • #39 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #40 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #41 nautilus_file_changed
    at nautilus-file.c line 7066
  • #42 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #43 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #44 nautilus_file_changed
    at nautilus-file.c line 7066
  • #45 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #46 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #47 nautilus_file_changed
    at nautilus-file.c line 7066
  • #48 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #49 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #50 nautilus_file_changed
    at nautilus-file.c line 7066
  • #51 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #52 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #53 nautilus_file_changed
    at nautilus-file.c line 7066
  • #54 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #55 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #56 nautilus_file_changed
    at nautilus-file.c line 7066
  • #57 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #58 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #59 nautilus_file_changed
    at nautilus-file.c line 7066
  • #60 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #61 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #62 nautilus_file_changed
    at nautilus-file.c line 7066
  • #63 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #64 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #65 nautilus_file_changed
    at nautilus-file.c line 7066
  • #66 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #67 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #68 nautilus_file_changed
    at nautilus-file.c line 7066
  • #69 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #70 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #71 nautilus_file_changed
    at nautilus-file.c line 7066
  • #72 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #73 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #74 nautilus_file_changed
    at nautilus-file.c line 7066
  • #75 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #76 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #77 nautilus_file_changed
    at nautilus-file.c line 7066
  • #78 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #79 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #80 nautilus_file_changed
    at nautilus-file.c line 7066
  • #81 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #82 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #83 nautilus_file_changed
    at nautilus-file.c line 7066
  • #84 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #85 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #86 nautilus_file_changed
    at nautilus-file.c line 7066
  • #87 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #88 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #89 nautilus_file_changed
    at nautilus-file.c line 7066
  • #90 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #91 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #92 nautilus_file_changed
    at nautilus-file.c line 7066
  • #93 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #94 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #95 nautilus_file_changed
    at nautilus-file.c line 7066
  • #96 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #97 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785
  • #98 nautilus_file_changed
    at nautilus-file.c line 7066
  • #99 nautilus_file_emit_changed
    at nautilus-file.c line 7126
  • #100 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 785

Comment 10 Fabio Durán Verdugo 2011-12-19 13:06:33 UTC
I can confirm this issues from git master version.

here other stacktraces 
https://launchpadlibrarian.net/87898402/ThreadStacktrace.txt
https://launchpadlibrarian.net/87898371/Stacktrace.txt
Comment 11 Fabio Durán Verdugo 2011-12-19 13:46:28 UTC
Created attachment 203866 [details]
Valgrind Log
Comment 12 William Jon McCann 2012-08-13 18:12:09 UTC
I can't reproduce this using the instructions in the first comment. Is this still an issue?
Comment 13 uiop 2012-08-14 14:39:38 UTC
Yes, this is still a bug.

Using:
$ ln -s link2 link1
$ ln -s link1 link2

This crash continues to happen in:
GNOME nautilus 2.30.1 (on Linux Mint 9 - Gnome - 32 bit)
GNOME nautilus 3.4.1  (on Linux Mint 13 LIVE USB*  - Cinnamon 1.4.0 - 64 bit)
MATE caja 1.2.1       (on Linux Mint 13 LIVE USB** - MATE - 64 bit)
GNOME nautilus 3.4.1  (on Linux Mint 13 LIVE USB   - MATE - 64 bit)

*  Also confirmed this on a hard drive installation approximately 7 weeks ago.
** Also confirmed this on a hard drive installation approximately 5 weeks ago.

C'mon guys!  If it is not fixed, it is still an issue.
Comment 14 André Klapper 2012-08-14 14:46:14 UTC
(In reply to comment #13)
> C'mon guys!  If it is not fixed, it is still an issue.

Well, if it's not reproducible by developers and as the codebase has changed a lot it makes sense to ask the reporter if he still faces it.
Comment 15 uiop 2012-08-14 14:49:56 UTC
Re:
GNOME nautilus 3.4.1  (on Linux Mint 13 LIVE USB   - MATE - 64 bit)

Nautilus was run from the terminal:  At the point of the crash, a "Segmentation fault" was reported.  "echo $?" reported error code 139.
Comment 16 William Jon McCann 2012-08-14 15:02:56 UTC
Please attach an updated backtrace from the version 3.4 crash. I can't reproduce this on 3.4 or 3.5.x.

Wonder if there is an extension crashing...
Comment 17 uiop 2012-08-17 15:01:05 UTC
(In reply to comment #16)
> Please attach an updated backtrace from the version 3.4 crash. I can't
> reproduce this on 3.4 or 3.5.x.

Sorry, no.


> 
> Wonder if there is an extension crashing...

I know of no extensions running.  When running the live USBs, they are vanilla Linux Mint, except on the MATE version where I went into Software Manager and added Nautilus.
Comment 18 Fabio Durán Verdugo 2012-12-08 03:17:33 UTC
I can't reproduce this bug again, closing.