Can't comment on the SQL issues, but here's our exact setup for Bazel and
Junit5 w/ the resource files approach:
https://github.com/fintechstudios/vp-operator-demo-ff-virtual-2020/tree/master/tools/junit

Best,
Austin

On Thu, Oct 8, 2020 at 2:41 AM Dan Hill <quietgol...@gmail.com> wrote:

> I was able to get finer grained logs showing.  I switched from
> -Dlog4j.configuration to -Dlog4j.configurationFile and it worked.  With my
> larger test case, I was hitting a silent log4j error.  When I created a
> small test case to just test logging, I received a log4j error.
>
> Here is a tar
> <https://drive.google.com/file/d/1b6vJR_hfaRZwA28jKNlUBxDso7YiTIbk/view?usp=sharing>
> with the info logs for:
> - (test-nojoin.log) this one works as expected
> - (test-join.log) this does not work as expected
>
> I don't see an obvious issue just by scanning the logs.  I'll take a
> deeper in 9 hours.
>
>
>
>
> On Wed, Oct 7, 2020 at 8:28 PM Dan Hill <quietgol...@gmail.com> wrote:
>
>> Switching to junit4 did not help.
>>
>> If I make a request to the url returned from
>> MiniClusterWithClientResource.flinkCluster.getClusterClient().getWebInterfaceURL(),
>> I get
>> {"errors":["Not found."]}.  I'm not sure if this is intentional.
>>
>>
>>
>>
>> On Tue, Oct 6, 2020 at 4:16 PM Dan Hill <quietgol...@gmail.com> wrote:
>>
>>> @Aljoscha - Thanks!  That setup lets fixing the hacky absolute path
>>> reference.  However, the actual log calls are not printing to the console.
>>> Only errors appear in my terminal window and the test logs.  Maybe console
>>> logger does not work for this junit setup.  I'll see if the file version
>>> works.
>>>
>>> On Tue, Oct 6, 2020 at 4:08 PM Austin Cawley-Edwards <
>>> austin.caw...@gmail.com> wrote:
>>>
>>>> What Aljoscha suggested is what works for us!
>>>>
>>>> On Tue, Oct 6, 2020 at 6:58 PM Aljoscha Krettek <aljos...@apache.org>
>>>> wrote:
>>>>
>>>>> Hi Dan,
>>>>>
>>>>> to make the log properties file work this should do it: assuming the
>>>>> log4j.properties is in //src/main/resources. You will need a
>>>>> BUILD.bazel
>>>>> in that directory that has only the line
>>>>> "exports_files(["log4j.properties"]). Then you can reference it in
>>>>> your
>>>>> test via "resources = ["//src/main/resources:log4j.properties"],". Of
>>>>> course you also need to have the right log4j deps (or slf4j if you're
>>>>> using that)
>>>>>
>>>>> Hope that helps!
>>>>>
>>>>> Aljoscha
>>>>>
>>>>> On 07.10.20 00:41, Dan Hill wrote:
>>>>> > I'm trying to use Table API for my job.  I'll soon try to get a test
>>>>> > working for my stream job.
>>>>> > - I'll parameterize so I can have different sources and sink for
>>>>> tests.
>>>>> > How should I mock out a Kafka source?  For my test, I was planning on
>>>>> > changing the input to be from a temp file (instead of Kafka).
>>>>> > - What's a good way of forcing a watermark using the Table API?
>>>>> >
>>>>> >
>>>>> > On Tue, Oct 6, 2020 at 3:35 PM Dan Hill <quietgol...@gmail.com>
>>>>> wrote:
>>>>> >
>>>>> >> Thanks!
>>>>> >>
>>>>> >> Great to know.  I copied this junit5-jupiter-starter-bazel
>>>>> >> <
>>>>> https://github.com/junit-team/junit5-samples/tree/main/junit5-jupiter-starter-bazel>
>>>>> rule
>>>>> >> into my repository (I don't think junit5 is supported directly with
>>>>> >> java_test yet).  I tried a few ways of bundling `log4j.properties`
>>>>> into the
>>>>> >> jar and didn't get them to work.  My current iteration hacks the
>>>>> >> log4j.properties file as an absolute path.  My failed attempts
>>>>> would spit
>>>>> >> an error saying log4j.properties file was not found.  This route
>>>>> finds it
>>>>> >> but the log properties are not used for the java logger.
>>>>> >>
>>>>> >> Are there a better set of rules to use for junit5?
>>>>> >>
>>>>> >> # build rule
>>>>> >> java_junit5_test(
>>>>> >>      name = "tests",
>>>>> >>      srcs = glob(["*.java"]),
>>>>> >>      test_package = "ai.promoted.logprocessor.batch",
>>>>> >>      deps = [...],
>>>>> >>      jvm_flags =
>>>>> >>
>>>>> ["-Dlog4j.configuration=file:///Users/danhill/code/src/ai/promoted/logprocessor/batch/log4j.properties"],
>>>>> >> )
>>>>> >>
>>>>> >> # log4j.properties
>>>>> >> status = error
>>>>> >> name = Log4j2PropertiesConfig
>>>>> >> appenders = console
>>>>> >> appender.console.type = Console
>>>>> >> appender.console.name = LogToConsole
>>>>> >> appender.console.layout.type = PatternLayout
>>>>> >> appender.console.layout.pattern = %d [%t] %-5p %c - %m%n
>>>>> >> rootLogger.level = info
>>>>> >> rootLogger.appenderRefs = stdout
>>>>> >> rootLogger.appenderRef.stdout.ref = LogToConsole
>>>>> >>
>>>>> >> On Tue, Oct 6, 2020 at 3:34 PM Austin Cawley-Edwards <
>>>>> >> austin.caw...@gmail.com> wrote:
>>>>> >>
>>>>> >>> Oops, this is actually the JOIN issue thread [1]. Guess I should
>>>>> revise
>>>>> >>> my previous "haven't had issues" statement hah. Sorry for the spam!
>>>>> >>>
>>>>> >>> [1]:
>>>>> >>>
>>>>> apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Streaming-SQL-Job-Switches-to-FINISHED-before-all-records-processed-td38382.html
>>>>> >>>
>>>>> >>> On Tue, Oct 6, 2020 at 6:32 PM Austin Cawley-Edwards <
>>>>> >>> austin.caw...@gmail.com> wrote:
>>>>> >>>
>>>>> >>>> Unless it's related to this issue[1], which was w/ my JOIN and
>>>>> time
>>>>> >>>> characteristics, though not sure that applies for batch.
>>>>> >>>>
>>>>> >>>> Best,
>>>>> >>>> Austin
>>>>> >>>>
>>>>> >>>> [1]:
>>>>> >>>>
>>>>> apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Flink-SQL-Streaming-Join-Creates-Duplicates-td37764.html
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> On Tue, Oct 6, 2020 at 6:20 PM Austin Cawley-Edwards <
>>>>> >>>> austin.caw...@gmail.com> wrote:
>>>>> >>>>
>>>>> >>>>> Hey Dan,
>>>>> >>>>>
>>>>> >>>>> We use Junit5 and Bazel to run Flink SQL tests on a mini cluster
>>>>> and
>>>>> >>>>> haven’t had issues, though we’re only testing on streaming jobs.
>>>>> >>>>>
>>>>> >>>>> Happy to help setting up logging with that if you’d like.
>>>>> >>>>>
>>>>> >>>>> Best,
>>>>> >>>>> Austin
>>>>> >>>>>
>>>>> >>>>> On Tue, Oct 6, 2020 at 6:02 PM Dan Hill <quietgol...@gmail.com>
>>>>> wrote:
>>>>> >>>>>
>>>>> >>>>>> I don't think any of the gotchas apply to me (at the bottom of
>>>>> this
>>>>> >>>>>> link).
>>>>> >>>>>>
>>>>> >>>>>>
>>>>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/testing.html#junit-rule-miniclusterwithclientresource
>>>>> >>>>>>
>>>>> >>>>>> I'm assuming for a batch job that I don't have to do anything
>>>>> for:
>>>>> >>>>>> "You can implement a custom parallel source function for
>>>>> emitting
>>>>> >>>>>> watermarks if your job uses event time timers."
>>>>> >>>>>>
>>>>> >>>>>> On Tue, Oct 6, 2020 at 2:42 PM Dan Hill <quietgol...@gmail.com>
>>>>> wrote:
>>>>> >>>>>>
>>>>> >>>>>>> I've tried to enable additional logging for a few hours
>>>>> today.  I
>>>>> >>>>>>> think something with junit5 is swallowing the logs.  I'm using
>>>>> Bazel and
>>>>> >>>>>>> junit5.  I setup MiniClusterResourceConfiguration using a
>>>>> custom
>>>>> >>>>>>> extension.  Are there any known issues with Flink and junit5?
>>>>> I can try
>>>>> >>>>>>> switching to junit4.
>>>>> >>>>>>>
>>>>> >>>>>>> When I've binary searched this issue, this failure happens if
>>>>> my
>>>>> >>>>>>> query in step 3 has a join it.  If I remove the join, I can
>>>>> remove step 4
>>>>> >>>>>>> and the code still works.  I've renamed a bunch of my tables
>>>>> too and the
>>>>> >>>>>>> problem still exists.
>>>>> >>>>>>>
>>>>> >>>>>>>
>>>>> >>>>>>>
>>>>> >>>>>>>
>>>>> >>>>>>>
>>>>> >>>>>>> On Tue, Oct 6, 2020, 00:42 Aljoscha Krettek <
>>>>> aljos...@apache.org>
>>>>> >>>>>>> wrote:
>>>>> >>>>>>>
>>>>> >>>>>>>> Hi Dan,
>>>>> >>>>>>>>
>>>>> >>>>>>>> there were some bugs and quirks in the MiniCluster that we
>>>>> recently
>>>>> >>>>>>>> fixed:
>>>>> >>>>>>>>
>>>>> >>>>>>>>    - https://issues.apache.org/jira/browse/FLINK-19123
>>>>> >>>>>>>>    - https://issues.apache.org/jira/browse/FLINK-19264
>>>>> >>>>>>>>
>>>>> >>>>>>>> But I think they are probably unrelated to your case. Could
>>>>> you
>>>>> >>>>>>>> enable
>>>>> >>>>>>>> logging and see from the logs whether the 2) and 3) jobs
>>>>> execute
>>>>> >>>>>>>> correctly on the MiniCluster?
>>>>> >>>>>>>>
>>>>> >>>>>>>> Best,
>>>>> >>>>>>>> Aljoscha
>>>>> >>>>>>>>
>>>>> >>>>>>>> On 06.10.20 08:08, Dan Hill wrote:
>>>>> >>>>>>>>> I'm writing a test for a batch job using
>>>>> >>>>>>>> MiniClusterResourceConfiguration.
>>>>> >>>>>>>>>
>>>>> >>>>>>>>> Here's a simple description of my working test case:
>>>>> >>>>>>>>> 1) I use TableEnvironment.executeSql(...) to create a source
>>>>> and
>>>>> >>>>>>>> sink table
>>>>> >>>>>>>>> using tmp filesystem directory.
>>>>> >>>>>>>>> 2) I use executeSql to insert some test data into the source
>>>>> tabel.
>>>>> >>>>>>>>> 3) I use executeSql to select from source and insert into
>>>>> sink.
>>>>> >>>>>>>>> 4) I use executeSql from the same source to a different sink.
>>>>> >>>>>>>>>
>>>>> >>>>>>>>> When I do these steps, it works.  If I remove step 4, no
>>>>> data gets
>>>>> >>>>>>>> written
>>>>> >>>>>>>>> to the sink.  My actual code is more complex than this (has
>>>>> create
>>>>> >>>>>>>> view,
>>>>> >>>>>>>>> join and more tables).  This is a simplified description but
>>>>> >>>>>>>> highlights the
>>>>> >>>>>>>>> weird error.
>>>>> >>>>>>>>>
>>>>> >>>>>>>>> Has anyone hit issues like this?  I'm assuming I have a
>>>>> small code
>>>>> >>>>>>>> bug in
>>>>> >>>>>>>>> my queries that's causing issues.  These queries appear to
>>>>> work in
>>>>> >>>>>>>>> production so I'm confused.  Are there ways of viewing
>>>>> failed jobs
>>>>> >>>>>>>> or
>>>>> >>>>>>>>> queries with MiniClusterResourceConfiguration?
>>>>> >>>>>>>>>
>>>>> >>>>>>>>> Thanks!
>>>>> >>>>>>>>> - Dan
>>>>> >>>>>>>>>
>>>>> >>>>>>>>
>>>>> >>>>>>>>
>>>>> >
>>>>>
>>>>>

Reply via email to