timescale / tsbs

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

panic: runtime error: makeslice: cap out of range error #197

Open marcelcastrobr opened 2 years ago

marcelcastrobr commented 2 years ago

Hi, I am trying to create a 1 year dataset for the iot scenario with 10.000tags/sec using the tsbs_load load timescaledb. To go faster, I decided to run in the same machine several tsbs_load command in parallel (like 1 per month). The first tsbs_load command works, but when I run the second tsbs_load in parallel I get the following error:

Using config file: config-timescale-ec2-feb.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 57 [running]: github.com/timescale/tsbs/pkg/targets/timescaledb.(processor).splitTagsAndMetrics(0xc0003e5c00, {0xc001640000, 0x149e, 0xb?}, 0x2) /home/ubuntu/tsbs/pkg/targets/timescaledb/process.go:160 +0x2f1 github.com/timescale/tsbs/pkg/targets/timescaledb.(processor).processCSI(0xc0003e5c00, {0xc001710360, 0xb}, {0xc001640000, 0x149e, 0x1c00}) /home/ubuntu/tsbs/pkg/targets/timescaledb/process.go:191 +0xc9 github.com/timescale/tsbs/pkg/targets/timescaledb.(processor).ProcessBatch(0xc0003e5c00, {0x109ffe0?, 0xc0004e06d0}, 0x1) /home/ubuntu/tsbs/pkg/targets/timescaledb/process.go:392 +0x171 github.com/timescale/tsbs/load.(noFlowBenchmarkRunner).work(0xc0009720b0, {0x10a65e0?, 0xc00094c7e0?}, 0x0?, 0x0?, 0x0?) /home/ubuntu/tsbs/load/loader-no-flow-control.go:57 +0x103 created by github.com/timescale/tsbs/load.(*noFlowBenchmarkRunner).RunBenchmark /home/ubuntu/tsbs/load/loader-no-flow-control.go:27 +0x117_

The command I am using is the following: tsbs_load load timescaledb --config=config-timescale-ec2-feb.yaml

And the config-timescale-ec2-feb.yaml looks like: data-source: simulator: debug: 0 initial-scale: "0" log-interval: 1s max-data-points: "0" max-metric-count: "100" scale: 1000 seed: 0 timestamp-end: "2022-02-01T00:00:00Z" timestamp-start: "2022-02-28T00:00:00Z" use-case: iot type: SIMULATOR loader: db-specific: admin-db-name: postgres chunk-time: 12h0m0s create-metrics-table: false field-index: VALUE-TIME field-index-count: 0 force-text-format: false host: XX port: XX user: XX pass: 'XX' in-table-partition-tag: false log-batches: false partition-index: true partitions: 0 postgres: sslmode=disable replication-factor: 0 time-index: true time-partition-index: false use-hypertable: true use-insert: false use-jsonb-tags: false write-profile: "" write-replication-stats: "" runner: batch-size: "10000" channel-capacity: "0" db-name: cpmcompress do-abort-on-exist: false do-create-db: false do-load: true flow-control: false hash-workers: false insert-intervals: "" limit: "0" reporting-period: 10s seed: 0 workers: "15" target: timescaled

Any thing I am doing wrong? Any help is appreciated.