--- Revision None +++ Revision 373538353037 @@ -0,0 +1,70 @@ +diff --git a/src/couchdb/couch_os_process.erl b/src/couchdb/couch_os_process.erl +index 3a267be..15e845b 100644 +--- a/src/couchdb/couch_os_process.erl ++++ b/src/couchdb/couch_os_process.erl +@@ -20,7 +20,7 @@ + + -include("couch_db.hrl"). + +--define(PORT_OPTIONS, [stream, {line, 4096}, binary, exit_status, hide]). ++-define(PORT_OPTIONS, [stream, {line, 1024}, binary, exit_status, hide]). + + -record(os_proc, + {command, +@@ -94,7 +94,7 @@ drop_port_messages(Port) -> + % Utility functions for reading and writing + % in custom functions + writeline(OsProc, Data) when is_record(OsProc, os_proc) -> +- port_command(OsProc#os_proc.port, [Data, $\n]). ++ port_command(OsProc#os_proc.port, [Data, $\r, $\n]). + + readline(#os_proc{} = OsProc) -> + readline(OsProc, []). +@@ -123,12 +123,12 @@ readline(#os_proc{port = Port} = OsProc, Acc) -> + % Standard JSON functions + writejson(OsProc, Data) when is_record(OsProc, os_proc) -> + JsonData = ?JSON_ENCODE(Data), +- ?LOG_DEBUG("OS Process ~p Input :: ~s", [OsProc#os_proc.port, JsonData]), ++ ?LOG_INFO("OS Process ~p Input :: ~s", [OsProc#os_proc.port, JsonData]), + true = writeline(OsProc, JsonData). + + readjson(OsProc) when is_record(OsProc, os_proc) -> + Line = iolist_to_binary(readline(OsProc)), +- ?LOG_DEBUG("OS Process ~p Output :: ~s", [OsProc#os_proc.port, Line]), ++ ?LOG_INFO("OS Process ~p Output :: ~s", [OsProc#os_proc.port, Line]), + try + % Don't actually parse the whole JSON. Just try to see if it's + % a command or a doc map/reduce/filter/show/list/update output. +@@ -185,7 +185,7 @@ init([Command, Options, PortOptions]) -> + }, + KillCmd = iolist_to_binary(readline(BaseProc)), + Pid = self(), +- ?LOG_DEBUG("OS Process Start :: ~p", [BaseProc#os_proc.port]), ++ ?LOG_INFO("OS Process Start :: ~p", [BaseProc#os_proc.port]), + spawn(fun() -> + % this ensure the real os process is killed when this process dies. + erlang:monitor(process, Pid), +@@ -231,20 +231,20 @@ handle_cast({send, Data}, #os_proc{writer=Writer}=OsProc) -> + {noreply, OsProc} + catch + throw:OsError -> +- ?LOG_ERROR("Failed sending data: ~p -> ~p", [Data, OsError]), ++ ?LOG_INFO("Failed sending data: ~p -> ~p", [Data, OsError]), + {stop, normal, OsProc} + end; + handle_cast(stop, OsProc) -> + {stop, normal, OsProc}; + handle_cast(Msg, OsProc) -> +- ?LOG_DEBUG("OS Proc: Unknown cast: ~p", [Msg]), ++ ?LOG_INFO("OS Proc: Unknown cast: ~p", [Msg]), + {noreply, OsProc}. + + handle_info({Port, {exit_status, 0}}, #os_proc{port=Port}=OsProc) -> + ?LOG_INFO("OS Process terminated normally", []), + {stop, normal, OsProc}; + handle_info({Port, {exit_status, Status}}, #os_proc{port=Port}=OsProc) -> +- ?LOG_ERROR("OS Process died with status: ~p", [Status]), ++ ?LOG_INFO("OS Process died with status: ~p", [Status]), + {stop, {exit_status, Status}, OsProc}. + + code_change(_OldVsn, State, _Extra) ->