[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16746489#comment-16746489 ] Scott Wegner commented on BEAM-6352: Status update: untangling {{Watch.Growth}} to implement with the {{RestrictionTracker}} API changes proved difficult, and when talking to others we weren't sure whether it's possible, and may indicate that the previous API has necessary complexity. I've moved forward with the revert: https://github.com/apache/beam/pull/7540 I believe we should merge this to master and cherry-pick into the 2.10 release. /cc [~kenn] > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Scott Wegner >Priority: Blocker > Fix For: 2.10.0 > > Time Spent: 40m > Remaining Estimate: 0h > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16744473#comment-16744473 ] Scott Wegner commented on BEAM-6352: Status update: I made an attempt to extract the extract APIs off of {{GrowthTracker}} into a separate class local to the ProcessElement invocation. But, it was not as easy to isolate as I thought; there's some shared state that's needed for checkpointing. Initial attempt here: https://github.com/apache/beam/pull/7520 In parallel, I tried rolling back PR#7520 so see how easy that would be, and it seems that everything is passing: https://github.com/apache/beam/pull/7540. So we have rollback as an option. I'm going to spend a little more time grokking the Watch.Growth implementation and see if I can come up with a better way of untangling it. If I don't come to a solution today, I propose we rollback to unblock the release. Note: we could also choose to rollback only on the release branch. But, that keeps master in a broken state and if we don't find a solution today, it's not clear to me how long it will take. My preference is not to keep things broken for too long. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Scott Wegner >Priority: Blocker > Fix For: 2.10.0 > > Time Spent: 20m > Remaining Estimate: 0h > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16743275#comment-16743275 ] Kenneth Knowles commented on BEAM-6352: --- OK, let's sync on this. It isn't obvious to me that the use cases for RestrictionTracker subclasses can be addressed in the new API. I am a latecomer but definitely interested in how Watch will turn out. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Scott Wegner >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16743273#comment-16743273 ] Scott Wegner commented on BEAM-6352: I'll take this for now and see if there's some way to make Watch transform implement the new contract. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Scott Wegner >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16743255#comment-16743255 ] Scott Wegner commented on BEAM-6352: Yes, from what I recall the API was changed to not expose the generic type such that the runner is free to wrap the RestrictionTracker, specifically to provide synchronization in the wrapped version. I suspect the Watch transform wasn't upgraded simply as an oversight since the tests weren't being run. If possible we should upgrade Watch to abide by the new contract. As [~kenn] mentioned: if Watch can't implement the contract, this seems indicative of a design issue as there are currently so few implementations. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742715#comment-16742715 ] Kenneth Knowles commented on BEAM-6352: --- One approach to giving access to the delegate in a semi-disciplined way would be to add something like a self-type so that the type can be {{RestrictionTracker>}}. Then the user can get access to the more-specific RestrictionTracker type. But since the whole point of the wrapper is not having this special access, it doesn't seem like an appropriate solution. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742709#comment-16742709 ] Kenneth Knowles commented on BEAM-6352: --- I think SDF is too immature to start with hacks like exposing the delegate or special-casing Watch. If this doesn't fit in cleanly, there's a redesign needed. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742705#comment-16742705 ] Kenneth Knowles commented on BEAM-6352: --- Summarizing some thoughts here. The idea of allowing a subclass of RestrictionTracker is twofold: 1. Something has to actually implement it (RestrictionTracker should be an interface) 2. Each kind of RestrictionTracker may generally have special methods. I think part of the idea of changing number 2 is that the user might actually mess up the implementation. Also that the runner wants to wrap the user's RestrictionTracker class in its own that adds synchronization as necessary. So I wonder if the GrowthTracker extra methods do seem like subverting the main methods or if they can be implemented another way. The only other place that user types can show up is RestrictionT and PositionT. So perhaps the extra methods can go here. I am really not expert in any of this. I am just going on what I can read in PRs and the mailing list. I haven't really followed the SDF details. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742583#comment-16742583 ] Kenneth Knowles commented on BEAM-6352: --- OK the problem was my reading of the PR description. I see now. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742581#comment-16742581 ] Kenneth Knowles commented on BEAM-6352: --- The change seems bad. I don't really know why it was made. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16742565#comment-16742565 ] Boyuan Zhang commented on BEAM-6352: Researching a little bit. The root cause is in Luke's PR([https://github.com/apache/beam/pull/6467]), there is a checkArguement changes: {code} processElementErrors.checkArgument(processElement.trackerT().getRawType().equals(RestrictionTracker.class), "Has tracker type %s, but the DoFn's tracker type must be of type RestrictionTracker.", formatType(processElement.trackerT())); {code} which enforces a DoFn use RestrictionTracker in processElement rather than a subtype of RestrictionTracker. But in the WatchGrowthFn, the usage of tracker is not only limited to RestrictionTracker, [example|https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Watch.java#L727]. There are 2 possible solutions from my knowlagde: 1. Expose the exact tracker from [RestrictionTrackerObserver|https://github.com/apache/beam/blob/master/sdks/java/fn-execution/src/main/java/org/apache/beam/sdk/fn/splittabledofn/RestrictionTrackers.java#L42] 2. In the checkArguement section, make WatchGrowthTracker as a special case. I'm not super familiar with Watch.java so I cannot tell which is the right way to go. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16739877#comment-16739877 ] Kenneth Knowles commented on BEAM-6352: --- I agree this is a blocker. Let me know if I can help. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16739685#comment-16739685 ] Boyuan Zhang commented on BEAM-6352: Just wanna follow up to make sure whether this issue is the blocker for current release(2.10.0) > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16737563#comment-16737563 ] Scott Wegner commented on BEAM-6352: [~boyuanz] could you take a look? It seems there were some tests that were not previously being run in preCommit, and caused the Watch transform to break during https://github.com/apache/beam/pull/6467. > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Affects Versions: 2.9.0 >Reporter: Gleb Kanterov >Assignee: Boyuan Zhang >Priority: Blocker > Fix For: 2.10.0 > > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: true] FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[1: false] FAILED > org.apache.beam.sdk.io.FileIOTest > testMatchWatchForNewFiles FAILED > org.apache.beam.sdk.io.TextIOReadTest$BasicIOTest > testReadWatchForNewFiles > FAILED > {code} > java.lang.IllegalArgumentException: > org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement > process(ProcessContext, GrowthTracker): Has tracker type > Watch.GrowthTracker, but the DoFn's tracker > type must be of type RestrictionTracker. > {code} > Relevant pull requests: > - https://github.com/apache/beam/pull/6467 > - https://github.com/apache/beam/pull/7374 > Now tests are marked with @Ignore referencing this JIRA issue -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (BEAM-6352) Watch PTransform is broken
[ https://issues.apache.org/jira/browse/BEAM-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16736519#comment-16736519 ] Udi Meiri commented on BEAM-6352: - I can recreate this in 2.9.0, using the Java quickstart instructions and modifying ./src/main/java/org/apache/beam/examples/WordCount.java: ``` import org.apache.beam.sdk.transforms.Watch; import org.joda.time.Duration; import org.apache.beam.sdk.io.FileIO; ``` ``` static void runWordCount(WordCountOptions options) { Pipeline.create(options) .apply( FileIO.match() .filepattern(options.getInputFile()) .continuously(Duration.standardMinutes(1), Watch.Growth.never())); } ``` ``` $ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args="--inputFile=pom.xml --output=counts" -Pdirect-runner ... java.lang.IllegalArgumentException: org.apache.beam.sdk.transforms.Watch$WatchGrowthFn, @ProcessElement process(ProcessContext, GrowthTracker): Has tracker type Watch.GrowthTracker, but the DoFn's tracker type must be of type RestrictionTracker. at org.apache.beam.sdk.transforms.reflect.DoFnSignatures$ErrorReporter.throwIllegalArgument (DoFnSignatures.java:1507) at org.apache.beam.sdk.transforms.reflect.DoFnSignatures$ErrorReporter.checkArgument (DoFnSignatures.java:1512) at org.apache.beam.sdk.transforms.reflect.DoFnSignatures.verifySplittableMethods (DoFnSignatures.java:593) at org.apache.beam.sdk.transforms.reflect.DoFnSignatures.parseSignature (DoFnSignatures.java:472) at org.apache.beam.sdk.transforms.reflect.DoFnSignatures.lambda$getSignature$0 (DoFnSignatures.java:140) at java.util.HashMap.computeIfAbsent (HashMap.java:1128) at org.apache.beam.sdk.transforms.reflect.DoFnSignatures.getSignature (DoFnSignatures.java:140) at org.apache.beam.sdk.transforms.ParDo.validate (ParDo.java:546) at org.apache.beam.sdk.transforms.ParDo.of (ParDo.java:393) at org.apache.beam.sdk.transforms.Watch$Growth.expand (Watch.java:689) at org.apache.beam.sdk.transforms.Watch$Growth.expand (Watch.java:157) at org.apache.beam.sdk.Pipeline.applyInternal (Pipeline.java:537) at org.apache.beam.sdk.Pipeline.applyTransform (Pipeline.java:488) at org.apache.beam.sdk.values.PCollection.apply (PCollection.java:370) at org.apache.beam.sdk.io.FileIO$MatchAll.expand (FileIO.java:614) at org.apache.beam.sdk.io.FileIO$MatchAll.expand (FileIO.java:572) at org.apache.beam.sdk.Pipeline.applyInternal (Pipeline.java:537) at org.apache.beam.sdk.Pipeline.applyTransform (Pipeline.java:488) at org.apache.beam.sdk.values.PCollection.apply (PCollection.java:370) at org.apache.beam.sdk.io.FileIO$Match.expand (FileIO.java:567) at org.apache.beam.sdk.io.FileIO$Match.expand (FileIO.java:514) at org.apache.beam.sdk.Pipeline.applyInternal (Pipeline.java:537) at org.apache.beam.sdk.Pipeline.applyTransform (Pipeline.java:471) at org.apache.beam.sdk.values.PBegin.apply (PBegin.java:44) at org.apache.beam.sdk.Pipeline.apply (Pipeline.java:167) at org.apache.beam.examples.WordCount.runWordCount (WordCount.java:178) at org.apache.beam.examples.WordCount.main (WordCount.java:188) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282) at java.lang.Thread.run (Thread.java:748) ``` > Watch PTransform is broken > -- > > Key: BEAM-6352 > URL: https://issues.apache.org/jira/browse/BEAM-6352 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Reporter: Gleb Kanterov >Assignee: Kenneth Knowles >Priority: Major > > List of affected tests: > org.apache.beam.sdk.transforms.WatchTest > > testSinglePollMultipleInputsWithSideInput FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithKeyExtractor > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollMultipleInputs FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationDueToTerminationCondition FAILED > org.apache.beam.sdk.transforms.WatchTest > testMultiplePollsWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > testSinglePollWithManyResults > FAILED > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsStopAfterTimeSinceNewOutput > org.apache.beam.sdk.transforms.WatchTest > > testMultiplePollsWithTerminationBecauseOutputIsFinal FAILED > org.apache.beam.sdk.io.AvroIOTest$NeedsRunnerTests > > testContinuouslyWriteAndReadMultipleFilepatterns[0: