Opened 9 years ago

Closed 9 years ago

#8708 closed bug (fixed)

BShelf not always unloading replicant add-ons properly

Reported by: anevilyak Owned by: anevilyak
Priority: normal Milestone: R1
Component: Kits/Support Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All


BShelf internally maintains a map of replicant signatures to an image add-on id+ref count pair. This is used in order to know the correct image to unload when the replicant is removed. However, it relies on instantiate_object() returning the appropriate image ID. This, however, does not always happen, since the latter is only returning the image ID in the case where it must locate the add-on by signature and then load it itself, if it can find the instantiation function in one of the already loaded images, then the image ID is left as -1, which results in the replicant images not being unloaded properly.

This behavior can be observed in Deskbar where add/removing a replicant, updating its on-disk add-on, and then trying to reload it results in the old replicant code still being used. Attached a patch which attempts to rectify the situation, review/comments welcome.

Attachments (1)

archivable_fix.patch (3.3 KB ) - added by anevilyak 9 years ago.

Download all attachments as: .zip

Change History (4)

by anevilyak, 9 years ago

Attachment: archivable_fix.patch added

comment:1 by anevilyak, 9 years ago

patch: 01

comment:2 by anevilyak, 9 years ago

Owner: changed from axeld to anevilyak
Status: newin-progress

comment:3 by anevilyak, 9 years ago

Resolution: fixed
Status: in-progressclosed

Fixed in hrev44303.

Note: See TracTickets for help on using tickets.