On Sat, 10 Dec 2022, Robert Landers wrote:

> On Fri, Dec 9, 2022 at 5:31 PM Tim Düsterhus <t...@bastelstu.be> wrote:
> >
> > On 12/9/22 17:17, Dan Ackroyd wrote:
> > >> If your data fails to
> > >> unserialize, the only safe option is to throw it away.
> > >
> > > Even given that, you probably want to investigate how it got 
> > > corrupted so that you can stop it from happening again. And doing 
> > > that would rely on being able to see the data that you attempted 
> > > to unserialize.
> >
> > That's fair, but does not require dedicated subclasses. 
> > Investigating corrupted serialization data is not something that can 
> > be done programmatically, instead an actual human has to look at the 
> > error message and possibly stack trace within the error log / within 
> > Sentry / whatever floats your boat.
> >
> > I'm not against improving the error messages to more clearly 
> > indicate what part of the serialized data is broken, I'm against 
> > ext-specific or library-specific exception classes for 
> > unserialization failures, because that will lead to assumptions 
> > being made that will not hold in the general case.
> 
> I feel like the RFC could use a bit more clarity around what 
> "unserialize" means. Are we talking about the literal "unserialize()" 
> function, or are we also talking about unserializing a string into a 
> DateTimeInterface object? I took it to mean the latter, and if the 
> latter, then I think putting the original data in the error object is 
> quite important. It's important for generating user-submitted errors, 
> reading data from a database/cache, or other messages.

The "Invalid serialiszation data for * object" errors (they are already 
Error) are used in __set_state and __wakeup — for for both PHP's 
unserialize (the __wakeup) and when calling __set_state with an array 
with values.

Currently these do not provide any other context, and although that can 
be expanded, it is not what this RFC set out to do. I would say that 
improving error/exception/warning messages is out of scope.

I am not saying that we shouldn't do it, but not as part of this RFC. 
I'll reflect it to say so, as well as clarify the serialization 
messages.

cheers,
Derick

-- 
https://derickrethans.nl | https://xdebug.org | https://dram.io

Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support
Host of PHP Internals News: https://phpinternals.news

mastodon: @derickr@phpc.social @xdebug@phpc.social
twitter: @derickr and @xdebug
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to