loadtest - inets {'EXIT',{ebadf
Sanjaya Vitharana
sanjaya@REDACTED
Fri Dec 30 05:35:34 CET 2005
Hi ... !!!
When I try to perform a load test on my db, Inets gives below error. Actually I'm running inets httpd to handle my http request.
When I compare the error with mod_log.erl (line 112 on transfer_log part) 'EXIT' is not catch in the original code. Is it ok or a bug ?
I have try to put the 3000000 requests, but why this crashes in the 63689 http call & onwards? It's perfectly works upto 63689 request. Also the requests generated by same way in PHP loop (see below) . Too much load will be the reason?
please guide me.
Thanks in advance.
Sanjaya Vitharana
=ERROR REPORT==== 29-Dec-2005::18:42:13 ===
{'EXIT',{ebadf,[{io,format,
[<0.125.0>,
"~s ~s ~s [~s] \"~s\" ~w ~w~n",
["192.168.0.124",
"-",
"-",
"29/Dec/2005:18:42:13 +0600",
"GET /vm_db/vm_prof_upd:save_record?mob=772063689&det=eJx1VE2PmzAQ%2FSsV4hhFmPCRkMu2vbSqsltpL71FEzBZd42JbEOCqvz3jsEmhM0qkQzjN2+e5w2GLFxn%2F1S2yTzINWtpLrS3ZVm47WM5CEGL192rt33GCFlhqBYaoUqy4xtCMZh5pF%2FxgVbAOHAqtbrbCjKvhIrxrgANdueLWVPcqHlBZY9PMu%2Fn87eXP0vzEpuci6incJR0lJRqRxNvjPAsNEdAqjPleV1RbwtIhaEo83R3orZQQUtouP74RuIxdY%2FhZVtfrBrgXNK8x2BKmqYkXEVxsj9LuEfljXqAykeUac4AwwqqZ8SemAVbCkVrJG9mki1gjVqh28+i6RB9qK6ShatrYWUjHsDyEUbCETfXZ7wTxuu5go2Lf6JBOPIR+ImKEUiiCfJex%2FU6zGhr5uvAe4tXj%2FuFkUOjuo+VDnB0lRADZ3iAoQ5zvTrptWZlV7LBbDSD+IFPgiDwx6zF4vbo4w4J%2FGARLH5Ile2YcKtPbrCxsT15C7KzU+47NxpF5W9Q6lzLwo5Zkq7xb2WpE6VFwYDPPg+TV3I4juNIsC%2FuR%2FAX2POzSjE3%2FISE4WoVRXGcJOlQAsdSisK5ksRRnK4361VIwih26lsmdQOcFWoqYj2IcK64OwClnCB%2Fh+NdtKdR7ChAN5LOaIYbiRU2HNhbAStCXzGMJtY9NZVanqGlguolf7cUTA0k05qYZa4px9BUN47qonQtabhkQlsGA32rlXbGzCHmy64Pf2muv3P0y7X0pRJsh6lf87xuBiRaqDSec9COkF+20Y09IrkTM+mlgIpafyfb1%2F94yawH&type=0&date_upd=1135860133&date_first=1135860133 HTTP/1.0",
200,
7]]},
{mod_log,transfer_log,6},
{mod_log,do,1},
{httpd_response,traverse_modules,2},
{httpd_response,generate_and_send_response,1},
{httpd_request_handler,handle_response,1},
{gen_server,handle_msg,6},
{proc_lib,init_p,5}]}}
-----------------------------------------------PHP script(loadTest.php) I try to run----------------------------------------------------
#!/usr/local/php/bin/php
<?php
$data = urlencode('eJx1VE2PmzAQ/SsV4hhFmPCRkMu2vbSqsltpL71FEzBZd42JbEOCqvz3jsEmhM0qkQzjN2 e5w2GLFxn/1S2yTzINWtpLrS3ZVm47WM5CEGL192rt33GCFlhqBYaoUqy4xtCMZh5pF/xgVbAOHAqtbrbCjKvhIrxrgANdueLWVPcqHlBZY9PMu/n87eXP0vzEpuci6incJR0lJRqRxNvjPAsNEdAqjPleV1RbwtIhaEo83R3orZQQUtouP74RuIxdY/hZVtfrBrgXNK8x2BKmqYkXEVxsj9LuEfljXqAykeUac4AwwqqZ8SemAVbCkVrJG9mki1gjVqh28 i6RB9qK6ShatrYWUjHsDyEUbCETfXZ7wTxuu5go2Lf6JBOPIR ImKEUiiCfJex/U6zGhr5uvAe4tXj/uFkUOjuo VDnB0lRADZ3iAoQ5zvTrptWZlV7LBbDSD IFPgiDwx6zF4vbo4w4J/GARLH5Ile2YcKtPbrCxsT15C7KzU 47NxpF5W9Q6lzLwo5Zkq7xb2WpE6VFwYDPPg TV3I4juNIsC/uR/AX2POzSjE3/ISE4WoVRXGcJOlQAsdSisK5ksRRnK4361VIwih26lsmdQOcFWoqYj2IcK64OwClnCB/h NdtKdR7ChAN5LOaIYbiRU2HNhbAStCXzGMJtY9NZVanqGlguolf7cUTA0k05qYZa4px9BUN47qonQtabhkQlsGA32rlXbGzCHmy64Pf2muv3P0y7X0pRJsh6lf87xuBiRaqDSec9COkF 20Y09IrkTM mlgIpafyfb1/94yawH');
for ($mob = 772000000; $mob < 775000000; $mob++)
{
$url = 'http://192.168.0.124:8888/vm_db/vm_prof_upd:save_record?mob=' . $mob .
'&det=' . $data .
'&type=0' .
'&date_upd=' . time() .
'&date_first=' . time();
$res = date('Y-M-d h:i:sa', time()) . ' | ' . $mob . ' ' . file_get_contents($url);
echo $res . "\n";
file_put_contents('/tmp/loadTest.log', $res . "\n", FILE_APPEND);
//usleep(100);
}
echo "\n";
?>
-------------------------------------------------------------------------------------------------------------------------------------------------------------
****** below the aditional info if somebody needs to test *****
-------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------record used-------------------------------------------------------------------------------------
-record(vm_profile_backup, {mobile_no, prof_details, type, last_update_date, first_creation_date, fax_no}).
---------------------------------table created using -----------------------------------------------------------------------------------------------------
Res = mnesia:create_table(profile_db,[
{disc_only_copies, NodeList},
{record_name, vm_profile_backup},
{attributes, record_info(fields, vm_profile_backup)}
]),
-------------------------------from vm_prof_upd.erl--------------------------------------------------------------------------------------------------------
save_record(SessionID,Env,Input)->
%%----------Server Side Out Puts-----------
io:format("SessionID:~p~n",[SessionID]), %SessionID:<0.233.0>
io:format("Env:~p~n",[Env]),
io:format("Input: ~p~n",[Input]),
InData = httpd:parse_query(Input),
io:format("GOT THIS: ~p~n",[InData]),
%%----------Return to client---------------
Rec=#vm_profile_backup{},
Fun1= fun(A, VMRec) ->
case A of
{"mob",MNo}-> VMRec#vm_profile_backup{mobile_no=MNo};
{"det",PDet}->VMRec#vm_profile_backup{prof_details=PDet};
{"type",Type}->VMRec#vm_profile_backup{type=Type};
{"date_upd",Date_UpDate}->
case catch erlang:list_to_integer(Date_UpDate) of
{'EXIT', _}-> VMRec#vm_profile_backup{last_update_date=error};
%%{badarg,_}->
ValueDate_UpDate-> VMRec#vm_profile_backup{last_update_date=ValueDate_UpDate}
end;
{"date_first",Date_First}->
case catch erlang:list_to_integer(Date_First) of
{'EXIT', _}-> VMRec#vm_profile_backup{first_creation_date=error};
%%{badarg,_}->
ValueDate_First-> VMRec#vm_profile_backup{first_creation_date=ValueDate_First}
end;
{"fax",FNo}->VMRec#vm_profile_backup{fax_no=FNo};
Other->VMRec
end
end,
NewRec=lists:foldl(Fun1,Rec,InData),
if
NewRec#vm_profile_backup.last_update_date == error; NewRec#vm_profile_backup.first_creation_date == error ->
mod_esi:deliver(SessionID, "{error,invalid_number_[first_creation_date_OR_last_update_date]}");
NewRec#vm_profile_backup.mobile_no /= undefined, NewRec#vm_profile_backup.mobile_no /= [], NewRec#vm_profile_backup.last_update_date /= undefined,NewRec#vm_profile_backup.last_update_date /= [], NewRec#vm_profile_backup.first_creation_date /= undefined, NewRec#vm_profile_backup.first_creation_date /= [] ->
MobNo=NewRec#vm_profile_backup.mobile_no,
Prof_Det=NewRec#vm_profile_backup.prof_details,
if
NewRec#vm_profile_backup.type /= undefined, NewRec#vm_profile_backup.type /= [] ->
Type1=NewRec#vm_profile_backup.type;
true->Type1="0"
end,
Date_UpD=NewRec#vm_profile_backup.last_update_date,
Date_Fst=NewRec#vm_profile_backup.first_creation_date,
if
NewRec#vm_profile_backup.fax_no /= undefined, NewRec#vm_profile_backup.fax_no /= [] ->
FaxNo=NewRec#vm_profile_backup.fax_no;
true->FaxNo=" "
end,
mod_esi:deliver(SessionID, io_lib:format("~p",[gen_server:call(vm_prof_db_svr,{save_profile_record,{MobNo,Prof_Det,Type1,Date_UpD,Date_Fst,FaxNo}})]));
true->
mod_esi:deliver(SessionID, "{error,no_mobile_no_OR_first_creation_date_OR_last_update_date}")
end.
-------------------------------------from vm_prof_db_svr.erl (gen_server)-------------------------------------------------------
handle_call({save_profile_record,{MobNo,Prof_Det,Type,Date_UpD,Date_Fst,FaxNo}}, _From, State) ->
Reply=vm_prof_db:save_profile_record({MobNo,Prof_Det,Type,Date_UpD,Date_Fst,FaxNo}),
{reply, Reply, State};
-----------------------------------------from vm_prof_db.erl-----------------------------------------------------------------------------------------
save_profile_record({MobNo,Prof_Det,Type,Date_UpD,Date_Fst,FaxNo})->
Rec= #vm_profile_backup{mobile_no = MobNo, prof_details = Prof_Det, type=Type, last_update_date = Date_UpD, first_creation_date = Date_Fst, fax_no=FaxNo},
save_record(profile_db,Rec).
save_record(Db, Record) ->
Fun = fun() ->
mnesia:write(Db, Record, write)
end,
transaction(Fun).
--------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20051230/da94542b/attachment.htm>
More information about the erlang-questions
mailing list