couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Kocoloski <kocol...@apache.org>
Subject Re: svn commit: r829304 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in license.skip src/couchdb/couch_stats_aggregator.erl src/couchdb/couch_util.erl src/couchdb/priv/Makefile.am src/couchdb/priv/stat_descriptions.cfg
Date Sat, 24 Oct 2009 18:56:56 GMT
Good catch, Bob.

Regarding code:priv_dir(couch), it works in a normal server  
installation but fails from make dev.  Apparently we have  
couch_util:priv_dir() to work around this (didn't notice it till  
now).  I've replaced all usage of code:priv_dir(couch) with  
couch_util:priv_dir()

We'll still need to figure out something for the stats test.  Best,

Adam

On Oct 24, 2009, at 2:26 PM, Robert Dionne wrote:

> yea it broke. It looks like the problem is couch_util:priv_dir()  
> fails when couch is not running. Poking into this a bit I see  
> another related problem:
>
> If line 79 in couch_server_sup ever executes:
>
> filename:join(code:priv_dir(couch), "lib");
>
> It fails because code:priv_dir(couch) returns a bad name error. You  
> can see this by commenting out util_driver_dir in the config file. I  
> suspect this might relate to a private directory not being specified  
> when the app is packaged? Perhaps there's something missing in  
> couch.app?
>
> 	
>
>
> On Oct 24, 2009, at 6:51 AM, Sebastian Cohnen wrote:
>
>> Hey devs,
>>
>> maybe you already are aware of it, but after your last commit,  
>> davisp, make check (after make clean) fails:
>>
>> test/etap/121-stats-aggregates............FAILED tests 1-17
>> 	Failed 17/17 tests, 0.00% okay
>> Failed Test                      Stat Wstat Total Fail  List of  
>> Failed
>> -------------------------------------------------------------------------------
>> test/etap/121-stats-aggregates.t               17   17  1-17
>> Failed 1/29 test scripts. 17/367 subtests failed.
>> Files=29, Tests=367, 63 wallclock secs (22.23 cusr +  3.03 csys =  
>> 25.26 CPU)
>> Failed 1/29 test programs. 17/367 subtests failed.
>> make: *** [check] Error 255
>>
>> The browser test suite is all green - at least in the second run.  
>> In the first run the stats-test was failing (I accidentally closed  
>> the browser window and I can't remember the exact error message,  
>> sorry)
>>
>>
>> Sebastian / tisba
>>
>> On 24.10.2009, at 06:14, davisp@apache.org wrote:
>>
>>> Author: davisp
>>> Date: Sat Oct 24 04:14:12 2009
>>> New Revision: 829304
>>>
>>> URL: http://svn.apache.org/viewvc?rev=829304&view=rev
>>> Log:
>>> Move stat descriptions out of the config.
>>>
>>> This lists stat descriptions in an Erlang term file to avoid  
>>> abusing the config system. Uses a file in CouchDB's priv directory  
>>> that is a list of three-tuple terms.
>>>
>>>
>>> Added:
>>>  couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>> Modified:
>>>  couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>>  couchdb/trunk/license.skip
>>>  couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>>  couchdb/trunk/src/couchdb/couch_util.erl
>>>  couchdb/trunk/src/couchdb/priv/Makefile.am
>>>
>>> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=829304&r1=829303&r2=829304&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
>>> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Sat Oct 24  
>>> 04:14:12 2009
>>> @@ -112,40 +112,3 @@
>>> ; sample intervals are in seconds
>>> samples = [0, 60, 300, 900]
>>>
>>> -; Style guide for descriptions: Start with a lowercase letter &  
>>> do not add
>>> -; a trailing full-stop / period.
>>> -; Please keep this in alphabetical order.
>>> -[stats_descriptions]
>>> -{couchdb, database_writes} = number of times a database was changed
>>> -{couchdb, database_reads} = number of times a document was read  
>>> from a database
>>> -{couchdb, open_databases} = number of open databases
>>> -{couchdb, open_os_files} = number of file descriptors CouchDB has  
>>> open
>>> -{couchdb, request_time} = length of a request inside CouchDB  
>>> without MochiWeb
>>> -
>>> -{httpd, bulk_requests} = number of bulk requests
>>> -{httpd, requests} = number of HTTP requests
>>> -{httpd, temporary_view_reads} = number of temporary view reads
>>> -{httpd, view_reads} = number of view reads
>>> -{httpd, clients_requesting_changes} = number of clients for  
>>> continuous _changes
>>> -
>>> -{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
>>> -{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
>>> -{httpd_request_methods, 'GET'} = number of HTTP GET requests
>>> -{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
>>> -{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
>>> -{httpd_request_methods, 'POST'} = number of HTTP POST requests
>>> -{httpd_request_methods, 'PUT'} = number of HTTP PUT requests
>>> -
>>> -{httpd_status_codes, '200'} = number of HTTP 200 OK responses
>>> -{httpd_status_codes, '201'} = number of HTTP 201 Created responses
>>> -{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
>>> -{httpd_status_codes, '301'} = number of HTTP 301 Moved  
>>> Permanently responses
>>> -{httpd_status_codes, '304'} = number of HTTP 304 Not Modified  
>>> responses
>>> -{httpd_status_codes, '400'} = number of HTTP 400 Bad Request  
>>> responses
>>> -{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized  
>>> responses
>>> -{httpd_status_codes, '403'} = number of HTTP 403 Forbidden  
>>> responses
>>> -{httpd_status_codes, '404'} = number of HTTP 404 Not Found  
>>> responses
>>> -{httpd_status_codes, '405'} = number of HTTP 405 Method Not  
>>> Allowed responses
>>> -{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
>>> -{httpd_status_codes, '412'} = number of HTTP 412 Precondition  
>>> Failed responses
>>> -{httpd_status_codes, '500'} = number of HTTP 500 Internal Server  
>>> Error responses
>>>
>>> Modified: couchdb/trunk/license.skip
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=829304&r1=829303&r2=829304&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/license.skip (original)
>>> +++ couchdb/trunk/license.skip Sat Oct 24 04:14:12 2009
>>> @@ -64,6 +64,7 @@
>>> ^src/couchdb/priv/Makefile
>>> ^src/couchdb/priv/Makefile.in
>>> ^src/couchdb/priv/couchspawnkillable
>>> +^src/couchdb/priv/stat_descriptions.cfg
>>> ^src/erlang-oauth/*
>>> ^src/etap/*
>>> ^src/ibrowse/*
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=829304&r1=829303&r2=829304&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
>>> +++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sat Oct  
>>> 24 04:14:12 2009
>>> @@ -90,16 +90,17 @@
>>>   ets:new(?MODULE, [named_table, set, protected]),
>>>   SampleStr = couch_config:get("stats", "samples", "[0]"),
>>>   {ok, Samples} = couch_util:parse_term(SampleStr),
>>> -    lists:foreach(fun({KeyStr, Value}) ->
>>> -        {ok, Key} = couch_util:parse_term(KeyStr),
>>> +    PrivDir = couch_util:priv_dir(),
>>> +    {ok, Descs} = file:consult(filename:join(PrivDir,  
>>> "stat_descriptions.cfg")),
>>> +    lists:foreach(fun({Sect, Key, Value}) ->
>>>       lists:foreach(fun(Secs) ->
>>>           Agg = #aggregate{
>>>               description=list_to_binary(Value),
>>>               seconds=Secs
>>>           },
>>> -            ets:insert(?MODULE, {{Key, Secs}, Agg})
>>> +            ets:insert(?MODULE, {{{Sect, Key}, Secs}, Agg})
>>>       end, Samples)
>>> -    end, couch_config:get("stats_descriptions")),
>>> +    end, Descs),
>>>
>>>   Self = self(),
>>>   ok = couch_config:register(
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_util.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_util.erl?rev=829304&r1=829303&r2=829304&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_util.erl (original)
>>> +++ couchdb/trunk/src/couchdb/couch_util.erl Sat Oct 24 04:14:12  
>>> 2009
>>> @@ -12,7 +12,7 @@
>>>
>>> -module(couch_util).
>>>
>>> --export([start_driver/1,terminate_linked/1]).
>>> +-export([priv_dir/0, start_driver/1,terminate_linked/1]).
>>> -export([should_flush/0, should_flush/1, to_existing_atom/1]).
>>> -export([rand32/0, implode/2, collate/2, collate/3]).
>>> -export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
>>> @@ -27,6 +27,16 @@
>>> % arbitrarily chosen amount of memory to use before flushing to disk
>>> -define(FLUSH_MAX_MEM, 10000000).
>>>
>>> +priv_dir() ->
>>> +    case code:priv_dir(couch) of
>>> +        {error, bad_name} ->
>>> +            % small hack, in dev mode "app" is couchdb. Fixing  
>>> requires
>>> +            % renaming src/couch to src/couch. Not really worth  
>>> the hassle.
>>> +            % -Damien
>>> +            code:priv_dir(couchdb);
>>> +        Dir -> Dir
>>> +    end.
>>> +
>>> start_driver(LibDir) ->
>>>   case erl_ddll:load_driver(LibDir, "couch_erl_driver") of
>>>   ok ->
>>>
>>> Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=829304&r1=829303&r2=829304&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
>>> +++ couchdb/trunk/src/couchdb/priv/Makefile.am Sat Oct 24 04:14:12  
>>> 2009
>>> @@ -13,8 +13,9 @@
>>> couchlibdir = $(localerlanglibdir)/couch-$(version)
>>> couchprivdir = $(couchlibdir)/priv
>>>
>>> -EXTRA_DIST = couchspawnkillable.sh
>>> +EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg
>>>
>>> +couchpriv_DATA = stat_descriptions.cfg
>>> couchpriv_PROGRAMS = couchspawnkillable
>>>
>>> if WINDOWS
>>>
>>> Added: couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg?rev=829304&view=auto
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg (added)
>>> +++ couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg Sat Oct  
>>> 24 04:14:12 2009
>>> @@ -0,0 +1,37 @@
>>> +% Style guide for descriptions: Start with a lowercase letter &  
>>> do not add
>>> +% a trailing full-stop / period
>>> +% Please keep this in alphabetical order
>>> +
>>> +{couchdb, database_writes, "number of times a database was  
>>> change"}.
>>> +{couchdb, database_reads, "number of times a document was read  
>>> from a databas"}.
>>> +{couchdb, open_databases, "number of open database"}.
>>> +{couchdb, open_os_files, "number of file descriptors CouchDB has  
>>> ope"}.
>>> +{couchdb, request_time, "length of a request inside CouchDB  
>>> without MochiWe"}.
>>> +
>>> +{httpd, bulk_requests, "number of bulk request"}.
>>> +{httpd, requests, "number of HTTP request"}.
>>> +{httpd, temporary_view_reads, "number of temporary view read"}.
>>> +{httpd, view_reads, "number of view read"}.
>>> +{httpd, clients_requesting_changes, "number of clients for  
>>> continuous _change"}.
>>> +
>>> +{httpd_request_methods, 'COPY', "number of HTTP COPY request"}.
>>> +{httpd_request_methods, 'DELETE', "number of HTTP DELETE request"}.
>>> +{httpd_request_methods, 'GET', "number of HTTP GET request"}.
>>> +{httpd_request_methods, 'HEAD', "number of HTTP HEAD request"}.
>>> +{httpd_request_methods, 'MOVE', "number of HTTP MOVE request"}.
>>> +{httpd_request_methods, 'POST', "number of HTTP POST request"}.
>>> +{httpd_request_methods, 'PUT', "number of HTTP PUT request"}.
>>> +
>>> +{httpd_status_codes, '200', "number of HTTP 200 OK response"}.
>>> +{httpd_status_codes, '201', "number of HTTP 201 Created response"}.
>>> +{httpd_status_codes, '202', "number of HTTP 202 Accepted  
>>> response"}.
>>> +{httpd_status_codes, '301', "number of HTTP 301 Moved Permanently  
>>> response"}.
>>> +{httpd_status_codes, '304', "number of HTTP 304 Not Modified  
>>> response"}.
>>> +{httpd_status_codes, '400', "number of HTTP 400 Bad Request  
>>> response"}.
>>> +{httpd_status_codes, '401', "number of HTTP 401 Unauthorized  
>>> response"}.
>>> +{httpd_status_codes, '403', "number of HTTP 403 Forbidden  
>>> response"}.
>>> +{httpd_status_codes, '404', "number of HTTP 404 Not Found  
>>> response"}.
>>> +{httpd_status_codes, '405', "number of HTTP 405 Method Not  
>>> Allowed response"}.
>>> +{httpd_status_codes, '409', "number of HTTP 409 Conflict  
>>> response"}.
>>> +{httpd_status_codes, '412', "number of HTTP 412 Precondition  
>>> Failed response"}.
>>> +{httpd_status_codes, '500', "number of HTTP 500 Internal Server  
>>> Error response"}.
>>>
>>>
>>
>


Mime
View raw message