0

カウボーイ エラーが発生しました

牧場のリスナー api_resource には、cowboy_protocol:start_link/4 at <0.1822.0> で接続プロセスが開始されました。理由: enomem#012

リクエスト ハンドラーでは、erlang ポート (c 言語) を介して、別のベンダーの tts プラットフォームと対話しています。ポートへの最初の tts コマンドは成功し、1M バイトのデータを取得できます。ポートへの 2 番目の tts コマンドはポートに正常に送信されますが、カウボーイ プロセスはすぐに終了し、上記のエラー メッセージが表示されます。

erlang vm のスタック サイズ、ヒープ サイズ、バイナリ仮想ヒープ サイズ、および os のスタック サイズを上げようとしましたが、助けにはなりませんでした。

どんな提案でも大歓迎です、ありがとう。

コード:

tts(Port, Params, Text) ->
    case call_port(Port, {'set_tts_params', Params}) of
        {'error', _}=Error -> Error;
        _ -> slice_tts(Port, slice_text(Text), <<>>)
    end.

slice_tts(_Port, [], Acc) ->
    lager:debug("tts over"),
    {'ok', <<"RIFF", (byte_size(Acc)+36):32, "WAVE", "fmt ", 16:32,
            1:16, 1:16, 16000:32, 32000:32, 2:16, 16:16,
            "data", (byte_size(Acc)):32, Acc/binary>>};

slice_tts(Port, [Text|Others], Acc) ->
    lager:debug("ttsing ~p bytes", [byte_size(Text)]),
    case call_port(Port, {'tts', Text}) of
        {'error', _}=Error -> Error;
        {'ok', Data} -> slice_tts(Port, Others, <<Acc/binary, Data/binary>>)
    end.
4

0 に答える 0