aces / Loris

LORIS is a web-accessible database solution for longitudinal multi-site studies.
GNU General Public License v3.0
142 stars 172 forks source link

[examiner] Duplicate entry error not caught, modal window has nested LORIS error page rather than helpful message #7051

Open jesscall opened 3 years ago

jesscall commented 3 years ago

Describe the bug Modal window error has a nested LORIS error page. Also getting a DB error for duplicate entry into examiners_psc_rel table.

To Reproduce Steps to reproduce the behavior (attach screenshots if applicable):

  1. Go to Examiner module
  2. Create examiner with any site.
  3. Try creating another examiner with the same name/site combo
  4. See error

What did you expect to happen? A modal window with error saying that the examiner at that site already exists. Instead you see a modal window with an error on a LORIS webpage somethign went wrong on the backend.

Screen Shot 2020-09-21 at 1 33 56 PM

Error log:

[Mon Sep 21 12:38:15.800195 2020] [php7:warn] [pid 29351] [client ::1:45476] PHP Warning:  PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '28-2' for key 'PRIMARY' in /var/www/loris/php/libraries/Database.class.inc on line 424, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800414 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice:  Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1512, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800442 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice:  Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1513, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800459 2020] [php7:notice] [pid 29351] [client ::1:45476] PHP Notice:  Undefined property: PDO::$errorInfo in /var/www/loris/php/libraries/Database.class.inc on line 1514, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800569 2020] [php7:notice] [pid 29351] [client ::1:45476] Could not execute INSERT INTO examiners_psc_rel SET `examinerID`=:examinerID,`centerID`=:centerID. Stack trace#0 /var/www/loris/php/libraries/Database.class.inc(252): Database->_realinsert('examiners_psc_r...', Array, true)\n#1 /var/www/loris/modules/examiner/php/examiner.class.inc(258): Database->insert('examiners_psc_r...', Array)\n#2 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(82): LORIS\\examiner\\Examiner->_process(Array)\n#3 /var/www/loris/php/libraries/LorisForm.class.inc(1432): NDB_Menu_Filter_Form->_save(Array)\n#4 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(50): LorisForm->process(Array)\n#5 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(110): NDB_Menu_Filter_Form->save()\n#6 /var/www/loris/src/Middleware/UserPageDecorationMiddleware.php(238): NDB_Menu_Filter_Form->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#7 /var/www/loris/src/Middleware/PageDecorationMiddleware.php(56): LORIS\\Middleware\\UserPageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#8 /var/www/loris/php/libraries/NDB_Page.class.inc(698): LORIS\\Middleware\\PageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#9 /var/www/loris/php/libraries/Module.class.inc(412): NDB_Page->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#10 /var/www/loris/src/Middleware/ResponseGenerator.php(50): Module->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#11 /var/www/loris/src/Middleware/AuthMiddleware.php(63): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#12 /var/www/loris/src/Router/ModuleRouter.php(74): LORIS\\Middleware\\AuthMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#13 /var/www/loris/src/Middleware/ExceptionHandlingMiddleware.php(34): LORIS\\Router\\ModuleRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#14 /var/www/loris/src/Router/BaseRouter.php(112): LORIS\\Middleware\\ExceptionHandlingMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\ModuleRouter))\n#15 /var/www/loris/src/Middleware/ResponseGenerator.php(50): LORIS\\Router\\BaseRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#16 /var/www/loris/src/Middleware/ContentLength.php(52): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#17 /var/www/loris/htdocs/index.php(48): LORIS\\Middleware\\ContentLength->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#18 {main}, referer: http://localhost:8080/examiner/?examiner=jess
[Mon Sep 21 12:38:15.800717 2020] [php7:notice] [pid 29351] [client ::1:45476] Insert statement did not execute successfully: SQLSTATE: . ERROR CODE: . ERROR MESSAGE: #0 /var/www/loris/php/libraries/Database.class.inc(252): Database->_realinsert('examiners_psc_r...', Array, true)\n#1 /var/www/loris/modules/examiner/php/examiner.class.inc(258): Database->insert('examiners_psc_r...', Array)\n#2 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(82): LORIS\\examiner\\Examiner->_process(Array)\n#3 /var/www/loris/php/libraries/LorisForm.class.inc(1432): NDB_Menu_Filter_Form->_save(Array)\n#4 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(50): LorisForm->process(Array)\n#5 /var/www/loris/php/libraries/NDB_Menu_Filter_Form.class.inc(110): NDB_Menu_Filter_Form->save()\n#6 /var/www/loris/src/Middleware/UserPageDecorationMiddleware.php(238): NDB_Menu_Filter_Form->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#7 /var/www/loris/src/Middleware/PageDecorationMiddleware.php(56): LORIS\\Middleware\\UserPageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#8 /var/www/loris/php/libraries/NDB_Page.class.inc(698): LORIS\\Middleware\\PageDecorationMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#9 /var/www/loris/php/libraries/Module.class.inc(412): NDB_Page->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Examiner))\n#10 /var/www/loris/src/Middleware/ResponseGenerator.php(50): Module->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#11 /var/www/loris/src/Middleware/AuthMiddleware.php(63): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#12 /var/www/loris/src/Router/ModuleRouter.php(74): LORIS\\Middleware\\AuthMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\examiner\\Module))\n#13 /var/www/loris/src/Middleware/ExceptionHandlingMiddleware.php(34): LORIS\\Router\\ModuleRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#14 /var/www/loris/src/Router/BaseRouter.php(112): LORIS\\Middleware\\ExceptionHandlingMiddleware->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\ModuleRouter))\n#15 /var/www/loris/src/Middleware/ResponseGenerator.php(50): LORIS\\Router\\BaseRouter->handle(Object(Laminas\\Diactoros\\ServerRequest))\n#16 /var/www/loris/src/Middleware/ContentLength.php(52): LORIS\\Middleware\\ResponseGenerator->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#17 /var/www/loris/htdocs/index.php(48): LORIS\\Middleware\\ContentLength->process(Object(Laminas\\Diactoros\\ServerRequest), Object(LORIS\\Router\\BaseRouter))\n#18 {main}, referer: http://localhost:8080/examiner/?examiner=jess
GeorgeMurad commented 9 months ago

@CamilleBeau, I have tested this issue and it seems solved already.