Looks good to me.
-Damien
On Oct 12, 2010, at 8:42 AM, Filipe David Manana wrote:
> (previous mail got messed up)
>
> Sometimes (too often actually), after compacting a large DB (6,5Gb), I
> get gen_server call timeouts (calls to couch_db gen_server, message
> {db_updater, Db}). Resulting in big stack traces and a restart of the
> couch_server process. The following 1 line patch fixes it:
>
>
> diff --git a/src/couchdb/couch_db_updater.erl
> b/src/couchdb/couch_db_updater.erl
> index 93faba0..48d25db 100644
> --- a/src/couchdb/couch_db_updater.erl
> +++ b/src/couchdb/couch_db_updater.erl
> @@ -187,7 +187,7 @@ handle_cast({compact_done, CompactFilepath},
> #db{filepath=Filepath}=Db) ->
> couch_file:delete(RootDir, Filepath),
> ok = file:rename(CompactFilepath, Filepath),
> close_db(Db),
> - ok = gen_server:call(Db#db.main_pid, {db_updated, NewDb2}),
> + ok = gen_server:cast(Db#db.main_pid, {db_updated, NewDb2}),
> ?LOG_INFO("Compaction for db \"~s\" completed.", [Db#db.name]),
> {noreply, NewDb2#db{compactor_pid=nil}};
> false ->
>
>
>
> anyone against committing this?
>
>
>
> On Tue, Oct 12, 2010 at 4:40 PM, Filipe David Manana
> <[email protected]> wrote:
>> Hi all,
>>
>> I have a large DB (about 6,5 Gb after compaction) that every time it's
>> compacted, immediately
>>
>>
>> diff --git a/src/couchdb/couch_db_updater.erl
>> b/src/couchdb/couch_db_updater.erl
>> Sometimes (too often actually), after compacting a large DB (6,5Gb), I
>> get gen_server call timeouts (calls to couch_db gen_server, message
>> {db_updater, Db}). Resulting in big stack traces and a restart of the
>> couch_server process. The following 1 line patch fixes it:
>>
>> index 93faba0..40f393e 100644
>> --- a/src/couchdb/couch_db_updater.erl
>> +++ b/src/couchdb/couch_db_updater.erl
>> @@ -187,7 +187,7 @@ handle_cast({compact_done, CompactFilepath},
>> #db{filepath=Filepath}=Db) ->
>> couch_file:delete(RootDir, Filepath),
>> ok = file:rename(CompactFilepath, Filepath),
>> close_db(Db),
>> - ok = gen_server:call(Db#db.main_pid, {db_updated, NewDb2}),
>> + ok = gen_server:call(Db#db.main_pid, {db_updated, NewDb2},
>> infinity),
>> ?LOG_INFO("Compaction for db \"~s\" completed.", [Db#db.name]),
>> {noreply, NewDb2#db{compactor_pid=nil}};
>> false ->
>>
>>
>> Anyone against committing it?
>>
>> cheers
>>
>> --
>> Filipe David Manana,
>> [email protected], [email protected]
>>
>> "Reasonable men adapt themselves to the world.
>> Unreasonable men adapt the world to themselves.
>> That's why all progress depends on unreasonable men."
>>
>
>
>
> --
> Filipe David Manana,
> [email protected], [email protected]
>
> "Reasonable men adapt themselves to the world.
> Unreasonable men adapt the world to themselves.
> That's why all progress depends on unreasonable men."