Skip to content

Instantly share code, notes, and snippets.

@vrabbi
Last active May 5, 2026 16:53
Show Gist options
  • Select an option

  • Save vrabbi/68a1fc30098d82b7b43eb5ae55c31d9a to your computer and use it in GitHub Desktop.

Select an option

Save vrabbi/68a1fc30098d82b7b43eb5ae55c31d9a to your computer and use it in GitHub Desktop.

INITIAL IMPRESSION - TDI ISSUES - AFTER 2 HOUR TESTING

  1. tdi releases include different versions then claimed in the docs

  2. tdi 3.0.0 has newer versions then 4.0.0 for airflow and opensearch
    command:

    cat /opt/broadcom/controller/binaries/release_metadata.json | jq '
      [ .releases[] | . as $release | .services[] | {
          service_name: .name,
          service_version: .version,
          release_name: $release.name,
          release_version: $release.version
        }
      ] | group_by(.service_name) | map({
        (.[0].service_name): map({
          service_version,
          release_name,
          release_version
        })
      }) | add
    '

    output:

    {
      "AIRFLOW": [
        {
          "service_version": "2.10.5",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.1.7",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "CONNECTOR": [
        {
          "service_version": "4.0.0",
          "release_name": "tdi-controller",
          "release_version": "4.0.0"
        }
      ],
      "GPCC": [
        {
          "service_version": "7.6.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        }
      ],
      "GPDB": [
        {
          "service_version": "7.7.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        }
      ],
      "HDFS": [
        {
          "service_version": "3.4.3",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.3.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "ICEBERG": [
        {
          "service_version": "1.10.0",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "1.9.1",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "JOURNAL_MANAGER": [
        {
          "service_version": "3.4.3",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.3.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "JRE": [
        {
          "service_version": "17.0.18",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "11.0.4",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        },
        {
          "service_version": "21.0.4",
          "release_name": "tdi-controller",
          "release_version": "4.0.0"
        }
      ],
      "MAPREDUCE": [
        {
          "service_version": "3.4.3",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.3.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "OPEN_METADATA": [
        {
          "service_version": "1.12.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        }
      ],
      "OPEN_SEARCH": [
        {
          "service_version": "3.2.0",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.4.0",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "PXF": [
        {
          "service_version": "7.1.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "7.1.1",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "SPARK_ON_YARN": [
        {
          "service_version": "4.1.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.5.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "SPARK_STANDALONE": [
        {
          "service_version": "4.1.1",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.5.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "YARN": [
        {
          "service_version": "3.4.3",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.3.6",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ],
      "ZOOKEEPER": [
        {
          "service_version": "3.9.3",
          "release_name": "tdi-runtime",
          "release_version": "4.0.0"
        },
        {
          "service_version": "3.9.3",
          "release_name": "tdi-runtime",
          "release_version": "3.0.0"
        }
      ]
    }
  3. UI allow selecting versions not downloaded - documented but very stupid

  4. Password limitations are horrible limiting the string to 16 chars is dumb and horrible considering industry best practices and VCF standards

  5. VM names cant contain any special characters including "-" which is insane - this breaks any normal naming conventions with customers

  6. folder placement in vsphere is not possible which is a joke - this is a no go for many customers

  7. when deploying a cluster i can only add a password ssh credential not an ssh key credential which is horrible security wise - this makes no sense at any level

  8. PLAIN TEXT PASSWORDS IN STRUCTURED LOGS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    file location: /opt/broadcom/connector/logs/connector.log
    log example:

    {"@timestamp":"2026-05-05T05:04:21.209287-06:00","@version":"1","message":"With parameters: [ScriptExecutionRequest(eventId=d23fa3fc-263d-48c6-bb49-7f4058a923cd, scriptRelativePath=tdl-scripts/opensearch/3/install.sh, timeoutSeconds=300, commandParameters=[-o, install], environmentVariables={SERVICE_JAVA_GROUP=jre_user, SERVICE_BINARY_FILE_PATH=opensearch-3.4.0.el9.tar.gz, CRYPTOGRAPHIC_METHOD=SHA256, SERVICE_INSTALLATION_DIRECTORY=/opt/broadcom, SERVICE_INSTALLATION_SYMLINK=/opt/broadcom/opensearch, SERVICE_HOME=/opt/broadcom/opensearch-3.4.0, SERVICE_USER=opensearch, SERVICE_USER_GROUP=opensearch}, files=[opensearch-3.4.0.el9.tar.gz], dependentRelativePaths=[tdl-scripts/common/os-utils.sh], useSudo=true, sudoPassword=<PLAIN_TEXT_PASSWORD>)]","logger_name":"com.broadcom.gphadoop.logging.GpHadoopAsyncConfig","thread_name":"GPDLAsyncThread-8","level":"ERROR","level_value":40000}
    
  9. failed job says to look at a file which does not exist!

    java.lang.reflect.InvocationTargetException
    	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
    	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    	at com.broadcom.gphadoop.job_engine.service.MethodInvocationService.callMethod(MethodInvocationService.    java:24)
    	at com.broadcom.gphadoop.job_engine.service.JobService.lambda$retryTask$11(JobService.java:309)
    	at com.broadcom.gphadoop.job_engine.service.ThreadManager.lambda$submit$0(ThreadManager.java:66)
    	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.base/java.lang.Thread.run(Unknown Source)
    Caused by: com.broadcom.gphadoop.exceptions.GpHadoopException: Remote operation failed. Please review the event     logs located at /opt/broadcom/connector/runtime/events/tdl-<failed_events>/<stdout.log or stderr.log> for     detailed error information. The following events {10.250.50.40=[d07a9b7e-fdfc-41cf-99dc-2e4eb5dd3867]} have     failed or timed out for resource Installing (OPEN_SEARCH), resourceId:92a1ae8f-626e-49c3-9a0b-787af9a01c3a.
    	at com.broadcom.gphadoop.rse.service.RemoteExecutionInvocationService.watchAllEventsForCompletion    (RemoteExecutionInvocationService.java:182)
    	at com.broadcom.gphadoop.provisioner.service.operation.TdlService.uploadAndInstall(TdlService.java:446)
    	at com.broadcom.gphadoop.provisioner.tasks.platform.SetupVirtualMachine.installServicesForBaseVms    (SetupVirtualMachine.java:710)
    	... 9 more
    

    command:

    tree /opt/broadcom/connector/runtime/events/

    output:

    /opt/broadcom/connector/runtime/events/
    ├── 21991d5d-b260-4c4b-967f-c46ceb97c59e
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── 49759db4-2ac0-410d-902a-c05cfb58861b
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── 94b53989-db3c-4089-ac89-2a29947891ab
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── c1ce467b-989a-443a-aaae-13933b0769aa
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── c395d79d-f363-4b69-b604-c21738b094a7
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── cfdd6d6d-0bf5-40a3-a31c-58f6a504134c
    │   └── opensearch-3.4.0.el9.tar.gz
    ├── d07a9b7e-fdfc-41cf-99dc-2e4eb5dd3867
    │   └── opensearch-3.4.0.el9.tar.gz
    └── d23fa3fc-263d-48c6-bb49-7f4058a923cd
        └── opensearch-3.4.0.el9.tar.gz
    8 directories, 8 files
  10. cant get connection details in the UI for the services like opensearch - found it has no credentials at all which is horrible!

  11. no way to reconfigure a cluster eg. add a service, resize a service instance, add storage as a day2 action

  12. deleting a cluster retains the vsphere vm folder sometimes and sometimes not which simply leaves garbage behind but is not deterministic

  13. node provisioning is sequential and it seems almost everything in cluster creation is sequential. this makes deployment times extremely long for no apparent reason

  14. vms have no custom attributes, tags, notes etc. to allow knowing which services are on a VM and all VMs in a cluster have the same name with a numerical suffix making it very hard to correlate and find what is what

  15. on instance tab if there are more then 10 instances by default not all are shown , no next page button, need to change instances per page to see all instances which is a horrible UX image

  16. VMs for a cluster are all deployed with the same hardware config which is not what is configured in the UI and deployed to an incorrect network, only after they are reconfigured. this is horrible and makes no sense a any level

  17. the dev roles permissions make no sense for developer users at any level

  18. order of tasks in job details are not sortable and are in no normal understandable order image

  19. start stop and restart actions always available for instances and no visibility into the actual state of the instances. same is true for services in a cluster image image

  20. very unstable, times out often, needs manual retry of tasks, no way to increase timeouts

  21. IPs are not allocated in order instead randomly which makes no sense, previously used IPs are not released either in some cases image

  22. no external IDP integration

  23. no visibility into the progress status of the deployment, there should be a visibility into step x/y is being done, or percent complete, estimated time left etc.

  24. dashboard data is completely incorrect (number of hosts, number up, number N/A, service counts also are wrong) image

  25. no dark mode!!!!

  26. logs are completely not understandable, typical java junk logs, no clear visibility and troubleshooting possible in the UI just a stacktrace snippet with wrong information! (half the time the files dont exist yet, there is no tdl- prefix in the folder name as is implied in the log, need to scroll insane amounts to the side to find the id of the event and which vm it is on just to piece together where to look for the sometimes existing logs) image image

  27. use local db points at the DB on the controller machine, which is configured to only listen on localhost, requiring changes to the pg_hba.conf and postgresql.conf to make it work image

  28. small size fails, no prechecks are done. opensearch fails to start because of lack of memory image

  29. no way to seperate who can see what which makes no sense

  30. hosts should show which services are deployed on them currently mapping can only be done via logs, ssh, or ip mapping in your head

  31. jobs cant be filtered by name, created by or created/updated fields, only status and resource name which is bad UX

  32. audit logs are completely useless with zero valuable data

  33. Instances running Greenplum DB Coordinator, Apache Hadoop HDFS secondary data node, Greenplum Command Center, Apache Hadoop YARN Node Manager, Greenplum PXF, Greenplum Database Segment, show as N/A in their hosts status image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment