Skip to content

Common crashes just after startup #258

@neilschelly

Description

@neilschelly

I have been having trouble starting the container version. It will work more often than not with a small configuration (one database and just the default metrics). But it may take 3-5 times restarting it to get it to run when I load all 6 of the databases I want to monitor and the custom additional metrics queries I have too.

I am working to to track down the exact cause, but I'm confident that this happens sometimes with a single-database configuration (as follows) and only the default metrics. I'll post more as I learn more.

The config.yml is as follows:

databases:
    alpha:
        username: USERNAME
        password: PASSWORD
        url: SERVERNAME:1521/SERVICENAME
        maxOpenConns: 10
        maxIdleConns: 10
      
log:
    # This is for querying the v%diag_alert_ext table and dumping it's contents
    # to /log/alert.log inside the container.
    disable: 1

Our container is built from the following Dockerfile:

FROM container-registry.oracle.com/database/observability-exporter:2.0.1

ADD config.yml /config.yml

CMD ["--config.file", "/config.yml"]

Here's what a successful run looks like:

docker run -it --rm  -p 9161:9161 \
  --log-opt max-size=100M \
  --name oracle_exporter \
  -m 50m \
  -v `pwd`/configuration:/configuration \
ird-oracle_exporter:latest  # --log.level=debug
time=2025-06-16T20:12:46.496Z level=INFO source=main.go:75 msg="FREE_INTERVAL end var is not present, will not periodically attempt to release memory"
time=2025-06-16T20:12:46.496Z level=INFO source=main.go:82 msg="RESTART_INTERVAL env var is not present, so will not restart myself periodically"
time=2025-06-16T20:12:46.496Z level=INFO source=main.go:116 msg="alpha database max idle connections is greater than 0, so will use go-sql connection pool and pooling settings will be ignored"
time=2025-06-16T20:12:46.496Z level=INFO source=database.go:91 msg="Using Username/Password Authentication." database=alpha
godror WARNING: discrepancy between SESSIONTIMEZONE ("+00:00"=0) and SYSTIMESTAMP ("-04:00"=-400) - set connection timezone, see https://github.com/godror/godror/blob/master/doc/timezone.md
time=2025-06-16T20:12:47.046Z level=INFO source=database.go:161 msg="Connected as SYSDBA? FALSE" database=alpha
time=2025-06-16T20:12:48.221Z level=INFO source=main.go:131 msg="Starting oracledb_exporter" version=2.0.1
time=2025-06-16T20:12:48.221Z level=INFO source=main.go:132 msg="Build context" build="(go=go1.23.8, platform=linux/amd64, user=, date=, tags=unknown)"
time=2025-06-16T20:12:48.221Z level=INFO source=main.go:133 msg="Collect from: " metricPath=/metrics
time=2025-06-16T20:12:48.221Z level=INFO source=main.go:184 msg="log.disable set to 1, so will not export the alert logs"
time=2025-06-16T20:12:48.221Z level=INFO source=tls_config.go:347 msg="Listening on" address=[::]:9161
time=2025-06-16T20:12:48.221Z level=INFO source=tls_config.go:350 msg="TLS is disabled." http2=false address=[::]:9161

With no changes, just stopping and running the same container again moments later, here's the output:

docker run -it --rm  -p 9161:9161 \
  --log-opt max-size=100M \
  --name oracle_exporter \
  -m 50m \
  -v `pwd`/configuration:/configuration \
ird-oracle_exporter:latest  # --log.level=debug
time=2025-06-16T20:12:54.070Z level=INFO source=main.go:75 msg="FREE_INTERVAL end var is not present, will not periodically attempt to release memory"
time=2025-06-16T20:12:54.070Z level=INFO source=main.go:82 msg="RESTART_INTERVAL env var is not present, so will not restart myself periodically"
time=2025-06-16T20:12:54.070Z level=INFO source=main.go:116 msg="alpha database max idle connections is greater than 0, so will use go-sql connection pool and pooling settings will be ignored"
time=2025-06-16T20:12:54.070Z level=INFO source=database.go:91 msg="Using Username/Password Authentication." database=alpha
godror WARNING: discrepancy between SESSIONTIMEZONE ("+00:00"=0) and SYSTIMESTAMP ("-04:00"=-400) - set connection timezone, see https://github.com/godror/godror/blob/master/doc/timezone.md
time=2025-06-16T20:12:54.631Z level=INFO source=database.go:161 msg="Connected as SYSDBA? FALSE" database=alpha
double free or corruption (top)
SIGABRT: abort
PC=0x7f16230a95ef m=3 sigcode=18446744073709551610
signal arrived during cgo execution```

The above error is followed by a very long stack track that I'll attach here.

[stacktrace.txt](https://github.com/user-attachments/files/20763971/stacktrace.txt)

Metadata

Metadata

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