Looking at some of the crashes on metalforge, which is latest 1.x as of a week ago. Saw 2 crashes wit the same cause. From the logfile:
[Debug] ********** EVENT HANDLER ********** [Debug] - Who am I :Moneygoose [Debug] - Activator :reaper [Debug] - Event code :1 [Debug] - Event plugin :Python [Debug] - Event hook :/python/casino/platinumslots.py [Debug] - Event options :event_apply /home/crossfire/share/crossfire/maps/python/CFItemBroker.py:23: DeprecationWarning: integer argument expected, got float self.object.Quantity=tmp [Debug] ********** EVENT HANDLER ********** [Debug] - Who am I :event_destroy [Debug] - Event code :13 [Debug] - Event plugin :Python [Debug] - Event hook :cfpython_auto_hook [Debug] - Event options :event_destroy [Error] Trying to remove removed object. arch event_destroy name event_destroy name_pl event_destroy title Python slaying cfpython_auto_hook nrof 53 type 116 subtype 13 end the offending code is Crossfire_Player_dealloc() in plugins/cfpython/cfpython_object.c: static void Crossfire_Player_dealloc(PyObject *obj) { Crossfire_Player *self; self = (Crossfire_Player *)obj; if(self) { if (self->obj && self->valid) { free_object_assoc(self->obj); if (self->del_event) { cf_object_remove(self->del_event); cf_free_object(self->del_event); } } self->ob_type->tp_free(obj); } } In this particular case, self->obj == self->del_event, which is why I think this may be getting freed twice, but not 100% sure of that. Can someone with more plugin exp look at this? _______________________________________________ crossfire mailing list crossfire@metalforge.org http://mailman.metalforge.org/mailman/listinfo/crossfire