Skip to content

fix(log): skip uninitialized lazy objects when serializing traces - #66168

Closed
lazerg wants to merge 1 commit into
nextcloud:masterfrom
lazerg:fix/issue-66167-lazy-ghost-serializer
Closed

lazerg wants to merge 1 commit into
nextcloud:masterfrom
lazerg:fix/issue-66167-lazy-ghost-serializer

Conversation

@lazerg

@lazerg lazerg commented Nov 3, 2026

Copy link
Copy Markdown

Summary

When a lazy ghost's initializer throws and the exception gets logged, encodeArg() calls get_object_vars() on the still uninitialized ghost from the trace args. That runs the initializer again, and the new exception escapes the logger, which is what breaks occ upgrade in SchemaChecker for disabled apps on PHP 8.4.

Uninitialized lazy objects are now logged with only their class name, so the initializer never runs from the logger. Added a test that fails before the change.

TODO

  • ...

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

Assisted-by: ClaudeCode:claude-opus-5-5
Signed-off-by: lazerg <lazerg2@gmail.com>
@come-nc

come-nc commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

See #66169 that was used instead.

@come-nc come-nc closed this Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SchemaChecker fails upgrade in some community apps

2 participants