BigCouch 0.3 cannot parse requests of the form /db/_changes?since="123-foo" so the recent ?JSON_ENCODE addition to Since in two places causes 0.3 <-> 0.4 replication to fail with json_encode/badterm errors. This patch applies JSON encoding only when the Since value is not already a binary (i.e, when it's a [integer(), binary()]) and interop is restored. BugzID: 12833
Our headers start with a <<1>> and then four bytes indicating the length of the header and its checksum. When the header is larger than 4090 bytes it will be split across multiple blocks in the file and will need to be reassembled on read. The reassembly consists of stripping out <<0>> from the beginning of each subsequent block in the remove_block_prefixes/2 function. The bug here is that we tell remove_block_prefixes that we're starting 1 byte into the current block instead of 5, so it ends up removing one good byte from the header and injecting one or more random <<0>>s. Headers larger than 4k are very rare and generally require a view group with a huge number of indexes or indexes with fairly large reductions, which explains why this bug has gone undetected until now. Closes COUCHDB-1319.
This reverts commit e311d45. Turns out the 'libm' error is a very obscure way of reporting a lack of a c++ compiler.
Cookies now default to using ~/.erlang.cookie which is automatically generated if it does not exist when erlang starts with a name. There is also no longer a need to specify a name to remsh as it'll generate a name based on the process id and set the short or long version appropriately.
The race condition in couch_server's ets table usage rears its ugly head by leaving an entry in couch_lru. This patch just addresses the issue by allowing the client pid to use the db and ignores the fact that for the duration its over the max_dbs_open setting.
Part of the backport of COUCHDB-1008 to chttpd. This just updates the default.ini with some commented out options describing their availability to users.
This reverts commit 61f10e7.