[erlang-bugs] Incorrect or misleading inets/http_server error message

Edwin Fine <>
Tue Jul 29 17:28:59 CEST 2008


Thanks, Ingela, your solution looks good, but I find it still a little bit
misleading. You see, what was provided was actually a directory (in string
format). The fact that the directory does not exist has nothing to do with
its type, really. What it has to do with is validation. Maybe wrong_type
would read better as validation_failed? That covers both type checks and
existence checks and any other kind of checks of this sort that may come up
in future.

Regards,
Edwin

On Tue, Jul 29, 2008 at 5:15 AM, Ingela Anderton Andin <
> wrote:

> Hi Edwin!
>
> Well yes in this particular case it becomes a bit confusing I agree.  It is
> a type check that has fail but this is obviously
> a special case of failure so I changed it so it will become *{wrong_type,
> {non_existing, document_root,"/tmp/htdocs"}}.
> The type check acctualy checks if  "/tmp/htdocs" is a directory and not
> only that it is a string on the correct format. So the type here is
> "directory"
> and not "string". But yes I can see that people might get confused. I think
> this will be the best solution removing the wrong_type in this case
> will make the code cluttered of special cases in more than one place, now I
> just handle the special case where it appeares and the higer level code does
> not need to care about such details, and also it is logical type error, the
> given parameter was not a valid directory.
>
> Regards - Ingela Erlang/OTP, Ericsson
>
>
> *Edwin Fine wrote:
>
>> Taking the example out of the document at
>> http://www.erlang.org/doc/apps/inets/http_server.html:
>>
>> 2> {ok, Pid} = inets:start(httpd, [{port, 0},
>> 2>       {server_name,"httpd_test"}, {server_root,"/tmp"},
>> 2>       {document_root,"/tmp/htdocs"}, {bind_address, "localhost"}]).
>>
>> =ERROR REPORT==== 30-Jun-2008::17:47:18 ===
>> Failed initiating web server:
>> undefined
>> *{wrong_type,{document_root,"/tmp/htdocs"}}*
>>
>> ** exception error: no match of right hand side value
>> {error,{shutdown,{child,undefined,
>>
>>    {httpd_instance_sup,{0,0,0,0,0,0,0,1},59104},
>>
>>    {httpd_instance_sup,start_link,
>>
>>                        [[{port,59104},
>>
>>                          {bind_address,{0,0,0,0,0,0,0,1}},
>>
>>                          {server_name,"httpd_test"},
>>
>>                          {server_root,"/tmp"},
>>
>>                          {document_root,"/tmp/htdocs"}],
>>
>>                         15000,
>>
>>                         {<0.50.0>,#Port<0.126>},
>>
>>                         []]},
>>
>>    permanent,infinity,supervisor,
>>
>>    [httpd_instance_sup]}}}
>>
>> The actual problem was that the "/tmp/htdocs" directory did not exist. I
>> find having an error message of undefined
>> *{wrong_type,{document_root,"/tmp/htdocs"}} *to be very misleading. I read
>> it as "the value corresponding to document_root [i.e. "/tmp/htdocs", of type
>> string] is of the wrong type". If not a string, what should it be, I
>> wondered?
>>
>> When I created the directory and tried again, the message went away. I
>> would have expected to see something like
>> {does_not_exist,{document_root,"/tmp/htdocs"}}.
>>
>> 3> {ok, Pid} = inets:start(httpd, [{port, 0},                        3>
>>     {server_name,"httpd_test"}, {server_root,"/tmp"},
>> 3>       {document_root,"/tmp/htdocs"}, {bind_address, "localhost"}]).
>> {ok,<0.58.0>}
>> 4>
>>
>> Regards,
>> Edwin Fine
>> --
>> The great enemy of the truth is very often not the lie -- deliberate,
>> contrived and dishonest, but the myth, persistent, persuasive, and
>> unrealistic. Belief in myths allows the comfort of opinion without the
>> discomfort of thought.
>> John F. Kennedy 35th president of US 1961-1963 (1917 - 1963)
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> erlang-bugs mailing list
>> 
>> http://www.erlang.org/mailman/listinfo/erlang-bugs
>>
>
>
>


-- 
For every expert there is an equal and opposite expert - Arthur C. Clarke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20080729/95c277b5/attachment.html>


More information about the erlang-bugs mailing list