Skip to content

Set z.Spec.EnableConnectionPooler=false when using dirty image #293

@eberlep

Description

@eberlep

Related to #282

The operator image dist with a nil reference:

time="2021-11-22T10:54:29Z" level=debug msg="closing database connection" cluster-name=153599d49eee467b-989fb2dbf8e049a99477/pgwallis-sonatypedb989fb2dbf8 pkg=cluster
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x18d8fce]

goroutine 14 [running]:
github.com/zalando/postgres-operator/pkg/cluster.(*Cluster).syncConnectionPooler(0xc000273000, 0xc000a3d3b0, 0xc000d01c00, 0xc000a3d380, 0x0, 0x0, 0x0, 0x4, 0x0)
        /Users/armin/Documents/Cybertec/postgres-operator-standby-fork/pkg/cluster/connection_pooler.go:716 +0xc4e
github.com/zalando/postgres-operator/pkg/cluster.(*Cluster).Sync(0xc000273000, 0xc000d01c00, 0x0, 0x0)
        /Users/armin/Documents/Cybertec/postgres-operator-standby-fork/pkg/cluster/sync.go:142 +0x8e5
github.com/zalando/postgres-operator/pkg/controller.(*Controller).processEvent(0xc0006a4380, 0xc05efb98b0b29efe, 0x1a40d70ace5, 0x2d53360, 0xc00108a300, 0x24, 0x1de35ec, 0x4, 0x0, 0xc000d01c00, ...)
        /Users/armin/Documents/Cybertec/postgres-operator-standby-fork/pkg/controller/postgresql.go:310 +0xc45
github.com/zalando/postgres-operator/pkg/controller.(*Controller).processClusterEventsQueue(0xc0006a4380, 0x0, 0xc0000f0ea0, 0xc00020c1f0)
        /Users/armin/Documents/Cybertec/postgres-operator-standby-fork/pkg/controller/postgresql.go:344 +0x278
created by github.com/zalando/postgres-operator/pkg/controller.(*Controller).Run
        /Users/armin/Documents/Cybertec/postgres-operator-standby-fork/pkg/controller/controller.go:441 +0x8a

This is the corresponding code: https://github.com/ermajn/postgres-operator/blob/1cc716630ca9968cbfb85bc669877bc9e2e78eca/pkg/cluster/connection_pooler.go#L716

The culprit seems to be *newSpec.Spec.EnableConnectionPooler, so we probably need to set it:

z.Spec.EnableConnectionPooler = pointer.Bool(false)

This does not seem to occur in the operator we used before, but I think that one was a bit newer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions