[Linux] Clion Freezes and hangs frequently on large projects

I'd like to add my voice to the list of issues that have been raised by others (search for freeze)

CLion is just a pain on bigger code bases - it will intermittently hang, sometime without apparent cause (ie no mouse click, no keyboard shortcut other than typing etc).

I've logged an issue on YouTrack and I am only one of many. I received no updates. I don't have high hopes if I log more issues...

Perhaps it is impossible to have a JavaVM performant enough to handle the intricacies of parsing and maintaining an internal model of a large C/C++ project,but I think that the issues are not related to this since the cases when I can see the hanging, there's plenty of memory left (I've allocated 8G and only 4G are used according to the indicator) and the CPUs are not all maxed out (I'm on a shared dev box so it's rather beefy) but who knows?

What bothers me is that there is no public official acknowledgement of this - this is very different from my experience with Intellij IDEA, which I've been using since 2002 (this is not a typo). Although there are instructions on how to collect CPU/memory dumps, I see no follow up on the issues themselves.

Jetbrains used to be proud of using the phrase 'eat your own dog food' and the result was a set of tools second to none in my opinion, but
not in this case.

For tools that are supposed to aid our productivity, these freezes are a serious setback.

Just my 2c.

33
26 comments

I have same issues. In my case this can be reproduced with small project only using google test... And test file with 600-700 od lines... IDE simply hangs no high CPU usage...

4

I also have similar unexpected delays while loading my very large external production project into it, specially when some significant (5-10 gbs) source codes are referred as external third party import modules, which surprisingly delays overall project ready status, often freezes until ready.

0
Avatar
Permanently deleted user

Same here, the IDE hangs for ~10 sec every 30 seconds of usage.

2

Hi!

Sorry for the inconvenience. We're planning to significantly improve CLion performance in CLion 2018.1. Some improvements will be available in CLion 2018.1 EAP which will be opened soon. Please follow our blog to get the updates. We appreciate if you could send us a CPU snapshot or a thread dump so we can take a look at the problem. Please send it to clion-support at jetbrains.com or using our FTP server: ftp://ftp.intellij.net/.uploads/ (anonymous login, .uploads directory has no permissions to list/download files, only for upload, so that other users will not be able to download your snapshots). Also you can file the issue in our tracker: https://youtrack.jetbrains.com/issues/CPP.

0

I updated to version 2018.1, but clion still freezes on codebases like LLVM or Clang

3

Anna,

I have a lot(!) of thread dumps and wanted to upload them to the FTP, but it seems that the .uploads folder no longer exists

$ ftp
ftp> open ftp.intellij.net
Connected to ftp.intellij.net.
220 FTP Server ready.
Name (ftp.intellij.net:sshuser): anonymous
331 Anonymous login ok, send your complete email address as your password
Password:
230 Anonymous login ok, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd .uploads
550 .uploads: No such file or directory

Although the 550 suggests it is "Permission denied". 

I also tried curl

$ curl -T threadDump-20180413-094355.txt ftp://ftp.intellij.net/.uploads --user anonymous:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (25) Failed FTP upload: 550

FTP clients also didn't work (since they try to list the directory). I wonder how to upload to such a folder.

It would also be nice if the upload of thread dumps could be integrated into the application itself.

0

Okay, (ab)using the "Manual transfer" feature (since it only supports uploading a single file I had to generate a queue export by script) I was able to upload all my threadDumps...at least it said it was successful.

0

Same here; Freezes for no apparent reason, in the middle of typing or even just trying to select a full line with the cursor at the start of the line and shift up or down. Sometimes, after several seconds there is a pop-up window that I can cancel, but sometimes there is not even that. This is CLion 2018.2 on macOS. Being a strong defender of open-source, it took me some time and a very good experience with PyCharm Community to convince me to finally buy the full ultimate license pack (my company wouldn't buy it for me). These frequent hangs are a serious disappointment; I'm that short from asking for a refund - I can't work like this.

0

I ended up switching to Visual Studio Code for C++ editing. It's really fast, even on a large codebase, and is completely free and open-source, so you can use it both in a professional setting with a site license and also at home for side projects. I highly recommend checking it out!

0

@Yves Delley, we are sorry for the inconvenience. As my colleague wrote above, we need additional materials in order to investigate the issues. Please send automatically generated thread dumps which are located in the logs folder to clion-support at jetbrains.com. Thread dumps which are required for the investigation (those from threadDump* folders) only contain stack traces from CLion's own java code.

Update: I see that you've created https://youtrack.jetbrains.com/issue/CPP-13952. Thanks for that!

0

This has been an ongoing issue for a few years now. Is there an intention to fix this and has there been any progress? 

0

@Ckfourie, performance problems can be caused by completely different reasons. In order to figure out where the problem is in your case, we need additional information as mentioned above.

As for the intentions and progress: we are working hard on performance problems this year and don't plan to stop. Since CLion 2018.1 we improved typing performance, implemented lexer-only indentation processor, addressed a range of performance issues related to the UI freezing after a VCS update, navigating to the related symbol (and thus switching between .h and .cpp files), UE4 projects freezing, and others. In CLion 2018.3 EAP we reworked the whole integration of unit testing in order to resolve dozens of performance issues (UI freezes when navigating to test results, performance issues when completing test macros, etc.). So yes, there is progress. We post the information about all important fixes in our blog, feel free to subscribe if you're interested.

-2

@Anna, I'm glad to hear it, and as an avid user of CLion for some years now, I really welcome the news that this is being taken seriously. 

However, I would stress that while attention to these details you mentioned may impact this problem, it would be great if your team could make certain that they do not inhibit typing or actual productivity, or that they can be disabled if they're causing problems. 

For example, the "resolve" function appears to block indiscriminately and sometimes doesn't return (at least on my installation). If a lookup is taking long, it shouldn't stop me from being able to type. Sometimes I know the name I'm looking for, but I just want to take advantage of the auto-completion. In a worst case scenario, I should be able to just write it out myself, not have to wait for resolve to return or be forced to terminate the UI. These are problems that kill productivity and makes your product a less effective solution. 

 

1

I currently have the same issue with large C projects. I submitted a case with all the information two months ago and no response since then. The cases open are:

  • CPP-13963 CLion is getting stuck with huge headers files due to high CPU use
  • CPP-12619 Freeze when hitting space in the editor after invoking completion. This case has six months without resolution.

Now I cannot recommend CLion as IDE for big C/C++ codebase.

My current option to develop are Vim and Visual Studio Code with the Microsoft C/C++ extension for VS Code; all of them free. They lack some CLion features but is OK because I can type without editor hangs.

Please CLion team, take care of this problem. This post has more than one year and I am surprised is still a big issue.

2

Hi!

Thank you for the reminder! We are working hard on CLion performance improvements. Unfortunately, some of them include significant technical challenges, so, while we're doing our best, we can't give you exact ETA for CPP-12619. We are sincerely sorry for the inconvenience!

0

Hello,

Same here, been wanting to switch to CLion for the past 2 years, because of some many interesting feature and the praise of the Java team that are using IntellJ. I tried every time a new EAP minor release comes out, 1, 2, and just now with 2018.3 RC2, same story. Always the same story, contant freezes. Made some bug reports over a year ago (on various topic), got feedback on only one of them, and it was not the one about the freezing.  So just don't feel like taking the time to gather some data for you guys.. Given how long this problem been present, I've lost faith.  I see feature that I don't care for being added while the very very basic stuff like editing will not work because of constant feezing. That tells me where JetBrains priority is at.  Though, challenge I get it, but no way we are buying licenses or help out with bug report.

Ms Filipova seems very driven to get this fix, but I don't get that vibe from the rest of JetBrains.

Thank

 

1
Avatar
Vincenzopalazzo1996

Hello guys,

 

I encountered a freeze problem when using Clion with a medium to large project.

 

in particular, I found a problem of recognition of the library.

An example.

I have the class DAOClassExample.h and in another class, I want to create a new instance of the class DAOClassExample, the latter is not found and can pass even more than 30 seconds before finding it.

I'm using Clion with google type libraries, GLog and Google test

0

CLion was working perfectly until recently that I upgraded my ram from 24gb to 32gb. I thought that my ram had errors so I set them back to standard clock-speed and voltage and still the same problem. I cleared up 70gb of space on my SSD card thinking that maybe my SSD was going bad, which I doubt, its an 850pro 512gb Samsung. So that leads me to believe the problem could be maybe the Java version or code of the newest clion 2019-1.1. I did not experience any problems on 2018.3 but back then I did not have the newer memory. However, I don't want to go back to 2018.3 so please fix it. I'm currently editing the UE_4.22 release engine source code when Clion hangs. It usually happens when I click on the light-bulbs for the auto-correct suggestions.  

0

I have the same problem as Yves Delley CLion hangs in random places and it is very annoying. According to automatic threadDumps it happened 16 times today. I'll try to send you the dumps.
Is there a way to make this processes which blocks everything asynchronous?

1

Same problem here. CLion hangs during more than 60 seconds (recent AMD Ryzen). It happens more and more often, many times a day when editing some lines. I suspect it's an issue with #define lines, but I can't be sure.

1

I was really hoping this would have been solved by 2019 but it is still a severe issue. Many of my colleagues have already abandoned CLion for this reason, I'm still holding out a candle of hope as the rest of it is awesome.

But... the constant freezes for indeterminate time periods (from a few tenths of a second to minutes) is getting hard to take.  With 16 cores and 32GB of Ram my machine should be able to run an editor...

I get the feeling it is related to the GC triggering... at least that is what it feels like.

I wish I could share the code, but its proprietary and I won't get permission for that but I am open to trying ideas if anyone has them?

1

I have sent a couple of dumps to Jetbrains. By the look on them I don't think it's the GC which is the root cause, instead I think of a blocking task (i.e. search & replace) waiting for an asynchronous analysis of the code to be finished.

0

I was hoping this would be solved too, this has been going on for years. I wish we understood better what was causing this, or had some sort of workaround. I'd be happy to have fewer features in exchange for a stable development environment. 

1

This issue really annoyed me, but I think I found a suitable solution.

As projects become bigger, the IDE needs to keep track of more and more stuff going on (especially if including some Boost libraries). So I thought that the memory consumption would rise up but no matter whatsoever sized project I opened, the memory of CLion always stayed within 2 and a bit GB. Having the idea that every IntelliJ-based tool uses the jvm, I remembered a project of mine a while ago, in which the program started having insane freezes when processing large amounts of data. That was because the jvm tried hard with the garbage collection but could not find any data that could be deleted to hold memory consumtion within the given limits. Long story short: the jvm was only allowed to use up to 2GB of heap memory. So I opened up the JVM-Options file of my CLion installation and increased the maximum heap and stack of the jvm and CLion is now working like a charm.

On Windows 64bit I recommend to try editing <clion-install-path>/bin/clion64.exe.vmoptions

In that file change the lines:

-Xss2m

-Xmx2000m

to:

-Xss4m

-Xmx4000m

 

That solved the problem for me.

0

I can confirm, upping the memory available to Clion fixed the issue for me as well.  Using the memory indicator (Settings > Appearance & Behavior > Appearance > Show memory indicator) helped diagnose the issue.  I thought I was fine given that I allowed Clion to use 8GB of ram, but it was maxing out.  I doubled it to 16GB, and now it runs regularly using 10GB, and no more freezing issues.  If you're working on large projects similar to the size of Unreal Engine, and you're freezing, you're probably having the same issue.

I imagine the freezing is Clion walking its massive in-memory index to figure out what it can evict/free to get more space when it needs it.  By increasing memory, it no longer has to evict as often.

1

Hello,

 

I have the same problem. I am working on several huge projects, but there is one which seems that hangs CLion 2020.2. When I try to do a refactoring, often it just hangs (I gave more than 8 GB to CLion).

The project is this:

https://gitlab.com/micrenda/betaboltz

(depends on git submodules and this project: https://gitlab.com/micrenda/zcross )

1

Please sign in to leave a comment.