Hello all,

I am trying to submit and run the ExclamationTopology topology (from the Apache 
Storm 2.2 Storm starter jar file) in remote mode on an Apache Storm 2.2.0 
cluster running in Docker.  The topology was successfully submitted (it shows 
up in Storm UI) - but I am not seeing any activity from the spout.  This issue 
does NOT occur (Spout activity is observed) if I submit the topology in local 
mode.

Investigation findings and resolutions attempted:

  *   The Worker logs (on the supervisor node) show the following:

2021-04-30 14:34:10.781 STDERR Thread-0 [INFO] Unrecognized VM option 
'PrintGCDateStamps'

2021-04-30 14:34:10.781 STDERR Thread-1 [INFO] [0.001s][warning][gc] -Xloggc is 
deprecated. Will use -Xlog:gc:artifacts/gc.log instead.

2021-04-30 14:34:10.800 STDERR Thread-0 [INFO] Error: Could not create the Java 
Virtual Machine.

2021-04-30 14:34:10.802 STDERR Thread-0 [INFO] Error: A fatal exception has 
occurred. Program will exit.

  *   I found 2 reports of this issue on the Internet where the root causes 
matched what I was seeing on my environment:
     *   Outdated default JVM GC Logging options in worker.childopts:  
https://stackoverflow.com/questions/56902645/topology-just-idles-on-storm-in-remote-mode
     *   Mismatch in JDK versions used to build Storm and the topology jars:  
https://stackoverflow.com/questions/58405388/storm-topology-not-executing-in-cluster
  *   I deleted PrintGCDateStamps and all other GC print settings) from the 
worker.childopts configuration option as recommended in the first post and 
verified that this change took effect as follows:
     *   Nimbus and Topology configuration settings in Storm UI show that the 
worker_childopts setting no longer has these settings.
     *   The nimbus and supervisor logs no longer show the GC logging options 
for worker.childopts in the commands when each is started up.
     *   NOTE:  I am sending the modified value of worker.childopts in the 
startup commands for nimbus and supervisor (see Docker compose file below) - 
had to do this as the recommended way of overriding the default value in 
storm.yaml did not work for me.  I will report this in a separate email.
  *   I also verified (using the javap utility) that the version of JDK used to 
build ExclamationTopology.class is identical to that used to build the class 
files in Apache Storm 2.2.0 server, client and core (I compared with a randomly 
picked class file from each of the latter).
  *   However, the issue is continuing to occur:  The worker logs continue to 
report the unrecognized VM option.
  *   I have tried restarting zookeeper and the 3 Storm containers as well as 
completely deleting and recreating them - but neither had any effect.

Does anyone know of/have any thoughts on other possible root cause(s) and/or 
what else I can try to resolve it?

Please see below for additional information on my environment.  Please let me 
know if you need any other information/have any questions and/or if I should 
log a JIRA ticket.

Any help would be greatly appreciated.

Thanks,
Shashi

Additional Information:

  *   Apache Storm 2.2.0 Docker image downloaded from Docker Hub: 
https://hub.docker.com/_/storm
  *   Storm cluster configuration:  1 Nimbus instance, 1 Supervisor instance, 1 
Nimbus UI instance
  *   ExclamationTopology topology being loaded is from the Storm Starter 2.2.0 
jar downloaded from Maven Repository: 
https://mvnrepository.com/artifact/org.apache.storm/storm-starter/2.2.0
  *   Commands to submit the topology (executed in the CLI window of the nimbus 
container in Docker Desktop - current directory /apache-storm-2.2.0):
     *   Remote (issue occurs):  storm jar examples/storm-starter-2.2.0.jar 
org.apache.storm.starter.ExclamationTopology
     *   Local (issue does not occur):  storm local 
examples/storm-starter-2.2.0.jar org.apache.storm.starter.ExclamationTopology
  *   Running everything on Windows 10 laptop.
  *   Docker Compose file (showing only the services related to Apache Storm - 
the file does have entries for other services needed for our application):
  zookeeper:
    image: confluentinc/cp-zookeeper:6.0.1
    hostname: zookeeper
    container_name: zookeeper
    ports:
      - "2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
  nimbus:
    image: storm
    container_name: nimbus
    command: storm nimbus -c worker.childopts="-Xmx%HEAP-MEM%m 
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump"
    depends_on:
      - zookeeper
    links:
      - zookeeper
    restart: always
    ports:
      - 6627:6627
    volumes:
      - ./storm/nimbus/conf:/apache-storm-2.2.0/conf
      - ./storm/nimbus/examples:/apache-storm-2.2.0/examples
      - ./storm/nimbus/logs:/logs
    user: root

  nimbus-ui:
    image: storm
    container_name: nimbus-ui
    command: storm ui
    depends_on:
      - nimbus
    links:
      - nimbus
    restart: always
    ports:
      - 8080:8080
    volumes:
      - ./storm/nimbus-ui/conf:/apache-storm-2.2.0/conf
      - ./storm/nimbus-ui/logs:/logs
      - ./storm/nimbus-ui/examples:/apache-storm-2.2.0/examples

  supervisor:
    image: storm
    container_name: supervisor
    command: storm supervisor -c worker.childopts="-Xmx%HEAP-MEM%m 
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump"
    depends_on:
      - nimbus
      - zookeeper
    links:
      - nimbus
      - zookeeper
    restart: always
    volumes:
      - ./storm/supervisor/conf:/apache-storm-2.2.0/conf
      - ./storm/supervisor/logs:/logs

  *   Storm.yaml (Nimbus) - commented lines omitted
storm.zookeeper.servers:
     - "localhost"
nimbus.seeds: "localhost"

### ui.* configs are for the master
ui.host: localhost
ui.port: 8080
ui.header.buffer.bytes: 4096

### worker.* configs are for task workers
#worker.childopts: "-Xmx%HEAP-MEM%m -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=artifacts/heapdump"

  *   Storm.yaml (Supervisor) - commented lines omitted.
storm.zookeeper.servers:
     - "localhost"
nimbus.seeds: "localhost"

### worker.* configs are for task workers
#worker.childopts: "-Xmx%HEAP-MEM%m -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=artifacts/heapdump"


Reply via email to