Re: rep_security merge to trunk

2009-03-15 Thread Jan Lehnardt


On 15 Mar 2009, at 04:35, Chris Anderson wrote:

On Wed, Mar 11, 2009 at 4:51 PM, Damien Katz dam...@apache.org  
wrote:

For importing existing docs, I think you could just use the
all_or_nothing:true option and save the multiple copies of the same
documents and they'll all be saved, and you don't have to worry  
about the

_revisions stuff.



I've posted a script that copies between two running CouchDB
instances. I'm using the all_or_nothing option. It does attachments
inline using base64 encoding because it mostly works. I think if you
have attachments so big that they can't be buffered, you probably want
to avoid bulk docs anyway. If anyone desperately needs such a script
you might be able to convince me to modify what I've written.

Blog post with script and instructions here:

http://jchrisa.net/drl/_design/sofa/_show/post/Upgrading%20CouchDB%20databases%20to%20trunk



Hi Chris, great work, thanks! Would it make sense to add the blog post
 script to the CouchDB wiki? I'd like to add a few notes and your blog
is still read-only :)

Cheers
Jan
--




Re: rep_security merge to trunk

2009-03-15 Thread Chris Anderson
On Sun, Mar 15, 2009 at 6:56 AM, Jeff Hinrichs - DMT
dunde...@gmail.com wrote:
 On Sat, Mar 14, 2009 at 10:35 PM, Chris Anderson jch...@apache.org wrote:
 On Wed, Mar 11, 2009 at 4:51 PM, Damien Katz dam...@apache.org wrote:
 For importing existing docs, I think you could just use the
 all_or_nothing:true option and save the multiple copies of the same
 documents and they'll all be saved, and you don't have to worry about the
 _revisions stuff.


 I've posted a script that copies between two running CouchDB
 instances. I'm using the all_or_nothing option. It does attachments
 inline using base64 encoding because it mostly works. I think if you
 have attachments so big that they can't be buffered, you probably want
 to avoid bulk docs anyway. If anyone desperately needs such a script
 you might be able to convince me to modify what I've written.

 Blog post with script and instructions here:

 http://jchrisa.net/drl/_design/sofa/_show/post/Upgrading%20CouchDB%20databases%20to%20trunk


 Chris,
 Does this migrate conflicted documents or does it ignore them?


yes, it migrates conflicts. It does document requests with

GET /db/docid?open_revs=allattachments=true

which gives a copy of each doc rev leaf node (that is the head rev and
any conflict revs).

Once I figured out that the same request works for conflicted and
normal docs, the script got much simpler.

Jan, what about blog comments? ;)

-- 
Chris Anderson
http://jchris.mfdz.com


Re: rep_security merge to trunk

2009-03-15 Thread Chris Anderson
On Sun, Mar 15, 2009 at 7:41 AM, Chris Anderson jch...@apache.org wrote:
 On Sun, Mar 15, 2009 at 6:56 AM, Jeff Hinrichs - DMT
 dunde...@gmail.com wrote:
 On Sat, Mar 14, 2009 at 10:35 PM, Chris Anderson jch...@apache.org wrote:
 On Wed, Mar 11, 2009 at 4:51 PM, Damien Katz dam...@apache.org wrote:
 For importing existing docs, I think you could just use the
 all_or_nothing:true option and save the multiple copies of the same
 documents and they'll all be saved, and you don't have to worry about the
 _revisions stuff.


 I've posted a script that copies between two running CouchDB
 instances. I'm using the all_or_nothing option. It does attachments
 inline using base64 encoding because it mostly works. I think if you
 have attachments so big that they can't be buffered, you probably want
 to avoid bulk docs anyway. If anyone desperately needs such a script
 you might be able to convince me to modify what I've written.

 Blog post with script and instructions here:

 http://jchrisa.net/drl/_design/sofa/_show/post/Upgrading%20CouchDB%20databases%20to%20trunk


 Chris,
 Does this migrate conflicted documents or does it ignore them?


 yes, it migrates conflicts. It does document requests with

 GET /db/docid?open_revs=allattachments=true

 which gives a copy of each doc rev leaf node (that is the head rev and
 any conflict revs).

 Once I figured out that the same request works for conflicted and
 normal docs, the script got much simpler.


I forgot to mention that it just strips the _rev from the original
documents, so in the case of conflicts the winning rev could change.

If this is unacceptable for someone's application it should be possible to fix.

-- 
Chris Anderson
http://jchris.mfdz.com


Re: Bulk Docs

2009-03-15 Thread Brian Candler
On Fri, Mar 13, 2009 at 11:03:30AM +1030, Antony Blakey wrote:

 On 13/03/2009, at 10:45 AM, Chris Anderson wrote:

 It seems like most of these problems just go away if you
 put all the data that needs to be edited transactionally into a single
 document.

 There is a tradeoff between document granularity and concurrency.

Indeed, and a subheading under concurrency is ease of conflict
resolution.

I am tring to get around to writing up the simple and oft-quoted example
of a replicated set of bookmarks. I don't think it's as simple as is
claimed.

If you keep all your bookmarks in one document it's easy as pie to program
with, until you get a replication conflict, in which case couchdb gives you
no help whatsoever. It just tells you that here are two different sets of
bookmarks. People expect that a bookmark added on A will also be added on B,
and a bookmark deleted on A will also be deleted on B.

If you move to one-couchdb-object-per-bookmark then the replication becomes
much easier to deal with. But then you have to deal with the relationships
between documents - e.g. people expect their bookmarks to be ordered and
nestable.

Regards,

Brian.


[jira] Updated: (COUCHDB-194) [startkey, endkey[: provide a right-open range selection method

2009-03-15 Thread Chris Anderson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Anderson updated COUCHDB-194:
---

Fix Version/s: (was: 1.0)
   0.9

Moved to 0.9 but we can push back if the API change is not a problem to have 
later.

 [startkey, endkey[: provide a right-open range selection method
 ---

 Key: COUCHDB-194
 URL: https://issues.apache.org/jira/browse/COUCHDB-194
 Project: CouchDB
  Issue Type: Improvement
  Components: HTTP Interface
Affects Versions: 0.9
Reporter: Maximillian Dornseif
Priority: Blocker
 Fix For: 0.9


 While writing something about using CouchDB I came across the issue of slice 
 indexes (called startkey and endkey in CouchDB lingo).
 I found no exact definition of startkey and endkey anywhere in the 
 documentation. Testing reveals that access on _all_docs and on views 
 documents are retuned in the interval
 [startkey, endkey] = (startkey = k = endkey).
 I don't know if this was a conscious design decision. But I like to promote a 
 slightly different interpretation (and thus API change):
 [startkey, endkey[ = (startkey = k  endkey).
 Both approaches are valid and used in the real world. Ruby uses the inclusive 
 (right-closed in math speak) first approach:
  l = [1,2,3,4]
  l.slice(1,2)
 = [2, 3]
 Python uses the exclusive (right-open in math speak) second approach:
  l = [1,2,3,4]
  l[1,2]
 [2]
 For array indices both work fine and which one to prefer is mostly an issue 
 of habit. In spoken language both approaches are used: Have the Software 
 done until saturday probably means right-open to the client and right-closed 
 to the coder.
 But if you are working with keys that are more than array indexes, then 
 right-open is much easier to handle. That is because you have to *guess* the 
 biggest value you want to get. The Wiki at 
 http://wiki.apache.org/couchdb/View_collation contains an example of that 
 problem:
 It is suggested that you use
 startkey=_design/endkey=_design/Z
 or
 startkey=_design/endkey=_design/\u″
 to get a list of all design documents - also the replication system in the db 
 core uses the same hack.
 This breaks if a design document is named ZTop or 
 \Iñtërnâtiônàlizætiøn. Such names might be unlikely but we are computer 
 scientists; unlikely is a bad approach to software engineering.
 The think what we really want to ask CouchDB is to get all documents with 
 keys starting with '_design/'.
 This is basically impossible to do with right-closed intervals. We could use 
 startkey=_design/endkey=_design0″ ('0′ is the ASCII character after '/') 
 and this will work fine ... until there is actually a document with the key 
 _design0″ in the system. Unlikely, but ...
 To make selection by intervals reliable currently clients have to guess the 
 last key (the  approach) or use the fist key not to include (the _design0 
 approach) and then post process the result to remove the last element 
 returned if it exactly matches the given endkey value.
 If couchdb would change to a right-open interval approach post processing 
 would go away in most cases. See 
 http://blogs.23.nu/c0re/2008/12/building-a-track-and-trace-application-with-couchdb/
  for two real world examples.
 At least for string keys and float keys changing the meaning to [startkey, 
 endkey[ would allow selections like
 * all strings starting with 'abc'
 * all numbers between 10.5 and 11
 It also would hopefully break not to much existing code. Since the notion of 
 endkey seems to be already considered fishy (see the Z approach) most 
 code seems to try to avoid that issue. For example 
 'startkey=_design/endkey=_design/Z' still would work unless you 
 have a design document being named exactly Z.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Bulk Docs

2009-03-15 Thread Dean Landolt
On Sun, Mar 15, 2009 at 4:55 PM, Brian Candler b.cand...@pobox.com wrote:

 On Fri, Mar 13, 2009 at 11:03:30AM +1030, Antony Blakey wrote:
 
  On 13/03/2009, at 10:45 AM, Chris Anderson wrote:
 
  It seems like most of these problems just go away if you
  put all the data that needs to be edited transactionally into a single
  document.
 
  There is a tradeoff between document granularity and concurrency.

 Indeed, and a subheading under concurrency is ease of conflict
 resolution.

 I am tring to get around to writing up the simple and oft-quoted example
 of a replicated set of bookmarks. I don't think it's as simple as is
 claimed.

 If you keep all your bookmarks in one document it's easy as pie to program
 with, until you get a replication conflict, in which case couchdb gives you
 no help whatsoever. It just tells you that here are two different sets of
 bookmarks. People expect that a bookmark added on A will also be added on
 B,
 and a bookmark deleted on A will also be deleted on B.

 If you move to one-couchdb-object-per-bookmark then the replication becomes
 much easier to deal with. But then you have to deal with the relationships
 between documents - e.g. people expect their bookmarks to be ordered and
 nestable.


I don't think Chris was suggesting you put *all *bookmarks in a single
document, just that the transactions themselves can be documents -- think
ledger entry in double-entry accounting. In some circumstances you can use a
reduce to roll these up into a useful view of your system state.

The bookmarks case you mention is interesting -- and definitely common. The
ordered list model is tough to accommodate, but you could always keep a doc
that maintains this order state. Ordering operations should always occur
distinctly from document change operations, so local consistency shouldn't
be a problem. But I concede that this'll be damn tough to replicate.

Another model -- the one I think Chris was hinting at -- would be to store
the relevant properties of every rearrangement operation individually, and
use a reduce (admittedly a very complex one) to get at the current ordering.
I'm sure that given enough swings at implementation, certain patterns will
emerge to make this kind of stuff a lot easier.


Re: Bulk Docs

2009-03-15 Thread Chris Anderson
On Sun, Mar 15, 2009 at 4:21 PM, Dean Landolt d...@deanlandolt.com wrote:
 The bookmarks case you mention is interesting -- and definitely common. The
 ordered list model is tough to accommodate, but you could always keep a doc
 that maintains this order state. Ordering operations should always occur
 distinctly from document change operations, so local consistency shouldn't
 be a problem. But I concede that this'll be damn tough to replicate.

Damien once mentioned on IRC a clever way to do ordered lists. Keep
each item in it's own document, and store the list position as a
float. To insert an item between two others, average their
position-floats and use that. In the case of replication with other
items on the list from remote nodes, approximate order should be
preserved.


-- 
Chris Anderson
http://jchris.mfdz.com


Re: Bulk Docs

2009-03-15 Thread Dean Landolt
On Sun, Mar 15, 2009 at 7:32 PM, Chris Anderson jch...@apache.org wrote:

 On Sun, Mar 15, 2009 at 4:21 PM, Dean Landolt d...@deanlandolt.com
 wrote:
  The bookmarks case you mention is interesting -- and definitely common.
 The
  ordered list model is tough to accommodate, but you could always keep a
 doc
  that maintains this order state. Ordering operations should always occur
  distinctly from document change operations, so local consistency
 shouldn't
  be a problem. But I concede that this'll be damn tough to replicate.

 Damien once mentioned on IRC a clever way to do ordered lists. Keep
 each item in it's own document, and store the list position as a
 float. To insert an item between two others, average their
 position-floats and use that. In the case of replication with other
 items on the list from remote nodes, approximate order should be
 preserved.


Touché.


Re: 0.9 final sprint

2009-03-15 Thread Paul Davis
On Sun, Mar 15, 2009 at 4:58 PM, Chris Anderson jch...@apache.org wrote:
 We are within striking distance of 0.9

 12 Outstanding issues:

 https://issues.apache.org:443/jira/secure/IssueNavigator.jspa?reset=truepid=12310780priority=1status=1status=4fixfor=12313208sorter/field=issuekeysorter/order=DESC

 I think it'd be very cool if we could release in time for ApacheCon EU
 - starts on March 23rd. I think this is feasible but it will require
 some doing.

 Some of these tickets may be as simple as documentation or exploration
 to see if the issue is resolved by the new replication security patch.
 None of them look very challenging.

 Chris

 --
 Chris Anderson
 http://jchris.mfdz.com


I figured I'd sit down and write out thoughts on the remaining bugs so
we can have a jumping off point for what needs to be worked on. Here
goes.

* https://issues.apache.org:443/jira/browse/COUCHDB-34
Enable replicator to use HTTP authentication

I'm guessing that this is affected by Damien's rep_security patch
hitting trunk. Someone more familiar with that bit should check, but
hopefully this one is as easy as already done.

* https://issues.apache.org:443/jira/browse/COUCHDB-67
Allow unicode characters in database names.

No patch provided. Chris Anderson added a link to one of Antony's
github repositories that's got some code for this. If no one steps up
and offers a patch on this one I would vote for pushing it to 0.10.

* https://issues.apache.org:443/jira/browse/COUCHDB-128
couchdb is not starting properly from init.d script in trunk

Patrick Antivackis reports problems with the -e flag on the shebang
line for different platforms and makes a request for setting the user
CouchDB runs as in the init.d script. No idea about the -e flag, but
we should probably add the CouchDB username option if I'm not just
missing it.

* https://issues.apache.org:443/jira/browse/COUCHDB-135
Offset regression between 0.8.0 and trunk.

There's a patch on JIRA for this one that's been confirmed to solve
the issue. I'm waiting for Damien's feedback because he thought the
btree modification was wrong.

* https://issues.apache.org:443/jira/browse/COUCHDB-163
replicate attachments without Base64 encoding

If I read my commit logs correctly, Adam comitted a patch that fixes
this for one of the two replication directions. Not sure where things
should go from here.

* https://issues.apache.org:443/jira/browse/COUCHDB-169
POSIX shell incompatibilities

Looks like Noah's got some notes about what needs to be done. I'm not
at all certain what this would entail.

* https://issues.apache.org:443/jira/browse/COUCHDB-172
Updating and deleting the same document with _bulk_docs

There's a patch that shows that if you save a doc, and then make a
_bulk_docs request with an edited version and a _deleted=True version
a conflict is raised as would be expected. The original reporter
hasn't confirmed or denied that the error still exists.

* https://issues.apache.org:443/jira/browse/COUCHDB-178
$PREFIX/etc/default/couchdb not installed

I can't say much other than that its installed on my system. I don't
have enough autotools-fu to spot any errors looking through the
various Makefile.am's

* https://issues.apache.org:443/jira/browse/COUCHDB-183
No pagination in Futon for reduce views

Looks like Jason Davies has got a couple patches up for this one. I
haven't tried applying them but he's left a note saying that there's a
todo item for blank pages at the beginning or end of the key range.
I'd defer to Christopher Lenz on this one.

* https://issues.apache.org:443/jira/browse/COUCHDB-185
group=true is silently dropped in non-reduce views

There's a patch posted that has some consequences for Futon.
Specifically, the first visit to a view page results in a full reduce
(no group=true) being executed. I asked Christopher Lenz about this
and things kinda got dropped there. Also of note is whether the error
code for this should be a 500 or 400. I went with 500 because I
treated it the same as any of the other view parameter errors (and it
was easier to code :). There's also the case of
group=truegroup_level=0 not being detected by this patch.

* https://issues.apache.org:443/jira/browse/COUCHDB-194
[startkey, endkey[: provide a right-open range selection method

There's no patch for this yet. I looked once and got confused on how
to implement this for the start key. IIRC, the issue is that there is
some weird interplay between the current options and how the inclusive
might work. I'll take a closer look at this tonight and see if I can
remember what was up with it.

* https://issues.apache.org:443/jira/browse/COUCHDB-221
Test that validation and authorization work properly with replicated edits.

Hopefully this is part of the rep_security patch and can just be
closed as is. I'll defer to Adam and Damien for this one.

* https://issues.apache.org:443/jira/browse/COUCHDB-223
Document a way to find out failed writes fro bulk requests and async writes

I'm also going to 

Re: 0.9 final sprint

2009-03-15 Thread Jan Lehnardt

Hi,

great list Paul, thanks! :)

On 16 Mar 2009, at 00:40, Paul Davis wrote:


I figured I'd sit down and write out thoughts on the remaining bugs so
we can have a jumping off point for what needs to be worked on. Here
goes.

[...]

* https://issues.apache.org:443/jira/browse/COUCHDB-163
replicate attachments without Base64 encoding

If I read my commit logs correctly, Adam comitted a patch that fixes
this for one of the two replication directions. Not sure where things
should go from here.


Things are working a lot smoother already but Maximillian Dornseif
reported a few remaining issues. My understanding is that he's talking
to Adam in private because his database contains confidential
information. I don't know the state of the ongoing work.



* https://issues.apache.org:443/jira/browse/COUCHDB-185
group=true is silently dropped in non-reduce views

There's a patch posted that has some consequences for Futon.
Specifically, the first visit to a view page results in a full reduce
(no group=true) being executed. I asked Christopher Lenz about this
and things kinda got dropped there. Also of note is whether the error
code for this should be a 500 or 400. I went with 500 because I
treated it the same as any of the other view parameter errors (and it
was easier to code :). There's also the case of
group=truegroup_level=0 not being detected by this patch.


An HTTP server should not deliberately send a 500 error message.
A 500 response denotes all hope is lost when processing a request.
If CouchDB can detect an invalid request is made, it should return
a 400 status code.


Cheers
Jan
--



Re: Bulk Docs

2009-03-15 Thread Antony Blakey


On 16/03/2009, at 10:02 AM, Chris Anderson wrote:


Damien once mentioned on IRC a clever way to do ordered lists. Keep
each item in it's own document, and store the list position as a
float. To insert an item between two others, average their
position-floats and use that. In the case of replication with other
items on the list from remote nodes, approximate order should be
preserved.


I've user that technique in the past. The problem is that after a  
while you end up rounding off due to limited precision, and the user  
is left wondering why they can't change the order of their items. And  
you can't just renumber because that's begging the question.


An alternative is to use ascii strings and rely on the fact that a   
am  b, which allows infinite subdivision, although the problem then  
is that string length is unbounded, and then you need to consider the  
lifetime of the data and the insertion statistics, so it's not  
suitable for all ordering problems.


I think it's obvious that any system such as this is going to require  
unbounded precision - which is what the string length represent.


Antony Blakey
--
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

The greatest challenge to any thinker is stating the problem in a way  
that will allow a solution

  -- Bertrand Russell



Re: Bulk Docs

2009-03-15 Thread Antony Blakey


On 16/03/2009, at 10:30 AM, Antony Blakey wrote:

I've user that technique in the past. The problem is that after a  
while you end up rounding off due to limited precision, and the user  
is left wondering why they can't change the order of their items.  
And you can't just renumber because that's begging the question.


An alternative is to use ascii strings and rely on the fact that a   
am  b, which allows infinite subdivision, although the problem then  
is that string length is unbounded, and then you need to consider  
the lifetime of the data and the insertion statistics, so it's not  
suitable for all ordering problems.


BTW, we did this to reduce the number of item needing to be touched  
when re-ordering pages in a CMS.


IIRC the general solution is to treat (in abstract) the ordering of  
items as the in-order traversal of a binary tree. The brief form of  
the algorithm is to record in each item the path from the top e.g. 01  
or 10 = termination, 00 = left, 11 = right. You then map that bit  
sequence, padded with 0, to an ascii form that preserves the ordering.  
Avoid unbounded lengths requires a balanced tree, which requires  
transactional support. It has the benefit of a low number of documents  
touched per update (in an amortized sense).


Antony Blakey
--
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

It is as useless to argue with those who have renounced the use of  
reason as to administer medication to the dead.

  -- Thomas Jefferson




Re: 0.9 final sprint

2009-03-15 Thread Adam Kocoloski

On Mar 15, 2009, at 7:56 PM, Jan Lehnardt wrote:


* https://issues.apache.org:443/jira/browse/COUCHDB-163
replicate attachments without Base64 encoding

If I read my commit logs correctly, Adam comitted a patch that fixes
this for one of the two replication directions. Not sure where things
should go from here.


Things are working a lot smoother already but Maximillian Dornseif
reported a few remaining issues. My understanding is that he's talking
to Adam in private because his database contains confidential
information. I don't know the state of the ongoing work.


I haven't heard anything from Maximillian privately yet.  Regarding  
attachments in push replication, I suppose it should be possible to  
upload attachments to the target server before sending the new  
document revisions.  It would be cleaner if we could just do multipart  
requests, and Jan originally marked this one as a blocker because  
multipart was on the 0.9 roadmap.


It's fine with me if we postpone further work on this ticket till  
after the 0.9 release.  I don't have a whole lot of time to work on it  
at the moment.  Best,


Adam


[jira] Commented: (COUCHDB-128) couchdb is not starting properly from init.d script in trunk

2009-03-15 Thread Noah Slater (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12682198#action_12682198
 ] 

Noah Slater commented on COUCHDB-128:
-

The -e line should be POSIX compatible.

Debian mandates the use of POSIX compatible shell scripts so that the shell can
be changed from bash, sh, ash, or dash. If it is claimed that this is the case,
I would like to see pointers to man pages detailing the problems.

The CouchDB username is set from /etc/default/couchdb. Please check here.



 couchdb is not starting properly from init.d script in trunk
 

 Key: COUCHDB-128
 URL: https://issues.apache.org/jira/browse/COUCHDB-128
 Project: CouchDB
  Issue Type: Bug
  Components: Build System
Reporter: Noah Slater
Assignee: Noah Slater
Priority: Blocker
 Fix For: 0.9




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (COUCHDB-178) $PREFIX/etc/default/couchdb not installed

2009-03-15 Thread Noah Slater (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12682199#action_12682199
 ] 

Noah Slater commented on COUCHDB-178:
-

This works for me, can someone else confirm please, or I will close.

Would like to see the output from make install included.


 $PREFIX/etc/default/couchdb not installed
 -

 Key: COUCHDB-178
 URL: https://issues.apache.org/jira/browse/COUCHDB-178
 Project: CouchDB
  Issue Type: Bug
  Components: Build System
Affects Versions: 0.9
 Environment: Ubuntu 8.10
Reporter: Nolan Darilek
Assignee: Noah Slater
Priority: Blocker
 Fix For: 0.9


 /usr/local/etc/default/couchdb isn't installed on a fresh checkout of trunk 
 under Ubuntu 8.10. As a result, the default init script creates 
 couchdb.stdout and couchdb.stderr files in the current directory when run.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: 0.9 final sprint

2009-03-15 Thread Noah Slater
On Sun, Mar 15, 2009 at 07:40:54PM -0400, Paul Davis wrote:
 * https://issues.apache.org:443/jira/browse/COUCHDB-128
 couchdb is not starting properly from init.d script in trunk

 Patrick Antivackis reports problems with the -e flag on the shebang
 line for different platforms and makes a request for setting the user
 CouchDB runs as in the init.d script. No idea about the -e flag, but
 we should probably add the CouchDB username option if I'm not just
 missing it.

The -e line should be POSIX compatible.

Debian mandates the use of POSIX compatible shell scripts so that the shell can
be changed from bash, sh, ash, or dash. If it is claimed that this is the case,
I would like to see pointers to man pages detailing the problems.

The CouchDB username is set from /etc/default/couchdb. Please check here.

I have added this to the ticket.

 * https://issues.apache.org:443/jira/browse/COUCHDB-169
 POSIX shell incompatibilities

 Looks like Noah's got some notes about what needs to be done. I'm not
 at all certain what this would entail.

Aye.

 * https://issues.apache.org:443/jira/browse/COUCHDB-178
 $PREFIX/etc/default/couchdb not installed

 I can't say much other than that its installed on my system. I don't
 have enough autotools-fu to spot any errors looking through the
 various Makefile.am's

This works for me, can someone else confirm please, or I will close.

Would like to see the output from make install included.

I have added this to the ticket.

-- 
Noah Slater, http://tumbolia.org/nslater


Re: 0.9 final sprint

2009-03-15 Thread Noah Slater
On Mon, Mar 16, 2009 at 12:56:49AM +0100, Jan Lehnardt wrote:
 An HTTP server should not deliberately send a 500 error message.
 A 500 response denotes all hope is lost when processing a request.
 If CouchDB can detect an invalid request is made, it should return
 a 400 status code.

The 5xx line of errors indicate an actual internal error with CouchDB.

If the client is in error, then the 4xx line of errors should be used.

-- 
Noah Slater, http://tumbolia.org/nslater


[jira] Updated: (COUCHDB-178) $PREFIX/etc/default/couchdb not installed

2009-03-15 Thread Jeff Hinrichs (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeff Hinrichs updated COUCHDB-178:
--

Attachment: output.txt

as of couchdb - Apache CouchDB 0.9.0a752084 I am no longer experiencing this 
situation on Ubuntu 8.04

# etc/default/couchdb.tpl.  Generated from couchdb.tpl.in by configure.

# Sourced by init script for configuration.

COUCHDB_USER=couchdb
COUCHDB_INI_FILE=/usr/local/etc/couchdb/couch.ini
COUCHDB_PID_FILE=/usr/local/var/run/couchdb.pid
COUCHDB_STDOUT_FILE=/dev/null
COUCHDB_STDERR_FILE=/dev/null
COUCHDB_RESPAWN_TIMEOUT=5

However, on Ubuntu 8.10
/usr/local/etc/default/couchdb does not exist and couchdb.stdout / 
couchdb.stderr are created in what ever directory you issue the start/restart 
command from.

I am including the output of sudo make install 

 $PREFIX/etc/default/couchdb not installed
 -

 Key: COUCHDB-178
 URL: https://issues.apache.org/jira/browse/COUCHDB-178
 Project: CouchDB
  Issue Type: Bug
  Components: Build System
Affects Versions: 0.9
 Environment: Ubuntu 8.10
Reporter: Nolan Darilek
Assignee: Noah Slater
Priority: Blocker
 Fix For: 0.9

 Attachments: output.txt


 /usr/local/etc/default/couchdb isn't installed on a fresh checkout of trunk 
 under Ubuntu 8.10. As a result, the default init script creates 
 couchdb.stdout and couchdb.stderr files in the current directory when run.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: 0.9 final sprint

2009-03-15 Thread Paul Davis
On Sun, Mar 15, 2009 at 8:16 PM, Jason Davies ja...@jasondavies.com wrote:
 Hi Paul,

 On 15 Mar 2009, at 23:40, Paul Davis wrote:

 * https://issues.apache.org:443/jira/browse/COUCHDB-183
 No pagination in Futon for reduce views

 Looks like Jason Davies has got a couple patches up for this one. I
 haven't tried applying them but he's left a note saying that there's a
 todo item for blank pages at the beginning or end of the key range.
 I'd defer to Christopher Lenz on this one.


 Yep, I would recommend at least applying the patch as it stands (assuming
 cmlenz is happy with it) as it is extremely useful for anyone using reduce
 views in Futon.

 The only remaining issue is that you can't tell if you are at the end of the
 key range as reduce views don't return total_rows, hence it will just show
 zero rows if you carry on clicking Next Page (if descending=true is used
 this happens at the beginning instead of the end).  The fix would be to
 fetch rows_per_page + 1 and check if returned_rows.length is less than this.

 Unless there are any objections to the above approach, I don't mind spending
 a bit of time tomorrow afternoon working up an updated patch so we can get
 this nailed.

 --
 Jason Davies

 www.jasondavies.com



I have a sever lack of JavaScript-Fu, but looking over it I don't see
anything controversial. My thoughts would be to finish out the patch
for the rows+1 to get it rounded out.


Re: 0.9 final sprint

2009-03-15 Thread Paul Davis
On Sun, Mar 15, 2009 at 9:41 PM, Adam Kocoloski kocol...@apache.org wrote:
 On Mar 15, 2009, at 7:56 PM, Jan Lehnardt wrote:

 * https://issues.apache.org:443/jira/browse/COUCHDB-163
 replicate attachments without Base64 encoding

 If I read my commit logs correctly, Adam comitted a patch that fixes
 this for one of the two replication directions. Not sure where things
 should go from here.

 Things are working a lot smoother already but Maximillian Dornseif
 reported a few remaining issues. My understanding is that he's talking
 to Adam in private because his database contains confidential
 information. I don't know the state of the ongoing work.

 I haven't heard anything from Maximillian privately yet.  Regarding
 attachments in push replication, I suppose it should be possible to upload
 attachments to the target server before sending the new document revisions.
  It would be cleaner if we could just do multipart requests, and Jan
 originally marked this one as a blocker because multipart was on the 0.9
 roadmap.

 It's fine with me if we postpone further work on this ticket till after the
 0.9 release.  I don't have a whole lot of time to work on it at the moment.
  Best,

 Adam


I would be +1 for delaying multipart replication requests till 0.10
because I assume that's going to be a bit of work. If we're looking to
get 0.9 out soon then I don't see any reason not to call the current
state of attachment replication good.


[jira] Updated: (COUCHDB-178) $PREFIX/etc/default/couchdb not installed

2009-03-15 Thread Paul Joseph Davis (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Joseph Davis updated COUCHDB-178:
--

Attachment: config.log
makeinstall.out

After a clean install on Ubuntu 8.10 I am also experiencing no 
$PREFIX/etc/default action.

I'm attaching both the config.log and `sudo make install` output for reference.

 $PREFIX/etc/default/couchdb not installed
 -

 Key: COUCHDB-178
 URL: https://issues.apache.org/jira/browse/COUCHDB-178
 Project: CouchDB
  Issue Type: Bug
  Components: Build System
Affects Versions: 0.9
 Environment: Ubuntu 8.10
Reporter: Nolan Darilek
Assignee: Noah Slater
Priority: Blocker
 Fix For: 0.9

 Attachments: config.log, makeinstall.out, output.txt


 /usr/local/etc/default/couchdb isn't installed on a fresh checkout of trunk 
 under Ubuntu 8.10. As a result, the default init script creates 
 couchdb.stdout and couchdb.stderr files in the current directory when run.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: 0.9 final sprint

2009-03-15 Thread Paul Davis
On Sun, Mar 15, 2009 at 10:06 PM, Noah Slater nsla...@apache.org wrote:
 On Sun, Mar 15, 2009 at 07:40:54PM -0400, Paul Davis wrote:
 * https://issues.apache.org:443/jira/browse/COUCHDB-128
 couchdb is not starting properly from init.d script in trunk

 Patrick Antivackis reports problems with the -e flag on the shebang
 line for different platforms and makes a request for setting the user
 CouchDB runs as in the init.d script. No idea about the -e flag, but
 we should probably add the CouchDB username option if I'm not just
 missing it.

 The -e line should be POSIX compatible.

 Debian mandates the use of POSIX compatible shell scripts so that the shell 
 can
 be changed from bash, sh, ash, or dash. If it is claimed that this is the 
 case,
 I would like to see pointers to man pages detailing the problems.

 The CouchDB username is set from /etc/default/couchdb. Please check here.

 I have added this to the ticket.

 * https://issues.apache.org:443/jira/browse/COUCHDB-169
 POSIX shell incompatibilities

 Looks like Noah's got some notes about what needs to be done. I'm not
 at all certain what this would entail.

 Aye.

 * https://issues.apache.org:443/jira/browse/COUCHDB-178
 $PREFIX/etc/default/couchdb not installed

 I can't say much other than that its installed on my system. I don't
 have enough autotools-fu to spot any errors looking through the
 various Makefile.am's

 This works for me, can someone else confirm please, or I will close.

 Would like to see the output from make install included.


And so you shall have it. Looks like I'm not the only one though. For
the record I did actually duplicate this. Weird.

 I have added this to the ticket.

 --
 Noah Slater, http://tumbolia.org/nslater



[jira] Updated: (COUCHDB-290) Include sequence number in update notifications

2009-03-15 Thread Elliot Murphy (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliot Murphy updated COUCHDB-290:
--

Attachment: couchdb-sequences.patch

This is the patch that adds the sequence number to the update notification. 
Output looks like this:

{type:updated,db:replication_notification_test,seq:1}

The seq : 1 part is what is added by this patch.

 Include sequence number in update notifications
 ---

 Key: COUCHDB-290
 URL: https://issues.apache.org/jira/browse/COUCHDB-290
 Project: CouchDB
  Issue Type: Improvement
Affects Versions: 0.9
Reporter: Elliot Murphy
Priority: Minor
 Fix For: 0.9

 Attachments: couchdb-sequences.patch


 Hi! There's been requests to include the sequence number when sending an 
 update notification.  Thanks to the guidance from davisp on #couchdb on March 
 13th, I've been able to put together a little patch that does just that. In 
 the future I'm interested in doing the same for the create notification, and 
 perhaps extending create/delete/update notifications to include a list of 
 affected doc IDs.
 For now though, just this simple patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: 0.9 final sprint

2009-03-15 Thread Chris Anderson
On Sun, Mar 15, 2009 at 8:05 PM, Paul Davis paul.joseph.da...@gmail.com wrote:
 On Sun, Mar 15, 2009 at 10:08 PM, Noah Slater nsla...@apache.org wrote:
 On Mon, Mar 16, 2009 at 12:56:49AM +0100, Jan Lehnardt wrote:
 An HTTP server should not deliberately send a 500 error message.
 A 500 response denotes all hope is lost when processing a request.
 If CouchDB can detect an invalid request is made, it should return
 a 400 status code.

 The 5xx line of errors indicate an actual internal error with CouchDB.

 If the client is in error, then the 4xx line of errors should be used.

 --
 Noah Slater, http://tumbolia.org/nslater


 I'm cool with making parameter errors a 400 response, but we should
 make sure to do this for all detectable errors then. At the moment the
 current code path is to throw an error which causes a 500 response. It
 should be a relatively easy swap though I'd like to hear preference
 for 0.9 or 0.10. I would probably lean towards 0.9 but I don't really
 mind either way.


As of quite recently they are a 400 error. Woohoo! It should be easy
to make the new ones 400 also by making them query_parse_errors



-- 
Chris Anderson
http://jchris.mfdz.com


Re: 0.9 final sprint

2009-03-15 Thread Paul Davis
On Sun, Mar 15, 2009 at 11:57 PM, Chris Anderson jch...@apache.org wrote:
 On Sun, Mar 15, 2009 at 8:05 PM, Paul Davis paul.joseph.da...@gmail.com 
 wrote:
 On Sun, Mar 15, 2009 at 10:08 PM, Noah Slater nsla...@apache.org wrote:
 On Mon, Mar 16, 2009 at 12:56:49AM +0100, Jan Lehnardt wrote:
 An HTTP server should not deliberately send a 500 error message.
 A 500 response denotes all hope is lost when processing a request.
 If CouchDB can detect an invalid request is made, it should return
 a 400 status code.

 The 5xx line of errors indicate an actual internal error with CouchDB.

 If the client is in error, then the 4xx line of errors should be used.

 --
 Noah Slater, http://tumbolia.org/nslater


 I'm cool with making parameter errors a 400 response, but we should
 make sure to do this for all detectable errors then. At the moment the
 current code path is to throw an error which causes a 500 response. It
 should be a relatively easy swap though I'd like to hear preference
 for 0.9 or 0.10. I would probably lean towards 0.9 but I don't really
 mind either way.


 As of quite recently they are a 400 error. Woohoo! It should be easy
 to make the new ones 400 also by making them query_parse_errors



 --
 Chris Anderson
 http://jchris.mfdz.com


Awesome, that should make this even easier than I imagined.