Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP Fatal error after upgrade to 14.0.0 #11225

Closed
doronbehar opened this issue Sep 14, 2018 · 16 comments
Closed

PHP Fatal error after upgrade to 14.0.0 #11225

doronbehar opened this issue Sep 14, 2018 · 16 comments
Labels

Comments

@doronbehar
Copy link

Steps to reproduce

  1. Upgrade to 14.0.0.
  2. restart httpd.

Expected behaviour

I don't get any errors and my Nextcloud instance works.

Actual behaviour

I get a fatal PHP error in httpd's logs:

http logs
[Fri Sep 14 17:36:59.957533 2018] [php7:error] [pid 7653] [client <>:47634] PHP Fatal error:  Uncaught OCP\\AppFramework\\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\\AppFramework\\Utility\\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\\AppFramework\\Utility\\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('OC\\\\Authenticati...')
#5 /usr/share/webapps/nextcl in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 11

Server configuration

  • Operating system: Arch Linux

  • Web server: Apache 2.4.34

  • Database: Postgresql

  • PHP version: 7.2.10

  • Nextcloud version: 14.0.0

  • Updated from an older Nextcloud/ownCloud or fresh install: 13.0.6

  • Where did you install Nextcloud from: Distribution repositories.

  • Signing status: I can't login as admin user into your Nextcloud and access http://example.com/index.php/settings/integrity/failed since the server doesn't work at all.

  • Running sudo -u http php occ app:list gives:

sudo -u http php occ app:list
An unhandled exception has been thrown:
OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
#5 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')
#6 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OC\\Authenticati...')
#7 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#8 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OC\\Authenticati...')
#9 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')
#10 /usr/share/webapps/nextcloud/lib/private/Server.php(364): OC\ServerContainer->query('OC\\Authenticati...')
#11 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#12 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OCP\\IUserSessio...')
#13 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OCP\\IUserSessio...')
#14 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OCP\\IUserSessio...')
#15 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#16 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('UserSession')
#17 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('UserSession')
#18 /usr/share/webapps/nextcloud/lib/private/Server.php(1408): OC\ServerContainer->query('UserSession')
#19 /usr/share/webapps/nextcloud/lib/private/Server.php(683): OC\Server->getUserSession()
#20 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#21 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OC\\App\\AppManag...')
#22 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\App\\AppManag...')
#23 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OC\\App\\AppManag...')
#24 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#25 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('AppManager')
#26 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('AppManager')
#27 /usr/share/webapps/nextcloud/lib/private/Server.php(1703): OC\ServerContainer->query('AppManager')
#28 /usr/share/webapps/nextcloud/lib/private/legacy/app.php(342): OC\Server->getAppManager()
#29 /usr/share/webapps/nextcloud/lib/private/legacy/app.php(113): OC_App::getEnabledApps()
#30 /usr/share/webapps/nextcloud/lib/base.php(654): OC_App::loadApps(Array)
#31 /usr/share/webapps/nextcloud/lib/base.php(1070): OC::init()
#32 /usr/share/webapps/nextcloud/console.php(46): require_once('/usr/share/weba...')
#33 /usr/share/webapps/nextcloud/occ(11): require_once('/usr/share/weba...')
#34 {main}
  • Running sudo -u http php occ config:list system gives: Same result.

  • Contents of config.php:

Contents of config.php
<?php
$CONFIG = array (
  'instanceid' => '***',
  'passwordsalt' => '***',
  'secret' => '***',
  'trusted_domains' => 
  array (
    0 => 'nextcloud.doronbehar.com',
  ),
  'datadirectory' => '/usr/share/webapps/nextcloud/data',
  'overwrite.cli.url' => 'https://nextcloud.doronbehar.com/nextcloud',
  'dbtype' => 'pgsql',
  'version' => '14.0.0.19',
  'dbname' => '***',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => '***',
  'installed' => true,
  'mail_from_address' => 'nextcloud-noreply',
  'mail_smtpmode' => 'php',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_domain' => 'doronbehar.com',
  'theme' => '',
  'loglevel' => 2,
  'maintenance' => false,
);

  • Are you using external storage, if yes which one: no

  • Are you using encryption: no

  • Are you using an external user-backend, if yes which one: no

Client configuration

  • Browser: Any

  • Operating system: Any

Logs

Web server error log

Same as posted above:

Web server error log
[Fri Sep 14 17:36:59.957533 2018] [php7:error] [pid 7653] [client <>:47634] PHP Fatal error:  Uncaught OCP\\AppFramework\\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\\AppFramework\\Utility\\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\\AppFramework\\Utility\\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('OC\\\\Authenticati...')
#5 /usr/share/webapps/nextcl in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 11

Nextcloud log (data/nextcloud.log)

Nextcloud log

I get mainly errors with strings such as:

"method":"GET",
"url":"http:\/\/54.37.204.184:80\/phpmyadmin\/",
"message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"The requested uri(http:\\\/54.37.204.184:80\\\/phpmyadmin\\\/) cannot be processed by the script '\\\/nextcloud\\\/index.php')

Browser log

Irrelevant

@nextcloud-bot
Copy link
Member

GitMate.io thinks possibly related issues are #6299 (Fatal Errors), #1282 ( Authentication problem after upgrade to 10.0.0), #8754 (White page / Error 500 after Upgrade from Nextcloud 12.0.4 to 13 ), and #7788 (Android client unable to login via default login method (class appName does not exist)).

@doronbehar
Copy link
Author

BTW I have tried to downgrade back to 13.0.6 and I still get the same errors. This lead me to conclude it be related to a recent PHP upgrade so I tried to downgrade these as well and I still get the same errors.

@jwrangel
Copy link

Same here.
Centos 7.5.1804
Apache/2.4.6 (CentOS)
PHP 7.1.22

[14-Sep-2018 18:18:29 UTC] PHP Fatal error:  Uncaught OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
#1 /nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
#2 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
#3 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
#5 /nextcloud/lib/private/Serve in /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 110

@jwrangel
Copy link

OK - It has been fixed!
This error occured after an restore of the mysql.users table, where the nextcloud user was missing!
After add and grand access for the nextcloud user, everythings works fine now.

@chris42
Copy link

chris42 commented Sep 15, 2018

I get a similar error after upgrading to version 14. However server was running good for a day, now I cannot access it via frontend, nor by backend. Always get:

...
2018/09/15 16:15:25 [error] 6#6: *17 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
#1 /var/www/html/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
#2 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
#3 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
#5 /var/www/html/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\Simp...
...

I checked mysql.user and user nextcloud is still available.
I am using the official docker image with fpm (dded33639e42).

@doronbehar
Copy link
Author

Thanks @jwrangel for pointing me to check on my SQL service as well, I use PostgreSQL and from some reason it fails to start on boot. Right after I restarted it everything goes back to normal so that's not a problem from Nextcloud side.

@chris42
Copy link

chris42 commented Sep 15, 2018

Found a mysql connection error as well. Sorry for the confusion.

Only question: Why is there not an error coming up, like "Cannot connect to DB"

@pjsanon
Copy link

pjsanon commented Sep 17, 2018

@chris42 what kind of mysql connection error where you getting and where was it logged?
Thank you.

@chris42
Copy link

chris42 commented Sep 17, 2018

@pjsanon
As said, I did not get an error in nextcloud or nginx (Or any other sensible place). Found the error in my docker setup with a container trying to connect to an IP non existent. Was lucky that I was checking IP traffic via iptables logs as trying to change some rules during that time.

@icewind1991
Copy link
Member

#11316 should help getting a meaningful error message

@MorrisJobke
Copy link
Member

Could you apply the linked patch and check if the error message gets more helpful?

@chris42
Copy link

chris42 commented Sep 28, 2018

@MorrisJobke you mean PR #11316 ?
I can apply it on my test system and cut the db connection. However I do not have an upgrade scenario available.

@MorrisJobke
Copy link
Member

@MorrisJobke you mean PR #11316 ?

Yes.

@chris42
Copy link

chris42 commented Sep 29, 2018

It seems to work. I get the following error when using PR #11316 and cutting the DB connection.

Sep 29 23:54:18 docker/nginx[681]: PHP message: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/lib/private/DB/Connection.php:64

@MorrisJobke
Copy link
Member

Sep 29 23:54:18 docker/nginx[681]: PHP message: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused in

There is not much we can do, when the database refuses the connection. Check the forums for help with this, as this is more a setup issue then.

@jospoortvliet
Copy link
Member

jospoortvliet commented Nov 20, 2018

Let's close this if it is a configuration/database issue and not a bug. Feel free to re-open if you can confirm it isn't the database puking out but caused by something in Nextcloud code itself!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants