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

Fix breaking interaction of Exporter and Module::Refresh, leading to internal server errors after adding/removing certain modules (e.g. Kernel/Language) during package (de)installation. #3762

Open
svenoe opened this issue Sep 5, 2024 · 3 comments
Labels
bug Something isn't working as intended
Milestone

Comments

@svenoe
Copy link
Contributor

svenoe commented Sep 5, 2024

When (de)installing a package which brings Custom/Kernel/Language.pm, OTOBO will run into a server error until container/apache/... restart. The error occurs at the first instance where in a new request Translatable() which is imported via use Kernel::Language qw(Translatable) is called, with the process complaining about an undefined function. @bschmalhofer had a more detailed look, to my understanding Module::Refresh removes the somewhere cached method, when Custom/Kernel/Language.pm is added or removed. This does not affect many other modules, Kernel/System/VariableCheck.pm would come to my mind, but it should be solved nonetheless.

@svenoe svenoe added the bug Something isn't working as intended label Sep 5, 2024
@svenoe svenoe added this to the OTOBO 10.1.11 milestone Sep 5, 2024
@stefanhaerter
Copy link
Contributor

stefanhaerter commented Sep 5, 2024

Edit - Autoload most likely is not affected

@svenoe
Copy link
Contributor Author

svenoe commented Sep 5, 2024

Edit - see above

@bschmalhofer
Copy link
Contributor

Here is my preliminary analysis for a system that has Kernel::Language installed in the Custom folder.Please take it with a grain of salt.

  1. Webserver is running with a persistent Perl
  2. There are compiled modules with the Translatable method mapped to a entry in the symbol table
  3. The entry in the symbol table contains 'Custom' in its name
  4. The file in the custom folder in uninstalled => Module::Refresh removes the symbol
  5. The next HTTP request tries to run with a symbol that no longer exists => BIG FAIL

@svenoe svenoe modified the milestones: OTOBO 10.1.11, OTOBO 10.1.12 Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as intended
Projects
None yet
Development

No branches or pull requests

3 participants