timescale / tsbs

Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data
MIT License
1.28k stars 299 forks source link

timescale: tsbs_load panics with option `create-metrics-table: false` #232

Closed arajkumar closed 1 year ago

arajkumar commented 1 year ago

The configuration below was used to populate the database. In the second run, the loader.db-specific.create-metrics-table setting was set to false to prevent the table from being recreated.

data-source:
  simulator:
    debug: 0
    initial-scale: "0"
    log-interval: 60s
    max-data-points: "0"
    max-metric-count: "10000"
    scale: "1"
    seed: 100
    timestamp-start: "2020-01-02T00:00:00Z"
    timestamp-end: "2020-01-03T00:00:00Z"
    use-case: iot
  type: SIMULATOR
loader:
  db-specific:
    admin-db-name: nft
    chunk-time: 12h0m0s
    create-metrics-table: true
    field-index: VALUE-TIME
    field-index-count: 0
    force-text-format: false
    host: "host"
    in-table-partition-tag: false
    log-batches: true
    partition-index: true
    partitions: 0
    pass: "pass"
    port: "26479"
    postgres: sslmode=require
    replication-factor: 0
    time-index: true
    time-partition-index: false
    use-hypertable: false
    use-insert: false
    use-jsonb-tags: false
    user: tsdbadmin
    write-profile: ""
    write-replication-stats: ""
  runner:
    batch-size: "100"
    channel-capacity: "0"
    db-name: nft
    do-abort-on-exist: false
    do-create-db: false
    do-load: true
    flow-control: true
    hash-workers: true
    insert-intervals: "10"
    limit: "0"
    reporting-period: 5s
    seed: 100
    workers: "2"
  target: timescaledb

However the second run panics with the below stack trace,

./bin/tsbs_load load timescaledb --config ./config.yaml

Using config file: ./config.yaml
time,per. metric/s,metric total,overall metric/s,per. row/s,row total,overall row/s
panic: runtime error: makeslice: cap out of range

goroutine 24 [running]:
github.com/timescale/tsbs/pkg/targets/timescaledb.(*processor).splitTagsAndMetrics(0x14000aed740, {0x14000448200, 0x33, 0xb?}, 0x2)
        /Users/arajkumar/works/timescale/tsbs/pkg/targets/timescaledb/process.go:160 +0x2a0
github.com/timescale/tsbs/pkg/targets/timescaledb.(*processor).processCSI(0x14000aed740, {0x140001a4500, 0xb}, {0x14000448200, 0x33, 0x40})
        /Users/arajkumar/works/timescale/tsbs/pkg/targets/timescaledb/process.go:191 +0xa0
github.com/timescale/tsbs/pkg/targets/timescaledb.(*processor).ProcessBatch(0x14000aed740, {0x10521dad8?, 0x1400018d300}, 0x1)
        /Users/arajkumar/works/timescale/tsbs/pkg/targets/timescaledb/process.go:392 +0x110
github.com/timescale/tsbs/load.(*CommonBenchmarkRunner).work(0x140008ae000, {0x1052245a0?, 0x1400089c180?}, 0x0?, 0x1400018d2d0, 0x0?)
        /Users/arajkumar/works/timescale/tsbs/load/loader.go:285 +0xdc
created by github.com/timescale/tsbs/load.(*CommonBenchmarkRunner).RunBenchmark
        /Users/arajkumar/works/timescale/tsbs/load/loader.go:198 +0x1d0