Skip to content

Commit

Permalink
fix for db voilation test
Browse files Browse the repository at this point in the history
• [FAILED] [0.063 seconds]
BindingSqldb CreateServiceBinding When service instance exists When service binding is being created first time [It] should succeed
/__w/app-autoscaler-release/app-autoscaler-release/src/autoscaler/db/sqldb/binding_sqldb_test.go:374

  Timeline >>
  {"timestamp":"1729248292.991818190","source":"binding-sqldb-test","message":"binding-sqldb-test.Cleaning service binding test-binding-id-4 failed:doesn't exist","log_level":1,"data":{}}
  {"timestamp":"1729248292.992060423","source":"binding-sqldb-test","message":"binding-sqldb-test.Cleaning service binding test-binding-id-42 failed:doesn't exist","log_level":1,"data":{}}
  {"timestamp":"1729248292.992296696","source":"binding-sqldb-test","message":"binding-sqldb-test.Cleaning service binding test-binding-id-43 failed:doesn't exist","log_level":1,"data":{}}
  {"timestamp":"1729248293.024851084","source":"binding-sqldb-test","message":"binding-sqldb-test.Cleaning service instance test-instance-id-42 failed:doesn't exist","log_level":1,"data":{}}
  {"timestamp":"1729248293.025138617","source":"binding-sqldb-test","message":"binding-sqldb-test.Cleaning service instance test-instance-id-43 failed:doesn't exist","log_level":1,"data":{}}
  {"timestamp":"1729248293.026132822","source":"binding-sqldb-test","message":"binding-sqldb-test.get-service-instance","log_level":2,"data":{"error":"sql: no rows in result set","query":"SELECT * FROM service_instance WHERE service_instance_id = $1","serviceInstanceId":"test-instance-id-4"}}
  {"timestamp":"1729248293.028556824","source":"binding-sqldb-test","message":"binding-sqldb-test.create-service-binding","log_level":2,"data":{"appid":"test-app-id-4","bindingid":"test-binding-id-4","customMetricsStrategy":"","error":"ERROR: insert or update on table \"binding\" violates foreign key constraint \"fk_binding_custom_metrics_strategy\" (SQLSTATE 23503)","query":"INSERT INTO binding(binding_id, service_instance_id, app_id, created_at, custom_metrics_strategy) VALUES($1, $2, $3, $4,$5)","serviceinstanceid":"test-instance-id-4"}}
  [FAILED] in [It] - /__w/app-autoscaler-release/app-autoscaler-release/src/autoscaler/db/sqldb/binding_sqldb_test.go:375 @ 10/18/24 11:44:53.029
  << Timeline

  [FAILED] Unexpected error:
      <*pgconn.PgError | 0xc0003be200>:
      ERROR: insert or update on table "binding" violates foreign key constraint "fk_binding_custom_metrics_strategy" (SQLSTATE 23503)
      {
          Severity: "ERROR",
          SeverityUnlocalized: "ERROR",
          Code: "23503",
          Message: "insert or update on table \"binding\" violates foreign key constraint \"fk_binding_custom_metrics_strategy\"",
          Detail: "Key (custom_metrics_strategy)=() is not present in table \"metrics_submission\".",
          Hint: "",
          Position: 0,
          InternalPosition: 0,
          InternalQuery: "",
          Where: "",
          SchemaName: "public",
          TableName: "binding",
          ColumnName: "",
          DataTypeName: "",
          ConstraintName: "fk_binding_custom_metrics_strategy",
          File: "ri_triggers.c",
          Line: 2608,
          Routine: "ri_ReportViolation",
      }
  occurred
  In [It] at: /__w/app-autoscaler-release/app-autoscaler-release/src/autoscaler/db/sqldb/binding_sqldb_test.go:375 @ 10
  • Loading branch information
asalan316 committed Oct 18, 2024
1 parent a554409 commit 8e4bf83
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 39 deletions.
1 change: 0 additions & 1 deletion src/acceptance/app/custom_metric_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ func sendMetricToAutoscaler(config *config.Config, appToScaleGUID string, metric
} else {
SendMetric(config, metricProducerAppName, metricThreshold)
}
fmt.Println("INVOKED====================")
return RunningInstances(appToScaleGUID, 5*time.Second)
}
}
95 changes: 59 additions & 36 deletions src/autoscaler/api/db/servicebroker.db.changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,67 @@ databaseChangeLog:
type: timestamp
constraints:
nullable: false
- changeSet:
id: 3
author: qy
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.json
preConditions:
- onFail: MARK_RAN
not:
- foreignKeyConstraintExists:
foreignKeyName: fk_binding_service_instance_id
changes:
- addForeignKeyConstraint:
baseColumnNames: service_instance_id
baseTableName: binding
constraintName: fk_binding_service_instance_id
deferrable: false
initiallyDeferred: false
onDelete: RESTRICT
onUpdate: RESTRICT
referencedColumnNames: service_instance_id
referencedTableName: service_instance
- changeSet:
id: 4
author: silvestre
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.yaml
preConditions:
- onFail: MARK_RAN
not:
- columnExists:
tableName: service_instance
columnName: default_policy
changes:
- addColumn:
tableName: service_instance
columns:
- column:
name: default_policy
type: ${policy_json.type}
- column:
name: default_policy_guid
type: varchar(50)
- changeSet:
id: 5
author: Arsalan
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.yaml
preConditions:
- onFail: MARK_RAN
not:
- columnExists:
tableName: binding
columnName: custom_metrics_strategy
changes:
- addColumn:
tableName: binding
columns:
- column:
name: custom_metrics_strategy
type: varchar(40)
constraints:
nullable: false
- changeSet:
id: 3
id: 6
author: Arsalan
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.json
preConditions:
Expand Down Expand Up @@ -113,28 +167,15 @@ databaseChangeLog:
value: 'same_app'

- changeSet:
id: 4
author: qy
id: 7
author: Arsalan
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.json
preConditions:
- onFail: MARK_RAN
not:
- foreignKeyConstraintExists:
foreignKeyName: fk_binding_service_instance_id
- foreignKeyConstraintExists:
foreignKeyName: fk_binding_custom_metrics_strategy
changes:
- addForeignKeyConstraint:
baseColumnNames: service_instance_id
baseTableName: binding
constraintName: fk_binding_service_instance_id
deferrable: false
initiallyDeferred: false
onDelete: RESTRICT
onUpdate: RESTRICT
referencedColumnNames: service_instance_id
referencedTableName: service_instance

- addForeignKeyConstraint:
baseColumnNames: custom_metrics_strategy
baseTableName: binding
Expand All @@ -145,23 +186,5 @@ databaseChangeLog:
onUpdate: RESTRICT
referencedColumnNames: custom_metrics_strategy
referencedTableName: metrics_submission
- changeSet:
id: 5
author: silvestre
logicalFilePath: /var/vcap/packages/golangapiserver/servicebroker.db.changelog.yaml
preConditions:
- onFail: MARK_RAN
not:
- columnExists:
tableName: service_instance
columnName: default_policy
changes:
- addColumn:
tableName: service_instance
columns:
- column:
name: default_policy
type: ${policy_json.type}
- column:
name: default_policy_guid
type: varchar(50)


5 changes: 3 additions & 2 deletions src/autoscaler/db/sqldb/binding_sqldb.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,10 @@ func (bdb *BindingSQLDB) CreateServiceBinding(ctx context.Context, bindingId str
_, err = bdb.sqldb.ExecContext(ctx, query, bindingId, serviceInstanceId, appId, time.Now(), customMetricsStrategy)

if err != nil {
bdb.logger.Error("create-service-binding", err, lager.Data{"query": query, "serviceinstanceid": serviceInstanceId, "bindingid": bindingId, "appid": appId, "customMetricsStrategy": customMetricsStrategy})
bdb.logger.Error("create-service-binding", err, lager.Data{"query": query, "serviceInstanceId": serviceInstanceId, "bindingId": bindingId, "appId": appId, "customMetricsStrategy": customMetricsStrategy})
return err
}
return err
return nil
}

func (bdb *BindingSQLDB) isBindingExists(ctx context.Context, bindingId string, serviceInstanceId string, appId string) error {
Expand Down
2 changes: 2 additions & 0 deletions src/autoscaler/db/sqldb/binding_sqldb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ var _ = Describe("BindingSqldb", func() {
Describe("CreateServiceBinding", func() {

JustBeforeEach(func() {

err = bdb.CreateServiceBinding(context.Background(), testBindingId, testInstanceId, testAppId, customMetricsStrategy)
})
Context("When service instance doesn't exist", func() {
Expand All @@ -368,6 +369,7 @@ var _ = Describe("BindingSqldb", func() {
BeforeEach(func() {
err = bdb.CreateServiceInstance(context.Background(), models.ServiceInstance{ServiceInstanceId: testInstanceId, OrgId: testOrgGuid, SpaceId: testSpaceGuid, DefaultPolicy: policyJsonStr, DefaultPolicyGuid: policyGuid})
Expect(err).NotTo(HaveOccurred())
customMetricsStrategy = "same_app"
})

Context("When service binding is being created first time", func() {
Expand Down

0 comments on commit 8e4bf83

Please sign in to comment.