ugorji / go

idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go]
MIT License
1.86k stars 295 forks source link

decoding MsgPack encoded embedded structure. #348

Closed ghts closed 3 years ago

ghts commented 3 years ago

Dear ugorji.

This is not so clear bug report.

After (and not including) 1.1.13,

More specifically in 1.1.14, 1.2.0, 1.2.1,

there occur error while decoding MsgPack encoded multiple nested embedded struct.

when codec.NewDecoderBytes([]byte, *codec.MsgpackHandle).Decode(SomePointerVariable),

if 'SomePointerVariable' have a nested pointer of struct which also have nested pointer of struct, (double nested struct pointer ??)

there occurs error.

Temporary solution is manually create instance of nested struct pointers in 'SomePointerVariable'.

Until 1.1.13, I had no problem at all without creating(or initializing) nested pointers in the 'SomePointerVariable'.

Maybe, this is not a bug but a performance enhancement featrue. It is your call.

But, initiating every nested embeded pointer of struct before decoding is not the world's most comfortable process.

At this moment, I have no test case for simple test.

But, if you see other user's more detailed report about this, please consider looking into it.

If I can get more detailed and simple 'cause and cure', I will open new issue for reminding.

Thank you for greate code.

ugorji commented 3 years ago

Can you create a small reproducer, that I can run and debug? It's easier to understand that way

ugorji commented 3 years ago

I don't understand what you are describing.

If you can just send me a test case that shows the problem, I can look into it right away. Seeing code will make it clear to me.

ugorji commented 3 years ago

Closing for now until you post a reproducer. I'm not confident that it is not user error, and I don't want to waste time trying to reproduce something that isn't real.

If you have a reproducer, please post and ping @ugorji and I will follow up.

ghts commented 3 years ago

Sorry for late reply.

Opened new issue with reproducing test case.

Thank you for greate code.