Gert-dev / php-ide-serenata

Atom IDE package that integrates the Serenata server to provide PHP code assistance
https://serenata.gitlab.io/
Other
274 stars 19 forks source link

Redundant indexer info #421

Closed y-morozov closed 6 years ago

y-morozov commented 6 years ago

After installing (and reinstalling) this package there's a constantly growing info block with duplicates (see screenshot attached)

This happens when I edit my files.

Actually, I don't need indexing info at all. Is there a way to disable this popup?

screenshot 2018-05-10 14 13 32

mundschenk-at commented 6 years ago

There seems to be a problem with the re-indexing never ending (possibly related to switching from php-integrator to php-ide-serenata?).

y-morozov commented 6 years ago

@mundschenk-at yes, integrator was auto-updated to serenata. Should I perform some extra actions (like force reindexing)?

mundschenk-at commented 6 years ago

I don't know, I've just observed the same behavior.

y-morozov commented 6 years ago

Okay, seems like using packages - serenata - 'forcibly reindex project' fixed this issue for me.

mundschenk-at commented 6 years ago

Not sure if it is related, but in the projects with the redundant notification, I didn't get any of the function information popups (annotations? not sure what they are called). After experimenting unsuccessfully with project reindexing, I had a look at projects.cson and noticed that the two non-working projects had some old php-integrator settings included, where as all the newer projects did not. I removed the php keys for the two projects and now everything seems to work OK.

twifty commented 6 years ago

@mundschenk-at Funny, I came across the exact same bug, where settings entries were still present after being removed from the package, in my own project.

I'm going to say this is a bug within atom itself. All settings related to a package should be removed when a package is removed. It is too much of a burden upon devs to remove unused/renamed setting keys. Since we never know from which version to which version a user is updating, it would require keeping track of all changes throughout time or manually editing the .atom/config.cson file.

y-morozov commented 6 years ago

@mundschenk-at @twifty Actually if you do "Packages - Serenata - Set up current project" the 'php_integrator' section will come back. Probably just an old key naming.

twifty commented 6 years ago

@y-morozov That sounds like a bug for sure. Without looking into the source, I think the package is aiming to use the in-project-root project.cson and remove a dependency on the project-manager package. Perhaps something was missed in the cross over?

7samurai commented 6 years ago

i have the same problem, also updated from php-integrator. packages - serenata - 'forcibly reindex project' don´t help at my case

y-morozov commented 6 years ago

@7samurai check logs, btw (view - developer - toggle dev tools) In my case there was also server crash due to lack of memory.

7samurai commented 6 years ago

@y-morozov bildschirmfoto 2018-05-14 um 11 52 21 This one was the only massage related to serenata

cdaguerre commented 6 years ago

I'm not sure if it's the exact same problem but I think I have a reproducible case for this issue. I've been experiencing this issue for quite some time (way before the rename to serenata) and it always seems to occur when I'm working on some file using the Symfony Config TreeBuilder. Maybe it's because of all the fluent interfaces.... The following should reproduce the issue:

debug 480

7samurai commented 6 years ago

I notice, that the spinner always rotate, even if i dont input anything. If i hit space, there comes an new indexing message to the notification. I unchecked the index contin.. checkbox, its ok in my case.

bildschirmfoto 2018-05-14 um 12 49 38
7samurai commented 6 years ago

Update: Today its spinning & indexing again :(

Gert-dev commented 6 years ago

There are multiple issues here, I'll go over them one by one.

The project key is, confusingly, indeed still called php_integrator and was not renamed (yet) because it will break existing projects. I created #426 for this.

I believe the case of @cdaguerre is a special one and not a bug in this package, but one in the Serenata server that causes slowdowns with fluent interfaces. It seems you have a massive one and I've seen the server slow down to a crawl on much smaller ones.

If you're seeing these messages whilst the initial project indexing is still running, you're a victim of this issue and this is currently expected behavior due to the server's natural queueing behavior - it can probably be improved though, but the server would need to support prioritizing certain indexes over others.

Finally, if this is happening to you and none of the above problems apply, ensure you do not have the XDebug extension loaded, as is the case of @7samurai . You may think that it does not matter much, but it matters a great deal, as @twifty is already well aware of as well :smile: . Disable XDebug in your php.ini file or, if you need it for other projects, you can try using the experimental Docker support, which also does not have it enabled. Alternatively, you could use a script as PHP binary that uses an alternative php.ini file that does not load the extension.

y-morozov commented 6 years ago

I confirm that. Disabling XDebug resolved my issues.

As for now, my setup is as follows:

Code runs inside VirtualBox VM (ubuntu + nginx .+ php-fpm), xdebug enabled. Serenata runs on host machine (macos, php 7.1.14), xdebug disabled.

So I have debug as well as code intel at the same time.

dchotas-tf commented 6 years ago

@Gert-dev What I'm witnessing on my side is full re-indexing of my projects whenever I jump to them via project-manager or simply by reloading the atom window. Is this expected behaviour? If not, what info could I provide to help debug this?

ameenross commented 6 years ago

Alternatively, you could use a script as PHP binary that uses an alternative php.ini file that does not load the extension.

I just did that, if anyone is interested, here is the gist (may require adding some more extensions): https://gist.github.com/ameenross/faed18fdea5d78d6993c619b42097cc0

However, everything is still broken (including click-through). I tried removing my projects.cson and it didn't help.

ameenross commented 6 years ago

I removed the entire cache directory for the package, forcing the package to re-download and install the core and start indexing from scratch. It seems to work now.

However, I still think there are race conditions in the package somewhere. Even with xdebug enabled, I never experienced any problems with indexing before. Sure, the initial run took long and appears to be faster now, but that can't explain why the indexing gets hung up completely and does nothing for hours on end.

Gert-dev commented 6 years ago

You may be interested to know that the latest release v4.2.0 uses the latest version of the Serenata server 4.1.0, which will automatically restart itself without Xdebug enabled if it detects it. In theory, you should just be able to leave Xdebug enabled now and it should take care of itself.

Gert-dev commented 6 years ago

@dchotas-tf If you are still experiencing your issue, please open a new issue (I think it is unrelated to this one).

@ameenross That is very possible, if something happens to the socket, there is a communications breakdown between the client and server. The server probably isn't going into an infinite loop (in that case the PHP process usually skyrockets), but it could cause no responses to be received by the client, so it thinks nothing is happening anymore.

I'll close this since most of the original problems have been solved (Xdebug causing slowdowns). Other improvements could involve the server prioritizing manually caused reindex requests over those generated from project indexing, which should be tracked in the server bug tracker instead.

ameenross commented 6 years ago

will automatically restart itself without Xdebug enabled

Oh that's a really nice feature, thanks!

I'm sure you will be glad to hear that it has been running quite stable lately. Thanks again for your efforts.