Skip to content

Commit a9ad908

Browse files
build(deps): bump github.com/godror/godror from 0.33.2 to 0.49.0 (#45181)
* build(deps): bump github.com/godror/godror from 0.33.2 to 0.49.0 Bumps [github.com/godror/godror](https://github.com/godror/godror) from 0.33.2 to 0.49.0. - [Changelog](https://github.com/godror/godror/blob/main/CHANGELOG.md) - [Commits](godror/godror@v0.33.2...v0.49.0) --- updated-dependencies: - dependency-name: github.com/godror/godror dependency-version: 0.49.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Fix conflicts --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: subham sarkar <[email protected]>
1 parent 6495466 commit a9ad908

File tree

8 files changed

+490
-31
lines changed

8 files changed

+490
-31
lines changed

NOTICE.txt

Lines changed: 417 additions & 5 deletions
Large diffs are not rendered by default.

go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ require (
7979
github.com/go-viper/mapstructure/v2 v2.4.0
8080
github.com/gocarina/gocsv v0.0.0-20170324095351-ffef3ffc77be
8181
github.com/godbus/dbus/v5 v5.1.0
82-
github.com/godror/godror v0.33.2
82+
github.com/godror/godror v0.49.0
8383
github.com/gofrs/flock v0.8.1
8484
github.com/gogo/protobuf v1.3.2
8585
github.com/gohugoio/hashstructure v0.5.0
@@ -275,6 +275,7 @@ require (
275275
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
276276
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0 // indirect
277277
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
278+
github.com/VictoriaMetrics/easyproto v0.1.4 // indirect
278279
github.com/andybalholm/brotli v1.2.0 // indirect
279280
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
280281
github.com/apache/arrow/go/v15 v15.0.2 // indirect
@@ -334,7 +335,7 @@ require (
334335
github.com/go-openapi/swag v0.23.0 // indirect
335336
github.com/gobwas/glob v0.2.3 // indirect
336337
github.com/goccy/go-json v0.10.5 // indirect
337-
github.com/godror/knownpb v0.1.0 // indirect
338+
github.com/godror/knownpb v0.3.0 // indirect
338339
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
339340
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
340341
github.com/golang-sql/sqlexp v0.1.0 // indirect

go.sum

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ github.com/PaloAltoNetworks/pango v0.10.2 h1:Tjn6vIzzAq6Dd7N0mDuiP8w8pz8k5W9zz/T
155155
github.com/PaloAltoNetworks/pango v0.10.2/go.mod h1:GztcRnVLur7G+VFG7Z5ZKNFgScLtsycwPMp1qVebE5g=
156156
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
157157
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
158+
github.com/UNO-SOFT/zlog v0.8.1 h1:TEFkGJHtUfTRgMkLZiAjLSHALjwSBdw6/zByMC5GJt4=
159+
github.com/UNO-SOFT/zlog v0.8.1/go.mod h1:yqFOjn3OhvJ4j7ArJqQNA+9V+u6t9zSAyIZdWdMweWc=
160+
github.com/VictoriaMetrics/easyproto v0.1.4 h1:r8cNvo8o6sR4QShBXQd1bKw/VVLSQma/V2KhTBPf+Sc=
161+
github.com/VictoriaMetrics/easyproto v0.1.4/go.mod h1:QlGlzaJnDfFd8Lk6Ci/fuLxfTo3/GThPs2KH23mv710=
158162
github.com/aerospike/aerospike-client-go/v7 v7.7.1 h1:lcskBtPZYe6ESObhIEQEp4XO1axYZpaFD3ie4iwr6tg=
159163
github.com/aerospike/aerospike-client-go/v7 v7.7.1/go.mod h1:STlBtOkKT8nmp7iD+sEkr/JGEOu+4e2jGlNN0Jiu2a4=
160164
github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw=
@@ -476,11 +480,9 @@ github.com/go-ldap/ldap/v3 v3.4.6 h1:ert95MdbiG7aWo/oPYp9btL3KJlMPKnP58r09rI8T+A
476480
github.com/go-ldap/ldap/v3 v3.4.6/go.mod h1:IGMQANNtxpsOzj7uUAMjpGBaOVTC4DYyIy8VsTdxmtc=
477481
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
478482
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
479-
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
480483
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
481484
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
482485
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
483-
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
484486
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
485487
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
486488
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
@@ -520,10 +522,10 @@ github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PU
520522
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
521523
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
522524
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
523-
github.com/godror/godror v0.33.2 h1:7UBlS8sAfEQlV5CbkLOJQc90QM+kMthlyLbaAWhawHk=
524-
github.com/godror/godror v0.33.2/go.mod h1:FbrZ7po7LyS3gUTdW/K1+kIoePvP/E044HpwptL4vqw=
525-
github.com/godror/knownpb v0.1.0 h1:dJPK8s/I3PQzGGaGcUStL2zIaaICNzKKAK8BzP1uLio=
526-
github.com/godror/knownpb v0.1.0/go.mod h1:4nRFbQo1dDuwKnblRXDxrfCFYeT4hjg3GjMqef58eRE=
525+
github.com/godror/godror v0.49.0 h1:oXAzPOm7bAGdFGkTaePCRXv3dfyr6Agni++4XhaRcC8=
526+
github.com/godror/godror v0.49.0/go.mod h1:D4gKled+sJVcagT1HWibkBsO9PcLn2Nu96FCr1RtnzI=
527+
github.com/godror/knownpb v0.3.0 h1:+caUdy8hTtl7X05aPl3tdL540TvCcaQA6woZQroLZMw=
528+
github.com/godror/knownpb v0.3.0/go.mod h1:PpTyfJwiOEAzQl7NtVCM8kdPCnp3uhxsZYIzZ5PV4zU=
527529
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
528530
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
529531
github.com/gofrs/uuid/v5 v5.3.2 h1:2jfO8j3XgSwlz/wHqemAEugfnTlikAYHhnqQ8Xh4fE0=
@@ -560,7 +562,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
560562
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
561563
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
562564
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
563-
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
564565
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
565566
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
566567
github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs=
@@ -582,7 +583,6 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
582583
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
583584
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
584585
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
585-
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
586586
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
587587
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
588588
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
@@ -825,7 +825,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J
825825
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
826826
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
827827
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
828-
github.com/oklog/ulid/v2 v2.0.2/go.mod h1:mtBL0Qe/0HAx6/a4Z30qxVIAL1eQDweXq5lxOEiwQ68=
829828
github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s=
830829
github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
831830
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
@@ -853,7 +852,6 @@ github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724 h1:z8XmnNQeCDZB
853852
github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724/go.mod h1:mLJRc1Go8uP32LRALGvWj2lVJ+hDYyIfxDzVa+C5Yo8=
854853
github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2 h1:CXwSGu/LYmbjEab5aMCs5usQRVBGThelUKBNnoSOuso=
855854
github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2/go.mod h1:L3UMQOThbttwfYRNFOWLLVXMhk5Lkio4GGOtw5UrxS0=
856-
github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
857855
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
858856
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
859857
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
@@ -1303,7 +1301,6 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
13031301
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
13041302
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
13051303
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1306-
golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
13071304
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
13081305
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
13091306
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
@@ -1428,8 +1425,6 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
14281425
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
14291426
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
14301427
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
1431-
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
1432-
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
14331428
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
14341429
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
14351430
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
FROM docker.elastic.co/observability-ci/database-enterprise:12.2.0.1
22

3-
HEALTHCHECK --interval=1s --retries=90 CMD /usr/bin/echo 'select 1' | /u01/app/oracle/product/12.2.0/dbhome_1/bin/sqlplus sys/Oradoc_db1@localhost:1521/ORCLPDB1.localdomain AS SYSDBA
3+
ENV ORACLE_BASE=/db/oracle
4+
ENV ORACLE_PASSWORD=Oradoc_db1
5+
6+
HEALTHCHECK --interval=30s --timeout=15s --start-period=60s --retries=5 CMD "bash -c echo 'select sysdate from dual;' | ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/ /u01/app/oracle/product/12.2.0/dbhome_1/bin/sqlplus -s sys/Oradoc_db1@oracle:1521/ORCLCDB.localdomain as sysdba"

x-pack/metricbeat/module/oracle/connection.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func HostParser(mod mb.Module, rawURL string) (mb.HostData, error) {
4242
}
4343

4444
if params.Password.Secret() == "" {
45-
params.StandaloneConnection = true
45+
params.StandaloneConnection = godror.Bool(true)
4646
params.Password = dsn.NewPassword(config.Password)
4747
}
4848

x-pack/metricbeat/module/oracle/testing.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ import (
1515
func GetOracleConnectionDetails(host string) string {
1616
params := godror.ConnectionParams{
1717
CommonParams: dsn.CommonParams{
18-
Username: GetOracleEnvUsername(),
19-
Password: dsn.NewPassword((GetOracleEnvPassword())),
18+
CommonSimpleParams: dsn.CommonSimpleParams{
19+
Username: GetOracleEnvUsername(),
20+
Password: dsn.NewPassword((GetOracleEnvPassword())),
21+
},
2022
},
2123
ConnParams: dsn.ConnParams{
22-
IsSysDBA: true,
24+
AdminRole: dsn.SysDBA,
2325
},
2426
}
2527

x-pack/metricbeat/module/sql/query/dsn.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func oracleParseDSN(config ConnectionDetails, host string) (mb.HostData, error)
9898
params.Username = config.Username
9999
}
100100
if params.Password.Secret() == "" {
101-
params.StandaloneConnection = true
101+
params.StandaloneConnection = godror.Bool(true)
102102
params.Password = dsn.NewPassword(config.Password)
103103
}
104104
return mb.HostData{

x-pack/metricbeat/module/sql/query/query_integration_test.go

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@ func TestPostgreSQL(t *testing.T) {
229229
func TestOracle(t *testing.T) {
230230
service := compose.EnsureUp(t, "oracle")
231231
host, port, _ := net.SplitHostPort(service.Host())
232+
233+
// Wait for Oracle to be ready instead of sleeping for 300 seconds
234+
waitForOracleConnection(t, host, port)
235+
232236
cfg := testFetchConfig{
233237
config: config{
234238
Driver: "oracle",
@@ -302,8 +306,9 @@ func assertFieldContainsFloat64(field string, limit float64) func(t *testing.T,
302306
}
303307

304308
func GetOracleConnectionDetails(t *testing.T, host string, port string) string {
305-
params, err := godror.ParseDSN(GetOracleConnectString(host, port))
306-
require.Empty(t, err)
309+
connectString := GetOracleConnectString(host, port)
310+
params, err := godror.ParseDSN(connectString)
311+
require.NoError(t, err, "Failed to parse Oracle DSN: %s", connectString)
307312
return params.StringWithPassword()
308313
}
309314

@@ -325,7 +330,7 @@ func GetOracleEnvUsername() string {
325330
return username
326331
}
327332

328-
// GetOracleEnvUsername returns the port of the Oracle server or the value of the environment variable ORACLE_PASSWORD if not empty
333+
// GetOracleEnvPassword returns the password to use with Oracle testing server or the value of the environment variable ORACLE_PASSWORD if not empty
329334
func GetOracleEnvPassword() string {
330335
password := os.Getenv("ORACLE_PASSWORD")
331336
if len(password) == 0 {
@@ -334,11 +339,52 @@ func GetOracleEnvPassword() string {
334339
return password
335340
}
336341

342+
// GetOracleConnectString builds the Oracle connection string with proper format
337343
func GetOracleConnectString(host string, port string) string {
338-
time.Sleep(300 * time.Second)
339344
connectString := os.Getenv("ORACLE_CONNECT_STRING")
340345
if len(connectString) == 0 {
341-
connectString = fmt.Sprintf("%s/%s@%s:%s/%s as sysdba", GetOracleEnvUsername(), GetOracleEnvPassword(), host, port, GetOracleEnvServiceName())
346+
// Use the recommended connection string format from godror documentation
347+
// Format: oracle://user/password@host:port/service_name
348+
connectString = fmt.Sprintf("oracle://%s:%s@%s:%s/%s",
349+
GetOracleEnvUsername(),
350+
GetOracleEnvPassword(),
351+
host,
352+
port,
353+
GetOracleEnvServiceName())
354+
355+
// Only add SYSDBA if explicitly using 'sys' user
356+
if GetOracleEnvUsername() == "sys" {
357+
connectString += "?sysdba=1"
358+
}
342359
}
343360
return connectString
344361
}
362+
363+
// waitForOracleConnection waits for Oracle service to be ready with exponential backoff
364+
func waitForOracleConnection(t *testing.T, host, port string) {
365+
maxRetries := 30
366+
baseDelay := 2 * time.Second
367+
368+
for i := 0; i < maxRetries; i++ {
369+
// First check if the port is open
370+
conn, err := net.DialTimeout("tcp", net.JoinHostPort(host, port), 10*time.Second)
371+
if err == nil {
372+
conn.Close()
373+
// Give Oracle a bit more time to fully initialize
374+
time.Sleep(90 * time.Second)
375+
return
376+
}
377+
378+
// (1<<uint(i)) == 2^i, which doubles the delay at each iteration, then multiply by baseDelay
379+
delay := time.Duration(1<<uint(i)) * baseDelay
380+
// But don't let the delay get too long; max out at 30 seconds
381+
if delay > 30*time.Second {
382+
delay = 30 * time.Second
383+
}
384+
385+
t.Logf("Oracle not ready yet (attempt %d/%d), waiting %v: %v", i+1, maxRetries, delay, err)
386+
time.Sleep(delay)
387+
}
388+
389+
t.Fatalf("Oracle service did not become ready after %d attempts", maxRetries)
390+
}

0 commit comments

Comments
 (0)