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 790889 - Builder constantly uses 100% cpu when opening a project that has symlinks
Builder constantly uses 100% cpu when opening a project that has symlinks
Status: RESOLVED FIXED
Product: gnome-builder
Classification: Other
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: GNOME Builder Maintainers
GNOME Builder Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-11-27 08:46 UTC by Elad Alfassa
Modified: 2017-11-27 10:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
file-search: ignore symlinks (1.68 KB, patch)
2017-11-27 10:08 UTC, Christian Hergert
committed Details | Review

Description Elad Alfassa 2017-11-27 08:46:22 UTC
I encountered this problem when opening https://github.com/openshift/openshift-ansible with github. openshift-ansible seems to make heavy use of symlinks all over the place. Whenever I open this in Builder the cpu usage jumps to 100%.

I attached gdb to the process and "thread apply all bt" showed that one of the threads is doing this:

Thread 6 (Thread 0x7fac2eb64700 (LWP 4562))

  • #0 p_fnmatchx
  • #1 p_fnmatchx
  • #2 p_fnmatch
  • #3 git_attr_fnmatch.match
  • #4 ignore_lookup_in_rules
  • #5 git_ignore_path_is_ignored
  • #6 ggit_repository_path_is_ignored
  • #7 ide_git_vcs_is_ignored
  • #8 populate_from_dir
  • #9 populate_from_dir
  • #10 populate_from_dir
  • #11 populate_from_dir
  • #12 populate_from_dir
  • #13 populate_from_dir
  • #14 populate_from_dir
  • #15 populate_from_dir
  • #16 populate_from_dir
  • #17 populate_from_dir
  • #18 populate_from_dir
  • #19 populate_from_dir
  • #20 populate_from_dir
  • #21 populate_from_dir
  • #22 populate_from_dir
  • #23 populate_from_dir
  • #24 populate_from_dir
  • #25 populate_from_dir
  • #26 populate_from_dir
  • #27 populate_from_dir
  • #28 populate_from_dir
  • #29 populate_from_dir
  • #30 populate_from_dir
  • #31 populate_from_dir
  • #32 populate_from_dir
  • #33 populate_from_dir
  • #34 populate_from_dir
  • #35 populate_from_dir
  • #36 populate_from_dir
  • #37 populate_from_dir
  • #38 populate_from_dir
  • #39 populate_from_dir
  • #40 populate_from_dir
  • #41 populate_from_dir
  • #42 populate_from_dir
  • #43 populate_from_dir
  • #44 populate_from_dir
  • #45 populate_from_dir
  • #46 populate_from_dir
  • #47 populate_from_dir
  • #48 populate_from_dir
  • #49 populate_from_dir
  • #50 populate_from_dir
  • #51 populate_from_dir
  • #52 populate_from_dir
  • #53 populate_from_dir
  • #54 populate_from_dir
  • #55 populate_from_dir
  • #56 populate_from_dir
  • #57 populate_from_dir
  • #58 gb_file_search_index_builder
  • #59 g_task_thread_pool_thread
  • #60 g_thread_pool_thread_proxy
  • #61 g_thread_proxy
  • #62 start_thread
  • #63 clone


So my guess is that it's stuck in a loop because of symlinks in the project tree.
Comment 1 Christian Hergert 2017-11-27 10:08:21 UTC
Created attachment 364485 [details] [review]
file-search: ignore symlinks
Comment 2 Christian Hergert 2017-11-27 10:09:15 UTC
Thanks for reporting and extra thanks for the stack trace!

Attachment 364485 [details] pushed as ea645b7 - file-search: ignore symlinks