Skip to content

IDE startup takes too long when a soft link into big directory structures exist in the "sketchbook location" directory #351

@Ho-Ro

Description

@Ho-Ro

Describe the bug
The IDE startup takes forever when links into complex directories with thousands of subdirectories exist in "sketchbook location" directory structure.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the sketchbook storage directory (in my case cd ~/Arduino/Projects).
  2. Create a link into a complex directory structure with circular links.
  3. Start the ide (beta5).
  4. The IDE opens, but the splash screen is displayed forever, warnings are shown:
root WARN Could not load sketch from ...
root WARN Could not load sketch from ... 
...
root WARN Could not load sketch from ...
root WARN Frontend EditorNavigationContribution.onStart is slow, took: 450821.8 ms
  1. Startup takes almost 8 minutes.
  2. After removing the critical link the IDE starts much faster.

Expected behavior
The splash screen closes fast, and the IDE works normally - independent of the project directory structure.

Desktop

  • OS: debian stable with KDE
  • Version: arduino-ide beta 5

EDIT: Especially the circular links that I use for structured documentation purposes (e.g. TOP->../.. or A->B and B->A or even more complex with three and four hops) slow down the startup. Obviously the IDE tries to traverse the whole tree and visits the directories over and over again until the max. path length is reached - then it stops. During this traversal it spits out thousands of warnings :(

2nd EDIT: This problem did not occur in beta.3, beta.4 could not be tested on my Debian stable system due to #259.

3rd EDIT: Related to beta.4 issue #269?

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: codeRelated to content of the project itselftype: imperfectionPerceived defect in any part of project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions