You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by David Reiss <dr...@fb.com> on 2011/12/13 01:43:09 UTC

Re: C++ fingerprint data

> 1) How are ascii_fingerprint and binary_fingerprint intended to be used?
I think it was only used by the DenseProtocol.  I'm not aware of
anything else that ever used it, but I could be forgetting something.
Probably not something very critical, though (maybe like the Java
Serialization ID or something like that).

> 2) Why do their definitions change (the contents change) sometimes when nothing else in the generated C++ source file changes?
Is it possible that there was a change in one of the included Thrift
files?  The fingerprint for a structure depends not only on the fields
in the structure, but also any fields in a structure that it includes.

> 3) Do we need to care about their values? We have client and server code out in the world that contains one definition and we will be releasing new versions in the near future. Are there backward compatibility issues?
I don't think so.  Thrift was designed to make it possible to add and
remove fields.

--David


On 11/28/2011 12:02 PM, Rush Manbert wrote:
> I asked this question more than 18 months ago on the users list and never got an answer, so I'm trying again here.
> 
> We check in our Thrift IDL (*.thrift) files and when we do builds on the Mac, those files are read and the code for different languages is generated. We also check in the generated code as required, because we don't do code generation in our Windows dev environment.
> 
> We find that sometimes our SVN client wants us to check in a generated C++ source file, but all that has changed is the definition of ascii_fingerprint and binary_fingerprint. This makes us a little nervous.
> 
> I have grepped through the C++ library sources that we use (we are down rev because we use my Windows patch: https://issues.apache.org/jira/browse/THRIFT-591 ) and I don't find "_fingerprint" used anywhere in the code. 
> 
> I also got the 0.7.0 sources and grepped them for "_fingerprint". The only usage appears to be in DenseProtoTest.cpp. Again, I see no usage at all in the library C++ sources.
> 
> In both versions, the Dense Protocol uses TypeSpec, but we don't use that protocol.
> 
> I'm hoping someone can answer these questions for me:
> 
> 1) How are ascii_fingerprint and binary_fingerprint intended to be used?
> 
> 2) Why do their definitions change (the contents change) sometimes when nothing else in the generated C++ source file changes?
> 
> 3) Do we need to care about their values? We have client and server code out in the world that contains one definition and we will be releasing new versions in the near future. Are there backward compatibility issues?
> 
> Thanks,
> Rush