module reload problem in erl

Zoltan Peter Toth <>
Wed Jul 16 13:52:02 CEST 2003


Hi,

I've found a problem which happens on Solaris (e.g. version 5.2.3.1) and Linux
(e.g. 5.2.3.3) similarly, described below.
I attached my simple test program, which manages a sorted list.

Do you think this is a bug in the Erlang virtual machine ?

Thanks for any info,
	Zoltan

---------------------------------------------------------------------
Problem: c:c(Module) for the 2nd time kills/loses the existing instance of the process in the erl
shell.
(The same problem exists if I recompile with erlc and load with l(Module).)

Erlang (BEAM) emulator version 5.2.3.1
Compiled on Fri Feb  7 08:42:17 2003

1> sl:start().
true
2> process_info(whereis(listStore)).
[{registered_name,listStore},
   {current_function,{sl,listLoop,1}},
   {initial_call,{sl,listLoop,1}},
   {status,waiting},
   {message_queue_len,0},
   {messages,[]},
   {links,[]},
   {dictionary,[]},
   {trap_exit,false},
   {error_handler,error_handler},
   {priority,normal},
   {group_leader,<0.21.0>},
   {heap_size,233},
   {stack_size,4},
   {reductions,1},
   {garbage_collection,[{fullsweep_after,65535}]}]
4> sl:getList().
getList from <0.29.0>
[]
5> sl:addElem({lali,1}).
insert of lali, 1
{insert,{lali,1}}
6> sl:getList().
getList from <0.29.0>
[{lali,1}]

%% Recompile for the 1st time:

7> c:c(sl).
{ok,sl}

%% Now the process is still alive (and holds the data):

8> process_info(whereis(listStore)).
[{registered_name,listStore},
   {current_function,{sl,listLoop,1}},
   {initial_call,{sl,listLoop,1}},
   {status,waiting},
   {message_queue_len,0},
   {messages,[]},
   {links,[]},
   {dictionary,[]},
   {trap_exit,false},
   {error_handler,error_handler},
   {priority,normal},
   {group_leader,<0.21.0>},
   {heap_size,233},
   {stack_size,4},
   {reductions,60},
   {garbage_collection,[{fullsweep_after,65535}]}]

%% Compile & load again:

9> c:c(sl).
{ok,sl}

%% But now the process has died:

10> process_info(whereis(listStore)).

=ERROR REPORT==== 16-Jul-2003::11:39:06 ===
Error in process <0.29.0> with exit value:
{badarg,[{erlang,process_info,[undefined]},{erl_eval,expr,3},{erl_eval,exprs,4},{shell,eval_loop,2}]}
** exited: {badarg,[{erlang,process_info,[undefined]},
                      {erl_eval,expr,3},
                      {erl_eval,exprs,4},
                      {shell,eval_loop,2}]} **

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sl.erl
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20030716/c707bb9c/attachment.ksh>


More information about the erlang-bugs mailing list