Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

heron-simple-wordcount-topology broken with docker version 0.20.5-incubating  #3845

@jmtd

Description

@jmtd

Describe the bug

The very first example topology is broken with the latest version of the docker container (which, interestingly, is a micro version ahead of GitHub): 0.20.5-incubating

(the example used in https://github.com/apache/incubator-heron/blob/master/website2/docs/getting-started-docker.md)

To Reproduce
Steps to reproduce the behavior:

  1. docker run -it --rm -d -p 8889:8889 -p 8888:8888 --name local-heron apache/heron:0.20.5-incubating supervisord --nodaemon (note version: 0.20.5-incubating)
  2. docker exec -it local-heron bash -c "heron submit sandbox /heron/examples/heron-eco-examples.jar org.apache.heron.eco.Eco --eco-config-file /heron/examples/heron_wordcount.yaml"
  3. See error

Expected behavior

…
[2022-07-07 14:33:02 +0000] [INFO]: Successfully launched topology 'heron-simple-wordcount-topology' 

Actual behavior

;docker exec -it    local-heron    bash -c "heron submit sandbox  /heron/examples/heron-eco-examples.jar org.apache.heron.eco.Eco --eco-config-file /heron/examples/heron_wordcount.yaml"
[2022-07-07 14:38:15 +0000] [INFO]: Using cluster definition in /usr/local/heron/conf/sandbox
Exception in thread "main" Cannot create property=spouts for JavaBean=org.apache.heron.eco.definition.EcoTopologyDefinition@45b9a632
 in 'string', line 22, column 1:
    name: "heron-simple-wordcount-to ... 
    ^
Can not set java.util.Map field org.apache.heron.eco.definition.EcoTopologyDefinition.spouts to java.util.ArrayList
 in 'string', line 49, column 3:
      - id: "spout-1"
      ^

	at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:291)
	at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:172)
	at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:332)
	at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
	at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
	at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:174)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:158)
	at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:491)
	at org.yaml.snakeyaml.Yaml.load(Yaml.java:416)
	at org.apache.heron.eco.parser.EcoParser.loadTopologyFromYaml(EcoParser.java:87)
	at org.apache.heron.eco.parser.EcoParser.parseFromInputStream(EcoParser.java:50)
	at org.apache.heron.eco.Eco.submit(Eco.java:75)
	at org.apache.heron.eco.Eco.main(Eco.java:163)
Caused by: java.lang.IllegalArgumentException: Can not set java.util.Map field org.apache.heron.eco.definition.EcoTopologyDefinition.spouts to java.util.ArrayList
	at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
	at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
	at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
	at java.base/java.lang.reflect.Field.set(Field.java:780)
	at org.yaml.snakeyaml.introspector.PropertySubstitute.set(PropertySubstitute.java:105)
	at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:286)
	... 12 more
2022-07-07 14:38:15.450 INFO - o.a.heron.eco.parser.EcoParser -                 main - Parsing eco config file
2022-07-07 14:38:15.453 INFO - o.a.heron.eco.parser.EcoParser -                 main - Not performing property substitution.
2022-07-07 14:38:15.453 INFO - o.a.heron.eco.parser.EcoParser -                 main - Not performing environment variable substitution.
2022-07-07 14:38:15.450 INFO - o.a.heron.eco.parser.EcoParser -                 main - Parsing eco config file
2022-07-07 14:38:15.453 INFO - o.a.heron.eco.parser.EcoParser -                 main - Not performing property substitution.
2022-07-07 14:38:15.453 INFO - o.a.heron.eco.parser.EcoParser -                 main - Not performing environment variable substitution.
[2022-07-07 14:38:15 +0000] [ERROR]: Failed to create topology definition file when executing class 'org.apache.heron.eco.Eco' of file '/heron/examples/heron-eco-examples.jar'

Operating System

  • OS: Docker version 20.10.5+dfsg1, build 55c4c88 on Debian 11.3
  • Version 0.20.5-incubating

Additional context

Version 0.20.4-incubating works!

The file /heron/examples/heron_wordcount.yaml is unchanged between the versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions