[ https://issues.apache.org/jira/browse/AVRO-2644?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16999230#comment-16999230 ]
Hudson commented on AVRO-2644: ------------------------------ SUCCESS: Integrated in Jenkins build AvroJava #789 (See [https://builds.apache.org/job/AvroJava/789/]) AVRO-2644: Fix deterministic directory compilation (ryan: [https://github.com/apache/avro/commit/a4a0bccfaebcecce429acc78e7aab0b68cccaa45]) * (edit) lang/java/tools/src/main/java/org/apache/avro/tool/SpecificCompilerTool.java > Non-Deterministic avsc Directory Compilation > -------------------------------------------- > > Key: AVRO-2644 > URL: https://issues.apache.org/jira/browse/AVRO-2644 > Project: Apache Avro > Issue Type: Bug > Reporter: Austin Cawley-Edwards > Priority: Minor > Fix For: 1.10.0, 1.9.2 > > > {color:#222222}We're trying to use the `compile \{src dir} \{output dir}` > command in{color} > {color:#222222}`avro-tools` and finding that there are some > non-deterministic{color} > {color:#222222}behaviors between systems, depending on how the OS sorts > files.{color} > {color:#222222}Example:{color} > {color:#222222}schemas/Component.avsc{color} > {color:#222222} - defines Component record type in the namespace > `com.test`{color} > {color:#222222}schemas/Parent.avsc{color} > {color:#222222} - defines a Parent record, in the same `com.test` > namespace, with a{color} > {color:#222222}field of type `com.test.Component`{color} > {color:#222222}With the command, `java -jar avro-tools-1.9.1.jar compile > schemas/{color} > {color:#222222}out-dir/`, some systems compile the directory in the order > Component,{color} > {color:#222222}Parent while others compile in the order Parent, Component. > The latter{color} > {color:#222222}fails as Component has not been defined when it is referenced > by{color} > {color:#222222}Parent.{color} > {color:#222222}We have also tried using the IDL and importing the dependency > types,{color} > {color:#222222}and then converting them to avsc, and finally compiling the > entire{color} > {color:#222222}directory, but that fails as the generated avsc files embed/ > duplicate{color} > {color:#222222}the "Component" types each time it is used.{color} > {color:#222222}OS:{color} > {color:#222222}Linux 857aaf92e059 4.15.0-70-generic #79-Ubuntu SMP Tue Nov > 12{color} > {color:#222222}10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux{color} > {color:#222222}Avro:{color} > {color:#222222}version 1.9.1{color} > > > Would a PR be accepted that enforces LANG=C semantics or would that have to > be shipped as a breaking change? > > Coming from this thread in the mailing list: > [http://mail-archives.apache.org/mod_mbox/avro-user/201911.mbox/%3CCALGL%2BUDH03pCyKAQ5a%2B_fvwnUVougwwEXe8%2BHFAuR8Q%3D2cqYmw%40mail.gmail.com%3E] -- This message was sent by Atlassian Jira (v8.3.4#803005)