[erlang-questions] Yaws process died when executing read_file

Martin Dimitrov <>
Wed Oct 19 15:44:54 CEST 2011


Hi,

No. The file is needed only by YAWS. But since YAWS doesn't cache it in
memory, it tries to open it on every request and at some point the
access error is returned. Windows 7 (the operating system we are testing
on) has a very high limit of opened handles. Does Erlang have some
limitation on this?

Martin

On 10/19/2011 3:54 PM, CGS wrote:
> Hi,
>
> Well, that's a question I cannot answer (I can only give you wild
> guesses), sorry. But if you need the file just with Erlang (not in
> YAWS), why don't you use the same mechanism (meaning, passing the
> buffer further and not accessing the harddisk all the time)? It seems
> reasonable and faster than accessing it over and over from the harddisk.
>
> Cheers,
> CGS
>
>
>
>
> On 10/19/2011 02:36 PM, Martin Dimitrov wrote:
>> 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
>> _______________________________________________
>> 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