I still see this about 20% of the time I run `./gradlew compileTestJava
spotlessApply checkstyleMain checkstyleTest` (with 8-way parallelism),
which I've taken to running as a kind of "pre-PreCommit" (for Java).

In total I'd estimate I've seen this error 20 times (across multiple
`./gradlew clean`s and spanning several weeks), but never twice in a row: I
always immediately re-run, and the error goes away.

That seems consistent with the idea that gradle is racing the codegen task
against the compile task that requires the codegen's outputs.

However, `./gradlew -p sdks/java/extensions/sql -m compileJava | grep
compileJavacc` implies that Gradle knows that compilation depends on the
codegen having run.

Here are three successive invocations of `./gradlew compileTestJava
spotlessApply checkstyleMain checkstyleTest`
<https://gist.github.com/ryan-williams/6d2735b2484e9459be656abf379533c5>;

   - The first one succeeds (and includes output showing that the codegen
   task, `:beam-sdks-java-extensions-sql:compileJavacc`, was run).
   - Then, I rebased on one new upstream commit and ran again, and saw the
   failure.
   - Immediately re-running saw the failure go away.

I guess in that output, tasks that are run but produce no stdout/stderr are
elided from the output, so we can't completely tell when the codegen and
compile tasks in question are being run. I'll start running with
--console=verbose
<https://stackoverflow.com/questions/45883963/gradle-4-0-does-not-display-executed-tasks-in-command-line#comment92914258_45889966>,
which I think will give a better sense of how this is happening.


On Fri, Feb 8, 2019 at 12:41 AM Ryan Williams <r...@runsascoded.com> wrote:

> After your last message, Alex, I saw the issue on a branch with minimal
> unrelated changes on top of b4b5495307
> <https://github.com/apache/beam/commit/b4b549530730d9e0283ad0cdb203d384a107dfbf>
>  (January
> 28).
>
> I ran `./gradlew clean` for the first time in a while at that time, and
> worked happily for 11 days, but just saw the issue again on a branch
> rebased on top of 381ab55b59
> <https://github.com/apache/beam/commit/381ab55b59> (today):
>
> > Task :beam-sdks-java-extensions-sql:compileJava FAILED
> …/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/JdbcFactory.java:29:
> error: cannot find symbol
> import
> org.apache.beam.sdk.extensions.sql.impl.parser.impl.BeamSqlParserImpl;
>                                                           ^
>   symbol:   class BeamSqlParserImpl
>   location: package org.apache.beam.sdk.extensions.sql.impl.parser.impl
> 1 error
>
> Every time I've seen it, I immediately re-run the compile, and it succeeds.
>
> Perhaps something is still wrong with my environment, but otherwise it
> would seem that something is still flaky here.
>
> I'm compiling on an 8-core macOS machine, fwiw, and usually running
> `./gradlew compileTestJava` which compiles many projects concurrently.
>
> On Mon, Jan 28, 2019 at 4:12 PM Alex Amato <ajam...@google.com> wrote:
>
>> If it continues to occur, maybe it is an environmental issue, be sure to
>> try to clean as well.
>> ./gradlew clean
>>
>> On Mon, Jan 28, 2019 at 11:12 AM Ryan Williams <r...@runsascoded.com>
>> wrote:
>>
>>> Yea I was rebased on top of a more recent master than your previous
>>> message, when I saw it again. Perhaps I was mistaken. I'll ping here if I
>>> see it again, thanks.
>>>
>>> On Mon, Jan 28, 2019 at 1:52 PM Alex Amato <ajam...@google.com> wrote:
>>>
>>>> After I did a rebase, it went away for me. So I think that this should
>>>> work. Are you saying that you did rebase ontop of master and it still
>>>> occurred? Strange.
>>>>
>>>> On Sat, Jan 26, 2019 at 3:48 PM Ryan Williams <r...@runsascoded.com>
>>>> wrote:
>>>>
>>>>> Hm, I just encountered this again on a branch that based on 5b46b02b49
>>>>> (top of trunk from this afternoon). Is it definitely supposed to be fixed?
>>>>>
>>>>>
>>>>> On Thu, Jan 24, 2019 at 9:19 PM Alex Amato <ajam...@google.com> wrote:
>>>>>
>>>>>> Please try rebasing from master, I believe this issue has been
>>>>>> resolved.
>>>>>>
>>>>>> On Thu, Jan 24, 2019 at 3:29 PM Ryan Williams <r...@runsascoded.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I'm seeing every ≈third `./gradlew compileJava` fail locally due to
>>>>>>> this; re-running the commit has always succeeded, so far.
>>>>>>>
>>>>>>> Sounds like there is not an immediate fix in the works / no one
>>>>>>> assigned on the JIRA?
>>>>>>>
>>>>>>> On Wed, Jan 23, 2019 at 3:17 PM Kenneth Knowles <k...@apache.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> This might connect to vendoring Calcite. It will be easiest, and
>>>>>>>> have the best incremental build, if we separate the generated code 
>>>>>>>> into its
>>>>>>>> own module that has relocation to match the vendored Calcite.
>>>>>>>>
>>>>>>>> Kenn
>>>>>>>>
>>>>>>>> On Wed, Jan 23, 2019 at 11:29 AM Anton Kedin <ke...@google.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> We don't pre-generate the code as a separate step. Code gen from
>>>>>>>>> the SQL parser syntax spec and its compilation happens both during 
>>>>>>>>> the Beam
>>>>>>>>> SQL build task. Splitting the code generation and compilation might 
>>>>>>>>> not be
>>>>>>>>> trivial. We definitely should look into fixing this though.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Anton
>>>>>>>>>
>>>>>>>>> On Wed, Jan 23, 2019 at 11:13 AM Alex Amato <ajam...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Okay, make sense perhaps we can somehow make it fail when it
>>>>>>>>>> fails to generate the dep, rather than when compiling the java code 
>>>>>>>>>> later on
>>>>>>>>>>
>>>>>>>>>> On Wed, Jan 23, 2019 at 11:12 AM Anton Kedin <ke...@google.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> ParserImpl is autogenerated by Calcite at build time. It seems
>>>>>>>>>>> that there's a race condition there and it sometimes fails. 
>>>>>>>>>>> Rerunning the
>>>>>>>>>>> build works for me.
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Anton
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Jan 23, 2019, 11:06 AM Alex Amato <ajam...@google.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> https://jira.apache.org/jira/browse/BEAM-6495?filter=-2
>>>>>>>>>>>>
>>>>>>>>>>>> Any ideas, how this got through the precommit?
>>>>>>>>>>>>
>>>>>>>>>>>> > Task :beam-sdks-java-extensions-sql:compileJava FAILED
>>>>>>>>>>>>
>>>>>>>>>>>> /usr/local/google/home/ajamato/go/src/
>>>>>>>>>>>> github.com/apache/beam/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/JdbcFactory.java:29:
>>>>>>>>>>>> error: cannot find symbol
>>>>>>>>>>>>
>>>>>>>>>>>> import
>>>>>>>>>>>> org.apache.beam.sdk.extensions.sql.impl.parser.impl.BeamSqlParserImpl;
>>>>>>>>>>>>
>>>>>>>>>>>>                                                           ^
>>>>>>>>>>>>
>>>>>>>>>>>>   symbol:   class BeamSqlParserImpl
>>>>>>>>>>>>
>>>>>>>>>>>>   location: package
>>>>>>>>>>>> org.apache.beam.sdk.extensions.sql.impl.parser.impl
>>>>>>>>>>>>
>>>>>>>>>>>> 1 error
>>>>>>>>>>>>
>>>>>>>>>>>>

Reply via email to