FriendsOfREDAXO / developer

Ermöglicht die Bearbeitung von Templates, Modulen und Aktionen im Dateisystem (also mit einem beliebigen Editor).
MIT License
90 stars 11 forks source link

Doppelte Ordner sollten nicht zu Whooops führen #92

Closed alxndr-w closed 2 years ago

alxndr-w commented 3 years ago

Durch Umbenennung und lokalen Upload können mitunter 2 Ordner mit selber ID entstehen, sodass developer in Frontend und Backend abstürzen.

Es sollte möglich sein, wenn der Ordner doppelt vorkommt, diesen automatisch unschädlich zu machen oder zumindest die Funktionalität des Backend zu gewährleisten, statt eines Whoops.

ErrorException: There are two item directories with the same ID: "xxx [1]" and "Standard [1]" File: redaxo/src/addons/developer/lib/synchronizer.php Line: 118

Stacktrace | Function | File | Line | | ------------------------------------------------- | ------------------------------------------------ | -------- | | rex_error_handler::handleError | | | | trigger_error | redaxo/src/addons/developer/lib/synchronizer.php | 118 | | rex_developer_synchronizer->getNewAndExistingDirs | redaxo/src/addons/developer/lib/synchronizer.php | 90 | | rex_developer_synchronizer->run | redaxo/src/addons/developer/lib/manager.php | 184 | | rex_developer_manager::{closure} | | | | array_walk | redaxo/src/addons/developer/lib/manager.php | 191 | | rex_developer_manager::synchronize | redaxo/src/addons/developer/lib/manager.php | 167 | | rex_developer_manager::start | redaxo/src/addons/developer/boot.php | 17 | | rex_package->{closure} | redaxo/src/core/lib/extension.php | 49 | | rex_extension::{closure} | redaxo/src/core/lib/util/timer.php | 54 | | rex_timer::measure | redaxo/src/core/lib/extension.php | 56 | | rex_extension::registerPoint | redaxo/src/core/packages.php | 31 | | include_once | redaxo/src/core/backend.php | 200 | | require | redaxo/src/core/boot.php | 137 | | require | redaxo/index.php | 9 |
System report (REDAXO 5.11.1, PHP 7.4.11, MariaDB 10.2.34) | REDAXO | | | ------------: | :--------- | | Version | 5.11.1 | | PHP | | | ------------: | :--------- | | Version | 7.4.11 | | OPcache | yes | | Xdebug | no | | Database | | | ------------: | :-------------- | | Version | MariaDB 10.2.34 | | Character set | utf8mb4 | | Server | | | ------------: | :--------- | | OS | Linux | | SAPI | fpm-fcgi | | Webserver | Apache | | Request | | | ------------: | :------------------ | | Browser | Chrome/87.0.4280.88 | | Protocol | HTTP/2.0 | | HTTPS | yes | | Packages | | | ----------------------: | :---------- | | accessdenied | 1.0.6 | | across | 3.0.0-dev23 | | across/backend | 3.0.0 | | adminer | 1.8.2 | | backup | 2.6.2 | | be_style | 2.11.1 | | be_style/customizer | 2.11.0 | | be_style/redaxo | 2.11.1 | | bloecks | 3.0.0 | | bloecks/cutncopy | 3.0.0 | | bloecks/status | 3.0.0 | | cke5 | 4.2.1 | | consent_manager | 2.0.1 | | cronjob | 2.7.1 | | cronjob/article_status | 2.7.1 | | cronjob/optimize_tables | 2.7.1 | | developer | 3.9.0 | | events | 2.0.0-dev | | feeds | 3.1 | | install | 2.8.0 | | maintenance | 2.5.0 | | markitup | 3.6.0 | | mblock | 3.1.0 | | media_manager | 2.10.1 | | mediapool | 2.9.0 | | metainfo | 2.7.2 | | mform | 5.3.1 | | mform/docs | 1.0 | | minify | 2.2 | | neues | 2.0.0-dev | | phpmailer | 2.9.1 | | project | dev | | quick_navigation | 3.9.5 | | sprog | 1.2.0 | | structure | 2.11.1 | | structure/content | 2.11.1 | | structure/history | 2.11.0 | | structure/version | 2.11.0 | | theme | 1.2.0 | | uploader | 2.2.0 | | url | 2.0.0-beta3 | | users | 2.7.1 | | watson | 2.2.0 | | ycom | 4.0.3 | | ycom/auth | 4.0.3 | | ycom/docs | 4.0.3 | | ycom/group | 4.0.3 | | yform | 3.4.1 | | yform/email | 3.4.1 | | yform/manager | 3.4.1 | | yform/tools | 3.4.1 | | yform_geo_osm | 1.2.3 | | yform_spam_protection | 1.0.5 | | yform_usability | 1.4 | | yrewrite | 2.7 | | zip_install | 1.1 |
alxndr-w commented 3 years ago

Wohlgemerkt gibt es 2 verschiedene Whooops, die aber denselben Fehler als Ursache haben. Hier konnte ich den 2. noch nicht reproduzierbar machen.

gharlan commented 3 years ago

Hmm, finde da eigentlich das Verhalten gut. Die Meldung ist denke ich verständlich, es ist eindeutig ein Problem, und kann aus meiner Sicht nicht sinnvoll automatisiert gelöst werden. Ich fände es auch verwirrend, wenn sich developer da zum beispiel für einen Ordner entscheiden würde, sondern möchte als Entwickler lieber selbst das Problem dann lösen. Und ich denke, dass man es eigentlich auch nur sinnvoll über das Dateisystem lösen kann, und nicht über das Backend.

alxndr-w commented 3 years ago

Jetzt wünschte ich mir den anderen Whoops zurück, der komplett unaussagekräftig war. Die Konstellation war auch Ursprung für das Issue und ließ sich mit dem entfernen des falschen Ordners beheben.

gharlan commented 2 years ago

Aus den genannten Gründen schließe ich hier.