clustersql
clustersql copied to clipboard
Using more than one cluster will crash ExpVar by reusing "ClusterSql" as exported name
This patch fixes the following problem by introducing a "cluster id".
2015/07/24 10:16:53 Reuse of exported var name: ClusterSql
panic: Reuse of exported var name: ClusterSql
goroutine 1 [running]:
log.Panicln(0xc208031a78, 0x2, 0x2)
/usr/local/Cellar/go/1.4.2/libexec/src/log/log.go:321 +0xb9
expvar.Publish(0x851d70, 0xa, 0x7f24b535f6a0, 0xc20910e940)
/usr/local/Cellar/go/1.4.2/libexec/src/expvar/expvar.go:257 +0x1f4
expvar.NewMap(0x851d70, 0xa, 0xc20910df20)
/usr/local/Cellar/go/1.4.2/libexec/src/expvar/expvar.go:287 +0xc3
github.com/benthor/clustersql.NewDriver(0x7f24b535f678, 0xfe51b0, 0x0, 0x0, 0x0, 0x0)
/Users/benutzer/go/src/github.com/benthor/clustersql/cluster.go:178 +0x4b
[...truncated...]
Good find, although I'd rather not change the API. Maybe look into adding a counter to the expvar name that gets increased for every new instanciation?
You are right: an breaking API change should be the last straw to grasp. How about exporting the driver stats as an array: "ClusterSql": [ ... ] then?
Any updates?