[erlang-questions] Yaws process died when executing read_file

Martin Dimitrov <>
Wed Oct 19 14:36:51 CEST 2011


Hello,

Thanks for the reply.

Looking through the config options I found max_size_cached_file which
has a default value of 8 kb. The yaws file that is being requested is
about 15 kb. Changing the option to 20 kb made the file cashed in memory
and no errors are returned. But I wonder why erlang cannot open the file
for reading.

Thanks again.

Martin


On 10/19/2011 2:34 PM, CGS wrote:
> Hi Martin,
>
> I suppose the access permission error is coming more from the number
> of threads accessing that file and less from OS.
>
> Check your yaws.conf and override some default variables, especially
> max_connections, keepalive_maxusers and process_options variables (or
> fail_on_bind_err to check if it YAWS or external sources of
> limitation). For more information look here:
> http://yaws.hyber.org/yman.yaws?page=yaws.conf.
>
> Also, it wouldn't be such a bad idea to monitor your system resources
> while setting up limits for connections.
>
> And the last thing, if you feel your hardware system is not used at
> its maximum capacity, try running multiple YAWS systems.
>
> I hope it will help.
>
> Cheers,
> CGS
>
>
> On 10/19/2011 12:46 PM, Martin Dimitrov wrote:
>> I do performance testing of our Erlang application with OpenSTA. The
>> test runs with 300 virtual users. At some point the following errors
>> start popping up:
>>
>> Yaws process died: {{badmatch,{error,eacces}},
>>                  [{yaws_server,ut_read,1},
>>                   {yaws_server,deliver_dyn_file,5},
>>                   {yaws_server,aloop,3},
>>                   {yaws_server,acceptor0,2},
>>                   {proc_lib,init_p_do_apply,3}]}
>>
>> The call file:read_file(UT#urltype.fullpath) crashes in function
>> ut_read(UT). I recompiled the module and printed the context. The error
>> is eacces and UT holds:
>>
>> {urltype,yaws,
>>                            {file_info,14088,regular,read_write,
>>                                {{2011,9,13},{11,51,42}},
>>                                {{2011,10,17},{17,59,44}},
>>                                {{2011,3,16},{13,18,58}},
>>                                33206,1,3,0,0,0,0},
>>                            "/handler.yaws",
>>                            "c:/Temp/harmony/script/../www/handler.yaws",
>>                            "/",undefined,undefined,"text/html",
>>                            "/handler.yaws",undefined}
>>
>> The file handler.yaws is the entry point of our app and is called on
>> every request. When I run the test with 100 or less virtual users I
>> don't see these errors. So how can it be "Missing permission for reading
>> the file, or for searching one of the parent directories" as the error
>> is described in the file:read_file documentation?
>>
>> Thanks in advance.
>>
>> Martin
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list