Commit Graph

4907 Commits (6c7bda097b1549039cf725b15d36891d12719b21)

Author SHA1 Message Date
Philip O'Toole 6c7bda097b Merge pull request #2197 from influxdb/server_open_race
Lock server during Open()
2015-04-08 09:23:54 -07:00
Philip O'Toole 7258a4bc7c Lock server during Open()
Fix issue #2196
2015-04-08 09:18:40 -07:00
Cory LaNou 3f0d0eb017 Merge pull request #2195 from influxdb/http-logger-status-fix
Fix http logger to report status OK if never set
2015-04-08 10:00:14 -06:00
Cory LaNou ea94f342f1 Fix http logger to report status OK if never set 2015-04-08 09:38:17 -06:00
Cory LaNou aedb8ab300 Merge pull request #2194 from influxdb/fmt-fix
fix fmt error
2015-04-08 09:34:31 -06:00
Cory LaNou 39d74e0486 fix fmt error 2015-04-08 09:26:23 -06:00
Paul Dix 5ed69589ea Merge pull request #2158 from n1tr0g/set_password
Add support for SET PASSWORD FOR user = 'PASSWORD'
2015-04-08 09:30:44 -04:00
Todd Persen 40c21c175a Merge pull request #2170 from influxdb/fix-2170-return-200-on-missing-tag
SELECT on tag that doesn't exist should return 200
2015-04-07 14:19:07 -07:00
Ben Johnson 622e3b2894 Merge pull request #2187 from influxdb/broker-checksum
Broker checksum
2015-04-07 14:50:06 -06:00
Todd Persen 59fc8b9215 Update CHANGELOG.md 2015-04-07 13:43:37 -07:00
Ben Johnson cc83f2c39b Add checksum to message encoding
This commit changes the binary format of messaging.Message to encode
a 4-byte checksum at the beginning of it. This is used when reading
data back out to verify that it is not corrupt.

Corrupted messages are truncated on recovery so the broker can
restart from the previous message.
2015-04-07 14:24:22 -06:00
Jason Wilder d36bc32395 Merge pull request #2182 from influxdb/jw-configs
Fix issues when using config files
2015-04-07 13:45:10 -06:00
Todd Persen e1472257b0 Make sure that we return a `200 OK` when querying for a tag that doesn't exist. 2015-04-07 12:28:38 -07:00
Ben Johnson 7aad1a5820 Remove dead code in messaging. 2015-04-07 12:36:07 -06:00
Todd Persen 214b405c47 Merge pull request #2181 from influxdb/show_diags
Switch on "SHOW DIAGNOSTICS" statement
2015-04-07 11:18:22 -07:00
Jason Wilder be10db87d2 Ensure broker and data nodes are enabled by default
NewTestConfig() would enable broker and data nodes so running
influxd w/o a config file would start the nodes.  If you ran
influxd w/ a config file but did not explicitly set Data.Enabled
or Broker.Enabled, the server would not start.  This is not
intuitive when moving to a config file setup.

Instead, broker and data are enabled w/ the config file (like w/o)
and they must be explicitly disabled to run in a data or broker
only mode. This will help w/ backwards compatibility with existing
config files.
2015-04-07 12:17:34 -06:00
Jason Wilder 2b502858dc Prevent starting server if both broker and data are disabled
Not a valid configuration so print the error and some suggestions
to fix it.
2015-04-07 12:17:28 -06:00
Cory LaNou fadcef0bd3 Merge pull request #2180 from influxdb/http-gzip-posts
Allow http write handler to decode gzipped body
2015-04-07 11:00:14 -05:00
Cory LaNou 43cefd45ea Update CHANGELOG.md 2015-04-07 10:55:07 -05:00
Cory LaNou 13f318b084 Allow http write handler to decode gzipped body 2015-04-07 10:34:55 -05:00
Paul Dix a72707bdbc Merge pull request #2175 from influxdb/data-broker-1934
Separate broker and data nodes
2015-04-07 11:33:39 -04:00
Philip O'Toole 6536beb549 Switch on "SHOW DIAGNOSTICS" statement
Fix issue #2179
2015-04-07 08:21:42 -07:00
Jason Wilder fd11797dcb Update CHANGELOG
Add #2175
2015-04-06 21:41:46 -06:00
Jason Wilder 9e109e847b Fix typos in comments 2015-04-06 21:39:18 -06:00
Jason Wilder 0f1fb3a5c3 Fix race on Topic.indexByUrl
applySetTopicMaxIndex() was updating the topics.indexByUrl w/o locking it.

WARNING: DATA RACE
Write by goroutine 1365:
  runtime.mapassign1()
      /usr/local/go/src/runtime/hashmap.go:376 +0x0
  github.com/influxdb/influxdb/messaging.(*Broker).applySetTopicMaxIndex()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/messaging/broker.go:496 +0x198
  github.com/influxdb/influxdb/messaging.(*Broker).Apply()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/messaging/broker.go:542 +0x33a
  github.com/influxdb/influxdb.(*Broker).Apply()
      <autogenerated>:1 +0x78
  github.com/influxdb/influxdb/messaging.(*RaftFSM).Apply()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/messaging/broker.go:614 +0x24f
  github.com/influxdb/influxdb/raft.(*Log).applyNextUnappliedEntry()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/raft/log.go:1431 +0x75c
  github.com/influxdb/influxdb/raft.(*Log).applier()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/raft/log.go:1369 +0x18f

Previous read by goroutine 1540:
  runtime.mapiterinit()
      /usr/local/go/src/runtime/hashmap.go:535 +0x0
  github.com/influxdb/influxdb/messaging.(*Topic).DataURLs()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/messaging/broker.go:681 +0x11d
  github.com/influxdb/influxdb/cmd/influxd.(*Handler).serveMetadata()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/cmd/influxd/handler.go:95 +0x3fd
  github.com/influxdb/influxdb/cmd/influxd.(*Handler).ServeHTTP()
      /home/ubuntu/.go_project/src/github.com/influxdb/influxdb/cmd/influxd/handler.go:45 +0x540
  net/http.serverHandler.ServeHTTP()
      /usr/local/go/src/net/http/server.go:1703 +0x1f6
  net/http.(*conn).serve()
      /usr/local/go/src/net/http/server.go:1204 +0x1087
2015-04-06 21:16:19 -06:00
Mark Rushakoff 48b3986579 Merge pull request #2176 from influxdb/consistent-usage-printing
Use fmt.Println, not log.Println to print usage
2015-04-06 15:55:21 -07:00
Todd Persen 89ae8b36ee Merge pull request #2177 from influxdb/gzip-post-script
Update test script to read and write with gzip compression
2015-04-06 15:39:53 -07:00
Cory LaNou 4e8b98702a properly submit gzipped data. 2015-04-06 15:38:14 -07:00
Cory LaNou 63ded4f3f5 update test script to read and write with gzip compression 2015-04-06 15:38:14 -07:00
Jason Wilder 01c2de62b0 Rename Server to Node
Server is very overloaded currently so use Node to represent the
container that holds onto a broker and data node (server currently)
2015-04-06 16:38:01 -06:00
Jason Wilder ba61643a91 Update config.toml.sample
Removed unused items and add new ones
2015-04-06 16:38:01 -06:00
Jason Wilder 54821538d1 Ignore join urls if restarting a node
If a node is restarted and it had already joined the cluster,
ignore and log that the join urls are being ignored and existing
cluster state will be used.
2015-04-06 16:38:01 -06:00
Jason Wilder aa5696c10d Handle server unavailable response
When starting multiple servers concurrently, they can race to connect
to each other.  This change just has the join attempts retry to make
cluster setup easier.
2015-04-06 16:38:01 -06:00
Jason Wilder 01ee3fe352 Re-enable 3 node test 2015-04-06 16:38:01 -06:00
Jason Wilder 8b5307f6e8 Remove all join URLs from config
This removes all join URLs from the config.  To join a node to a
cluster, the URL of another member of the cluster should be passed
on the command line w/ the -join flag.  The join URLs can now be
any node regardless of whether the node is a broker only or data
only node.  At join time, the receiving node will redirect the
request to a valid broker or data node if it cannot handle the request
itself.
2015-04-06 16:38:01 -06:00
Jason Wilder 9af362bff5 Rename DataAddrUDP to APIAddrUDP 2015-04-06 16:38:00 -06:00
Jason Wilder d06c4ead5c Replace broker url w/ cluster url 2015-04-06 16:38:00 -06:00
Jason Wilder 5e3c26a636 Replace data port w/ cluster port 2015-04-06 16:38:00 -06:00
Jason Wilder b85eba550d Separate cluster and API endpoints 2015-04-06 16:38:00 -06:00
Jason Wilder 4a7cae4391 Replace broker port w/ cluster port 2015-04-06 16:38:00 -06:00
Jason Wilder 23819d10d2 Add Cluster port
This is the port that all cluster communication will take place
over.  It will replace the separate data and broker ports.
2015-04-06 16:38:00 -06:00
Jason Wilder 73f6f8cb44 Remove unused cluster config section 2015-04-06 16:38:00 -06:00
Jason Wilder 8ff4b51063 Temporarily disable 3 node server test
How a cluster is setup has changed and this test is failing w/
panic: assert failed: invalid initial server id: 2 [recovered]

There is an existing multi-node test w/ a broker and two data
nodes so we're still covering this case and will need to come
back to it.
2015-04-06 16:38:00 -06:00
Jason Wilder 60c66c8515 Add data node join URLs
To add a new data node, it currently needs a broker
and another data node to join.  Temporarily adding
a JoinURLs option to the Data node section so a
standalone data node can be created but the intent is
that this will be removed.

Ideally, the the joinURL could point to either a data node
or a broker and it would get the required URLs from that
host but that is not possible currently.
2015-04-06 16:38:00 -06:00
Jason Wilder 5d6536f693 First pass at separate data and broker nodes
Adds a simple test to start a separate broker and
data node.  Data nodes still need a separate set
join URLs which is not in place yet.
2015-04-06 16:38:00 -06:00
Jason Wilder 388b1c2c05 Refactor openServer/openBroker
Simplified signature and state now depends on indexes vs directory
existence
2015-04-06 16:38:00 -06:00
Jason Wilder 6fa0ea01dd Move openBroker to RunCommand.openBroker 2015-04-06 16:38:00 -06:00
Jason Wilder c63866ea62 Remove Broker.Timout config
Not used
2015-04-06 16:38:00 -06:00
Jason Wilder 18db6fa7ba Separate baseline config from test config 2015-04-06 16:38:00 -06:00
Jason Wilder 45a2db9f0d Rename graphite/collect bind address config var name
Make it consistent w/ pre-existing "bind-address config options.
2015-04-06 16:37:59 -06:00