[erlang-questions] port_command returns badarg in long binary input

Frederick Grim <>
Thu Jan 29 17:09:41 CET 2009


so I'll answer my own question.  It turns out I was opening the port
with the option {packet, 2}.
the problem here is that if you then try and feed in a binary to
port_command that is greater in size then can be
encoded into the 2 byte header port_command fails with an unhelpful
badarg error.

Thanks all.
    Fred


Frederick Grim wrote:
> Hello List,
>     So I have been fighting with the following problem.  I have a port
> that I feed in data to and most of the time it works fine.  However for
> longer data of the form
>
> [ pipeline, { atom(), [ { atom(), string() }, { atom(), string() },...]}]
>
> it dies with the following error:
>
> =ERROR REPORT==== 28-Jan-2009::16:36:29 ===
> caught exception {badarg,[{erlang,port_command,
>                                   [#Port<0.102>,
>                                   
> <<131,108,0,0,0,1,100,0,5,114,101,115,101,
>                                      116,106>>]},
>                           {pipeline_bridge,send_msg,2},
>                           {pipeline_bridge,get_response,1},
>                           {pipeline_bridge,call_port,2},
>                           {pipeline_bridge,handle_call,3},
>                           {gen_server,handle_msg,5},
>                           {proc_lib,init_p,5}]}
> I have attached the pipeline_bridge.erl file.  I am sort of at a loss
> here.  The problem is entirely related to the size of the data.  The
> bigger it is, past some threshold I for sure get this sort of failure. 
> Could it be a character encoding issue?  The strings could, potentially,
> be some sort of non-ascii codec.  Thanks for the time.
>     Fred
>
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list