[DGD]Problem with state-dump
balduin at uni-paderborn.de
balduin at uni-paderborn.de
Tue May 4 12:46:58 CEST 1999
Hello !
After dworkins hint how to handle more than 64k objects with
dgd, i now decided to use dgd's state-dump for object
persistency and use the database for indexing purposes only.
I currently have some problems with this:
- When I first did a dump_state() followed by a shutdown(),
I noticed after restart, that the connection objects
(cloned by connection() in e.g. the telnet port object to
represent the connection) (oops many "connection"s in this sentence)
where still existent. I now close down all connections
when preparing dump_state() to avoid dumping them. But this
leaves me with the following error during shutdown()
* sniplet from the logfile
[
shutting down ...
-----------------------------------------------------------------------
Tue May 4 12:14:06 1999, runtime error, ticks left: 3989945
Bad argument 1 for kfun call_other
103 receive_message /kernel/net/user (#22)
198 handle_command /system/user (#15)
150 command_loop /system/user (#15)
66 input_to /kernel/lib/auto (/system/user#15)
]
where this is the stuff in driver.c
do_shutdown()
{
object *_u;
int i,sz;
send_message("cutting connections ...\n");
_u = users();
for (i=0,sz=sizeof(_u);i<sz;i++)
{
send_message("removing "+object_name(_u[i]));
_u[i]->remove_object();
}
send_message("preparing dump ...\n");
prepare_dump();
send_message("dumping ...\n");
dump_state();
send_message("shutting down ...\n");
shutdown();
}
Nevertheless the server is shutting down and the dump-file seems to
be ok. But i'd like to have a clue what is happening.
- This leads to the next problem. I'd like to do a state-dump once in
a while, just to reduce my risk in case of emergency. Lets say shortage
of electricity. Or a server crash during development. Is there a way
to do this without saving/loosing the connection objects to avoid the
object leak mentioned above ?
- And the last question concerning state-dump. I tested the performance
of dump_state with 90000 (empty) objects. This is fast (about 9 seconds),
but the time it takes seems to be independend from the number of objects
touched since the last dump_state() or swapout(). Is there a way to do
an incremental state-dump file ?
greetings
Ludger
p.s. Ah Kevin ... I didn't find a good solution for your problem yet,
but I keep my eyes open.
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list