Page MenuHomePhabricator

PhabricatorWorkerActiveTask continuously reports connection error in logs
Closed, ResolvedPublic

Description

Recently we migrated the mysql database and changed the passwords of some of the users. We configured the new passwords as described in the configuration reference, and everything seem to work alright, but the daemon log is continuously writing this error:

[15-Mar-2016 13:26:29] PHP Fatal error: Call to a member function establishConnection() on a non-object in /opt/phabricator/src/applications/search/engineextension/PhabricatorFulltextIndexEngineExtension.php on line 73

I have tried to trace the php to see the origin of the error, but I'm just useless with PHP.

Event Timeline

General questions about using Phabricator are best in Ponder or IRC. If this is actually a bug report, you must provide full steps that we may locally reproduce the issue. Thanks!

The issue you're experiencing is because you're out of date.

Can you help us understand why you didn't include any version information in the report, or try to update before filing a report?

Many bug reports we receive, including this one, can be resolved by updating, which is why we ask users to update before filing bug reports. If you can't update, we really want you to include version information so we can more quickly identify that your issue is caused by being out of date. If users did this regularly, it would save them a lot of time (their issues would just fix themselves) and us a lot of time (we wouldn't have to go back and forth asking for version information), so we'd really like to improve the report process to get this information more reliably.

This report didn't update and didn't include version information, so I'd like to try to understand why and how we can improve the process.

Let me walk through what we expect: when you file a report, we expect users to see this screen:

version.png (269×1 px, 25 KB)

That screen says:

Bug reports MUST include version information.

This screen also instructs you to read Contributing Bug Reports before you submit a report. That document reinforces how important version information is, and how many issues can be resolved by updating.

Did you miss those instructions, or find them confusing? How could we change or improve this process so that you would have included version information?


Specifically, the issue you're experiencing is because you're out of date. At HEAD, you can see that line 73 of this file doesn't contain a call to establishConnection():

https://secure.phabricator.com/diffusion/P/browse/master/src/applications/search/engineextension/PhabricatorFulltextIndexEngineExtension.php;121e68e3adae4cd21731b79c07ca89676def7e19$73

That's because this issue was fixed in rP96fe8c0b83cf (Dec 22, 2015). You can see the fix here:

https://secure.phabricator.com/diffusion/P/change/master/src/applications/search/engineextension/PhabricatorFulltextIndexEngineExtension.php;96fe8c0b83cf355a49b0f29437f8ba083117f801

Updating will resolve this issue.

This is the version information, but it will be very useful to give instructions of where to look to get it.

phabricator

57909a705ca832001e58d6bef4af41f6c019bacd (Dec 22 2015)

arcanist

8762e3f36715875605a205326bee7bae1f7eb481 (Dec 18 2015)

phutil

b0843cba1270983c9dabbc00af47d8016ffdabc4 (Dec 19 2015)

I will try to update my version and check if it stops happening.

Thanks.

Regards,
Jose.

@jlvillapalos, can you shed some light on why you didn't include that information in the first place or how we could improve the process?

The linked Contributing Bug Reports article shows you where to find version information:

If you can not update for some reason, please include the version of Phabricator you are running when you file a report. You can find the version in Config → Versions in the web UI.

...and you seem to have found these instructions and followed them successfully once you tried.

Why didn't you do this in the original report? (For example, did you read the instructions but choose to ignore them because it was too much work, and that's why you suggest making it easier to find the information? Or did you legitimately try the first time, but weren't able to find the instructions until you looked a second time?)

I don't want to sound like I'm criticizing you, I'd just like to better understand why you didn't follow the instructions. It's OK if laziness is the root cause. Laziness is something we can work to overcome: we can make the reporting process have more steps and force users to enter version information if you skipped this step because you didn't want to bother with it. But this is generally worse for users who do follow the instructions, and we'd like to keep the process as simple as we can. Forcing everyone to go through several pages of report forms (or other similar workflow changes) will help overcome laziness, but hurt good users in the process.

We receive a lot of requests for help where information is missing or the answer would be readily available if a user googled their question. This drains our resources (it takes a lot of time to respond to these reports) and is also much worse for the reporting users! They'd get a better answer more quickly if they just followed the instructions.

We've tried to make the process as clear and simple as possible, and I can't understand rationally why users submit reports like these, since they waste our time and waste the reporting user's time: everyone is much worse off when users ignore the instructions. It is possible that human nature is irrationally lazy and we simply have to accept this in designing these flows, but this is a disappointing outcome.

@epriestley, first time I tried I just wasn't lucky enough to navigate to Config->Versions.
By the way I updated my Phabricator version and it works fine.

Current Versions

phabricator

fd72a2ff810144a80e396e8d68b41f07234e404a (Sat, Mar 12)

arcanist

bb276740e7a87d7af52f9e9295cebf842c247425 (Sat, Mar 12)

phutil

89c7c2072813fd15bc66be8f7acbf2f8bc7e9bb6 (Sat, Mar 12)

Thanks.

epriestley claimed this task.