Hi Sean,

Those kind of errors are the most complicated to debug because it means
there is mostly a problem at the serialization. I mean, the balance between
what the serializer thought it wrote, and what the materializer tries to
materialize, doesn't match. So the error tells you nothing...just that the
stream is not as the materializer expects it.

One of the common cases of this error is that the graph changed while being
serialized. In fact...not even that...more precise...
At serialization time, Fuel does 2 parts: first, it kind of "visits" /
traverses the graph. On a second step it writes the stuff into the stream.
If the graph of objects changed after it has been visited, that means, when
we are writing it into the stream, depending in the graph change, we may
throw FLObjectNotFound (see #signalWith:). However...if the graph changed
while being "traversed" which happens BEFORE writing the stuff into the
stream, or ... if the change is something we cannot easily track (like
object not found), then it is likely the resulting stream is not correct.

Note that is not very easy to have kind of a checksum if you are
serializing a graph of objects that can change while writing it. Some
workarounds are:

1) Analyze what gets written into the stream (I can help you with this),
because sometimes, the traversal of the graph is much bigger than you
imagine, and you end up serializing things you don't know. And that things
you don't know, could change frequently. For example, I remember once I
ended up serializing a morph, that then referenced the World, and so the
cursor and mouse position etc. So..it was IMPOSSIBLE for the graph not to
change while being serialized.

This point may likely come with a "large" resulting stream size.

2) Try to do a "copy" or similar of your chart. If you know what you change
frequently you can either do a copy or similar

3) If you know what could change, you may want to use some of the Fuel
hooks  to avoid those fields, or replace them or ..

4) Run the serialization with a higher processor priority so that it's less
likely others changed your graph of objects. Yes, hacky.

All of these points is only if the problem you mention is because the graph
changes while being serialized. If not...then I am not sure what can be.
Could be a bug. Which Pharo version is it?

Cheers,



On Mon, Aug 3, 2015 at 8:56 PM, Sean P. DeNigris <s...@clipperadams.com>
wrote:

> While materializing, I'm getting a Fuel error that's ground one of my
> projects to a halt. Luckily, there's not *too* much data involved, but I'd
> like to get it back.
>
> <http://forum.world.st/file/n4840866/Screenshot_2015-08-03_19.png>
>
> Ever see anything like this? Any idea what the problem is?
>
> Thanks in advance.
>
>
>
> -----
> Cheers,
> Sean
> --
> View this message in context:
> http://forum.world.st/Fuel-Error-tp4840866.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to