{"id":22289752,"url":"https://github.com/cfryanr/network-demo","last_synced_at":"2025-09-22T03:35:07.544Z","repository":{"id":115058129,"uuid":"259822399","full_name":"cfryanr/network-demo","owner":"cfryanr","description":null,"archived":false,"fork":false,"pushed_at":"2020-04-29T04:28:30.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-14T03:04:01.304Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfryanr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-29T04:17:53.000Z","updated_at":"2020-04-29T04:28:33.000Z","dependencies_parsed_at":"2023-04-13T16:55:46.769Z","dependency_job_id":null,"html_url":"https://github.com/cfryanr/network-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cfryanr/network-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfryanr%2Fnetwork-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfryanr%2Fnetwork-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfryanr%2Fnetwork-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfryanr%2Fnetwork-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfryanr","download_url":"https://codeload.github.com/cfryanr/network-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfryanr%2Fnetwork-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276341893,"owners_count":25625576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T17:09:58.853Z","updated_at":"2025-09-22T03:35:07.519Z","avatar_url":"https://github.com/cfryanr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About this App\n\nUpon startup, this app immediately attempts to open outgoing HTTP connections to CAPI and to example.com.\n\nSee `src/main/java/com/example/demo/DemoApplication.java` for implementation.\n\nThis app exists to demonstrate that these outgoing connections do not work reliably on\n[cf-for-k8s v0.1.0](https://github.com/cloudfoundry/cf-for-k8s/releases/tag/v0.1.0).\n\n## Steps to Reproduce\n\n1. Clone this repo.\n   We'll assume that you cloned it to `/Users/pivotal/workspace/network-demo` for the rest of this doc.\n\n1. Compile the app. Don't forget to repeat this step each time you change the code while debugging.\n\n   ```\n   cd /Users/pivotal/workspace/network-demo\n   ./mvnw install\n   ```\n\n1. When pushing this app to cf-for-k8s, both outgoing connections fail\n   16 out of 20 times during app startup using the following loop:\n\n   ```\n   for i in {1..20}; do echo \"Running attempt #$i\"; cf delete -f network-demo; cf push network-demo -p /Users/pivotal/workspace/network-demo/target/demo-0.0.1-SNAPSHOT.jar; kubectl logs $(kubectl get pods -n cf-workloads | grep network-demo | cut -d' ' -f1) -n cf-workloads -c opi; done\n   ```\n\n   Outgoing connections to CAPI and to example.com will either both fail or both succeed.\n\n   When they fail, the exception for each outgoing connection is:\n   ```\n   java.net.ConnectException: Connection refused (Connection refused)\n       at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)\n       at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)\n       at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)\n       at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)\n       at java.base/java.net.SocksSocketImpl.connect(Unknown Source)\n       at java.base/java.net.Socket.connect(Unknown Source)\n       at java.base/sun.security.ssl.SSLSocketImpl.connect(Unknown Source)\n       at java.base/sun.security.ssl.SSLSocketImpl.\u003cinit\u003e(Unknown Source)\n       at java.base/sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)\n       at com.example.demo.DemoApplication.connectTo(DemoApplication.java:32)\n       at com.example.demo.DemoApplication.main(DemoApplication.java:18)\n   ```\n\n1. Note that sleeping for 2 seconds upon app startup before trying to open the sockets\n   causes the outgoing connections to be successful more reliably, e.g. did not fail\n   in 20 attempts using the same `for` loop command as above.\n\n## Desired Behavior\n\nThese outgoing HTTP requests should not always fail for the first few seconds of the app's run.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfryanr%2Fnetwork-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfryanr%2Fnetwork-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfryanr%2Fnetwork-demo/lists"}