[ https://issues.apache.org/jira/browse/THRIFT-4393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King III closed THRIFT-4393. ------------------------------------- > repeated runs of compiler produce different binary output at plugin interface > ----------------------------------------------------------------------------- > > Key: THRIFT-4393 > URL: https://issues.apache.org/jira/browse/THRIFT-4393 > Project: Thrift > Issue Type: Improvement > Components: Compiler (General) > Affects Versions: 0.10.0 > Environment: Ubuntu 16.04, Linux amd64, but generally applicable > Reporter: Chet Murthy > Assignee: James E. King III > Priority: Trivial > Fix For: 0.12.0 > > > TL;DR the plugin interface produces serialized thrift objects containing > integers derived from addresses; this results in repeated runs producing > differing output, and that's unpleasant. This is easy to test and easy to > fix. > Longer: The plugin interface is really nice, and I'd like to use it for more > things. One problem with it, is that from run-to-run, the data given to the > plugin can and does change, b/c there are "ids" (e.g. "t_type_id") that are > derived from pointer-addresses inside the compiler. It'd be nice to replace > those with generated integers starting at a fixed base. In short, instead of > random integers scattered thru the plugin, we'd get (say) numbers starting at > 1000000 and consecutively increasing. Each different kind of ID would start > at that same base, and the assignment would be based on how the "converter" > from internal types to thrift types walked the data-structure. Which should > be deterministic. So that would give a determinsitic output to the plugin. > This is *easy* to unit-test: just use /bin/cat as a plugin and compare > subsequent runs. > I'll write a unit-test and then a patch. -- This message was sent by Atlassian JIRA (v7.6.3#76005)