baimard / gestion

https://baimard.github.io/gestion
GNU Affero General Public License v3.0
72 stars 8 forks source link

Internal server error when try to open the Gestion app #393

Open riotweb opened 6 months ago

riotweb commented 6 months ago

Describe the bug Internal server error when try to open the Gestion app

To Reproduce Steps to reproduce the behavior:

  1. Updated Gestion to current version 2.5.1
  2. Click on Gestion App
  3. See error "internal server error"

Desktop :

Additional context I use a shared webhosting on allinkl.com (professional) Nextcloud Hub 8 (29.0.0) Linux 5.4.0-181-generic x86_64 PHP 8.2.18

some content from the logfile:

TableNotFoundException An exception occurred while executing a query: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'xxxxx.oc_gestion_conf_share' doesn't exist

Undefined variable $prop at /www/htdocs/xxxxx/nextcloud/apps/gestion/lib/Controller/PageController.php#97

Creation of dynamic property OCA\Gestion\Settings\GestionAdmin::$idNextcloud is deprecated at /www/htdocs/xxxxx/nextcloud/apps/gestion/lib/Settings/GestionAdmin.php#26

riotweb commented 6 months ago

Edit: After deinstall and new install: still same problem

baimard commented 1 month ago

is it better with 2.6.1 ?

Art4 commented 1 month ago

I have the same problem with 2.6.2

baimard commented 1 month ago

is it on the same share webhosting ?

Art4 commented 1 month ago

is it on the same share webhosting ?

No, I'm using a Nextcloud hosting service.

baimard commented 1 month ago

It's complicated for me to reproduced. could you provide me access to your instance ?

Art4 commented 1 month ago

It's complicated for me to reproduced. could you provide me access to your instance ?

I'm sorry, that's not possible in my case. I will try to access the logs.

The installation works without problems, but after I click on the Gestion icon I instantly get an internal server error.

I have copied the technical details, that might help you.

Technische Details

    Entfernte Adresse: [confidential]
    Anfragekennung: [confidential]
    Typ: Doctrine\DBAL\Exception\TableNotFoundException
    Code: 1146
    Nachricht: An exception occurred while executing a query: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[confidential]_oc.oc_gestion_conf_share' doesn't exist
    Datei: [confidential]/public_html/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php
    Zeile: 49

Trace

#0 [confidential]/public_html/3rdparty/doctrine/dbal/src/Connection.php(1943): Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert()
#1 [confidential]/public_html/3rdparty/doctrine/dbal/src/Connection.php(1885): Doctrine\DBAL\Connection->handleDriverException()
#2 [confidential]/public_html/3rdparty/doctrine/dbal/src/Statement.php(194): Doctrine\DBAL\Connection->convertExceptionDuringQuery()
#3 [confidential]/public_html/lib/private/DB/PreparedStatement.php(86): Doctrine\DBAL\Statement->execute()
#4 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(426): OC\DB\PreparedStatement->execute()
#5 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(31): OCA\Gestion\Db\Bdd->execSQLNoJsonReturn()
#6 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(316): OCA\Gestion\Db\Bdd->getCompaniesList()
#7 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(99): OCA\Gestion\Controller\PageController->getCompaniesList()
#8 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(232): OCA\Gestion\Controller\PageController->index()
#9 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(138): OC\AppFramework\Http\Dispatcher->executeController()
#10 [confidential]/public_html/lib/private/AppFramework/App.php(184): OC\AppFramework\Http\Dispatcher->dispatch()
#11 [confidential]/public_html/lib/private/Route/Router.php(338): OC\AppFramework\App::main()
#12 [confidential]/public_html/lib/base.php(1050): OC\Route\Router->match()
#13 [confidential]/public_html/index.php(49): OC::handleRequest()
#14 {main}

Vorige

#0 [confidential]/public_html/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(132): Doctrine\DBAL\Driver\PDO\Exception::new()
#1 [confidential]/public_html/3rdparty/doctrine/dbal/src/Statement.php(190): Doctrine\DBAL\Driver\PDO\Statement->execute()
#2 [confidential]/public_html/lib/private/DB/PreparedStatement.php(86): Doctrine\DBAL\Statement->execute()
#3 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(426): OC\DB\PreparedStatement->execute()
#4 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(31): OCA\Gestion\Db\Bdd->execSQLNoJsonReturn()
#5 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(316): OCA\Gestion\Db\Bdd->getCompaniesList()
#6 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(99): OCA\Gestion\Controller\PageController->getCompaniesList()
#7 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(232): OCA\Gestion\Controller\PageController->index()
#8 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(138): OC\AppFramework\Http\Dispatcher->executeController()
#9 [confidential]/public_html/lib/private/AppFramework/App.php(184): OC\AppFramework\Http\Dispatcher->dispatch()
#10 [confidential]/public_html/lib/private/Route/Router.php(338): OC\AppFramework\App::main()
#11 [confidential]/public_html/lib/base.php(1050): OC\Route\Router->match()
#12 [confidential]/public_html/index.php(49): OC::handleRequest()
#13 {main}

Vorige

#0 [confidential]/public_html/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(130): PDOStatement->execute()
#1 [confidential]/public_html/3rdparty/doctrine/dbal/src/Statement.php(190): Doctrine\DBAL\Driver\PDO\Statement->execute()
#2 [confidential]/public_html/lib/private/DB/PreparedStatement.php(86): Doctrine\DBAL\Statement->execute()
#3 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(426): OC\DB\PreparedStatement->execute()
#4 [confidential]/public_html/apps/gestion/lib/Db/Bdd.php(31): OCA\Gestion\Db\Bdd->execSQLNoJsonReturn()
#5 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(316): OCA\Gestion\Db\Bdd->getCompaniesList()
#6 [confidential]/public_html/apps/gestion/lib/Controller/PageController.php(99): OCA\Gestion\Controller\PageController->getCompaniesList()
#7 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(232): OCA\Gestion\Controller\PageController->index()
#8 [confidential]/public_html/lib/private/AppFramework/Http/Dispatcher.php(138): OC\AppFramework\Http\Dispatcher->executeController()
#9 [confidential]/public_html/lib/private/AppFramework/App.php(184): OC\AppFramework\Http\Dispatcher->dispatch()
#10 [confidential]/public_html/lib/private/Route/Router.php(338): OC\AppFramework\App::main()
#11 [confidential]/public_html/lib/base.php(1050): OC\Route\Router->match()
#12 [confidential]/public_html/index.php(49): OC::handleRequest()
#13 {main}
Art4 commented 1 month ago

In https://github.com/baimard/gestion/blob/2.6.2/lib/Db/Bdd.php#L30 I can see that the tablename oc_gestion_conf_share is hardcoded. I assume, this has to be something like this:

- ... (SELECT id_configuration FROM oc_gestion_conf_share WHERE id_nextcloud = ?)";
+ ... (SELECT id_configuration FROM `".$this->tableprefix."conf_share` WHERE id_nextcloud = ?)";
baimard commented 1 month ago

How my god, you're totaly right !

I will fix that today ! I'm soo sorry !